
Qu’est ce qu’un BSP (Board Support Package) ?
Un BSP (Board Support Package) est la première couche logicielle qui fait l'interface entre le système d'exploitation et la carte mère. C'est lui qui permet à un OS générique de démarrer et de fonctionner sur un matériel précis, avec ses périphériques et ses particularités.
D'où vient le BSP
Son histoire remonte aux débuts de l'informatique embarquée, lorsque les fabricants d'équipements électroniques ont commencé à concevoir des systèmes autour de microcontrôleurs et de processeurs spécifiques. Chaque fabricant fournissait alors ses propres logiciels et pilotes, ce qui rendait le développement multiplateforme complexe et coûteux. Les industriels ont donc cherché à simplifier le processus en standardisant les systèmes embarqués. Les communautés open source, Linux en tête, ont largement contribué à ce mouvement en fournissant pilotes de périphériques et configurations de noyau pour une grande variété de plateformes.
Ce que contient un BSP
Un BSP regroupe généralement quatre éléments. Les pilotes de périphériques permettent au système d'exploitation de dialoguer avec le matériel : interfaces réseau, ports USB, contrôleurs audio, contrôleurs de stockage. La configuration du noyau rassemble les paramètres propres au matériel, qui garantissent que le noyau prend en charge toutes les fonctionnalités de la carte.
Le bootloader assure le démarrage initial. Chargé avant le système d'exploitation, il initialise le matériel, prépare le noyau et lui transfère le contrôle. Enfin, un BSP peut inclure des bibliothèques logicielles et des outils de développement nécessaires pour concevoir et déployer des applications sur la cible.
L'ensemble forme une couche d'abstraction entre la carte et le système d'exploitation : les développeurs se concentrent sur leurs applications sans se préoccuper des détails du matériel. Sous Linux embarqué, ces éléments sont souvent intégrés à un environnement comme Yocto, présenté dans notre petit guide Yocto.
Un BSP par carte et par système
Il n'existe pas de nombre défini de BSP : il en faut potentiellement un pour chaque combinaison de microcontrôleur ou de SoC (System-on-Chip), de carte de développement et de système d'exploitation, qu'il s'agisse de Linux, d'Android, de Windows Embedded ou de QNX.
Il dépend aussi de la version de l'OS : un BSP prévu pour une version de Linux peut ne pas fonctionner avec une autre, car configuration du noyau et pilotes évoluent. Sur un produit à longue durée de vie, chaque mise à jour de l'OS implique donc celle du BSP.
Standard ou sur mesure
Un BSP standard, fourni avec le module ou la carte, simplifie considérablement le développement : il donne une base logicielle fiable entre le système d'exploitation et le matériel. Développer un BSP sur mesure se justifie surtout pour répondre à des exigences de sécurité spécifiques, notamment dans la défense et le médical. Nos équipes peuvent vous indiquer les BSP disponibles pour chaque plateforme et vous aider à évaluer l'intérêt d'une version personnalisée.
