Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Ordinateurs embarqués (SBC) > La carte Raspberry PI > Matériel nécessaire pour Raspberry Pi > Logiciel bas-niveau de la Raspberry Pi

Logiciel bas-niveau de la Raspberry Pi

où l’on parle de Board Support Package

lundi 9 juillet 2012, par Julien H.

Une carte électronique à base de micro-processeur peut être vue comme une succession de couches, soit du bas vers le haut :

 le circuit imprimé
 les puces interconnectées
 le logiciel de chaque puce (firmware)
 le programme de bas-niveau spécifique au matériel
 le système d’exploitation adapté pour ce programme
 les machines virtuelles (VM) dédiées au système d’exploitation
 les applications dédiées au système d’exploitation
 les applications indépendantes de la carte utilisant une VM

Nos projets se déroulent habituellement dans les trois dernières couches les plus hautes, soit par compilation directe, soit par cross-compilation, soit par machine virtuelle.

Mais il est très intéressant de regarder pour une fois ce qui se passe entre le micro-processeur et le système d’exploitation : malgré tout le talent des développeurs de Windows ou de GNU/Linux, un seul système n’est pas totalement compatible quel que soit le matériel utilisé, même à l’intérieur d’une famille de processeurs (x64, x86, ARM). Il faut une couche logicielle de bas-niveau qui permet de connecter chaque périphérique de la puce (de plus en plus de processeurs sont des SoC ou "system on chip", avec une multitude de circuits embarqués dans une seule puce) et chaque périphérique ou entrée/sortie de la carte.

Dans certains cas, on peut disposer d’un système logiciel bas-niveau complet permettant de développer au plus près des firmwares matériels, c’est le Board Support Package.

Pour la Raspberry Pi, comme pour d’autres projets open source, ce sont des dizaines d’échanges entre développeurs du projet et de bénévoles extérieurs que l’on peut retrouver ainsi "mixé" en un package logiciel (presque) achevé et mis à disposition sur des plateformes de partage de source. Ainsi le BSP de la Raspberry Pi est disponible sur GitHub.

Le principe de ce BSP est de fournir des "recettes" de fabrication (ou "recipes"), pas les ingrédients que l’on retrouve dans des firmwares dédiés à chacun des périphériques, ou écrits de manière générique dans le noyau de la distribution que l’on a choisi.

En particulier, le BSP sépare chaque partie (le noyau, le réseau, la vidéo, etc.) et liste les fonctionnalités disponibles avec des options d’assemblage. S’agissant d’un SoC, le code réel se trouve dans le firmware de la puce Broadcom 2835, utilisé comme image binaire dans l’une des recettes du BSP.

On utilise ensuite des outils d’assemblage tels OpenEmbedded. L’étape suivante est d’intégrer une distribution dédiée pour l’embarqué, comme l’Ångström que l’on retrouve sur nombre de cartes ARM / OMAP utilisées dans notre domaine : Beagle Board, Gumstix, Panda board, etc.

Mais retenez bien que pour 99% des usages amateurs avec la Raspberry Pi, une distribution classique comme la Debian répondra à toutes les attentes sans aller creuser jusqu’au BSP. Cet article est là juste pour vous montrer ce qui se trouve de l’autre côté du miroir afin de satisfaire une curiosité légitime, car il est peu probable qu’on utilise ce BSP pour nos projets.

Vos commentaires

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.