Board Support Package for Linux

Autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et dolore feugait

Board Support Package

Board Support Package pour cartes d’évaluation

Lors du développement d’un système embarqué, vous serez tenté par de nouveaux système sur puce (SoC) dont les fonctionnalités peuvent améliorer de manière significative les capacités du produit final. Les Board Support Package pour Linux ou d’autres systèmes d’exploitation sont là pour vous aider à en tirer le meilleur parti.

Logiciels embarqués
Openest intervient à tous les niveaux de votre système

La plupart des fabricants de puces fournissent des cartes d’évaluation pour vous aider à décider si vous voulez consacrer votre temps et votre budget à un processeur particulier. Ces cartes son parfois aussi appelées cartes de démonstration, kits de développement système (SDK) ou même Embedded Linux Development Kit. Elles vous permettent généralement d’avoir une idée de ce qu’il faut pour démarrer, programmer et exécuter un programme.

Le SDK est généralement plus complet. Il peut faire partie d’un BSP qui inclut des logiciels supplémentaires mais il n’y a pas de règle absolue. La définition change d’un fabricant à l’autre.

evaluation board
Voici à quoi ressemble souvent un conseil d’évaluation, un CPU et de nombreuses entrés et sorties I/O

Les CPU comportent de plus en plus de fonctionnalités, c’est pourquoi il est primordial de tester non seulement le matériel mais aussi les logiciels qui l’accompagnent. Le BSP initial d’une carte d’évaluation est souvent la première étape pour le BSP de votre carte personnalisée.

Les avantages d’un BSP basé sur Linux

Un Board Support Package (BSP) est un ensemble de logiciels utilisés pour démarrer et faire fonctionner le système embarqué. C’est le logiciel essentiel nécessaire pour travailler avec une carte. Avec un BSP adéquat, tout ce que vous avez à faire est de démarrer le système et de commencer à développer. Pour les cartes de démonstration, il gère l’ensemble des périphériques nécessaires pour que l’utilisateur puisse exploiter les principales fonctionnalités du SoC et utiliser les composants de la carte. Un BSP est souvent le premier logiciel développé pour être utilisé en conjonction avec une puce particulière ou sa carte d’évaluation.

Le BSP comprend des programmes d’amorçage de bas niveau (également appelés « first stage bootloader« ), un programme d’amorçage ou « bootloader » (généralement la deuxième étape du processus d’amorçage), un système d’exploitation et les pilotes compatibles pour ce système d’exploitation spécifique. Comme les pilotes sont spécifiques à un système d’exploitation donné, si plusieurs systèmes d’exploitation (p. ex., Linux, Zephyr, FreeRTOS, VxWorks, ThreadX) sont pris en charge, les fabricants fourniront plusieurs BSP. Il initialisera tous les composants internes du SoC, les horloges, les bus de communication, le DDR, la mémoire Flash, etc. Ensuite, il fournit parfois un système de fichiers racine (aussi appelé Rootfs, la structure de fichiers nécessaire au fonctionnement d’un OS) et peut même inclure un ensemble minimal de logiciels nécessaires à la communication ou aux interactions avec les utilisateurs.

De nos jours, les fabricants de semi-conducteurs fournissent souvent un BSP basé sur Linux avec une carte d’évaluation qui contient le support matériel complet de la carte. Linux est vraiment populaire parce qu’il est libre et donc agnostique entre les fournisseurs de semi-conducteurs. Souvent, le fournisseur de semi-conducteurs maintient une branche de l’arbre du noyau Linux avec tout le support de bas niveau requis pour leur SoC. C’est très bien car cela vous permet de passer assez facilement d’un fabricant à un autre tant que vous gardez Linux comme système d’exploitation embarqué (OS) principal.

Créer un Board Support Package personnalisé

Comme Linux est open-source, personne n’a à payer pour l’utiliser, il est donc libre de construire un BSP personnalisé basé sur un BSP existant. Et c’est là que les choses deviennent franchement géniales : vous pouvez commencer à développer votre logiciel embarqué sur une carte d’évaluation, tout en concevant votre propre carte, puis personnaliser votre propre BSP et faire fonctionner votre logiciel embarqué avec peu de modifications, voire aucune. De plus, il existe des pilotes de périphériques pour presque tous les composants que vous trouverez sur le marché, cela facilitera votre développement de BSP, et réduira drastiquement votre temps de mise sur le marché.

Les choses deviennent encore plus importantes si tout le code et les pilotes spécifiques à un CPU donné sont inclus dans les sources officielles de Linux. Cela signifie souvent que le code a été largement testé, qu’il y a beaucoup d’utilisateurs, que les mises à jour ne dépendront pas de la bonne volonté d’un fabricant qui aura peut être d’autres priorités dans quelques annés. Au lieu de cela, vous bénéficierez de tout le travail effectué en permanence par la communauté.

La cerise sur le gâteau de Linux embarqué est l’écosystème : Vous aurez accès à des milliers de bibliothèques et de logiciels open-source pour créer vos propres applications personnalisées. Vous pouvez utiliser n’importe quel langage pour trouver plus facilement des développeurs.

FAQ Board Support Package pour Linux

Qu’est-ce que le Board Support Package ?

Un package de support logiciel est un ensemble de logiciels qui permettent de démarrer et de faire fonctionner une carte électronique. Il contient souvent un chargeur d’amorçage (bootloader), un système d’exploitation embarqué (OS) et une hiérarchie de fichiers de base ( Rootfs ). Il n’inclut pas les logiciels spécifiques aux applications.

Pourquoi Linux est-il populaire pour les BSP de systèmes embarqués ?

Linux est une couche d’abstraction matérielle (HAL) open-source ; il est bien conçue et bien maintenu. Les utilisateurs peuvent développer leurs applications indépendamment du matériel qu’il utilise. Comme Linux est libre on peut l’utiliser et surtout le modifier : il est relativement facile d’adapter le BSP d’une carte existante pour une conception personnalisée tant que le CPU est supporté.

Puis-je exécuter mon application embarquée propriétaire sous Linux

Oui ! Linux est open-source, mais vous n’avez pas à ouvrir votre logiciel metier fonctionnant en espace utilisateur. Vous êtes serez dans les rêgles tant que vous ne liez pas votre programme à des bibliothèques GPL. Même dans ce cas vous pouvez souvent payer une licence pour obtenir une version commerciale d’une bibliothèque (ex : Qt).

Linux est-il adapté aux applications temps réel ?

Bien qu’il ne soit pas un système d’exploitation en temps réel (RTOS), Linux convient à de nombreuses applications en temps réel. Comme il est possible de configurer un ordonnanceur temps réel. Cependant, il ne peut pas être aussi précis et n’est pas adapté aux périphériques temps réel « durs », mais ils ne sont pas si courants.

Yocto et Buildroot Board sont-ils des Board Support Packages ?

Non, Yocto et Buildroot sont des outils qui peuvent vous aider à générer des BSP personnalisés pour une carte électronique. Ils gèrent le Bootloader (généralement Uboot ou Barebox), Linux lui-même et ils remplissent le système de fichiers de base (rootfs) avec tous les logiciels nécessaires.

Julien Grossholtz

Expert en logiciel embarqué, j'accompagne les entreprises dans la création de leurs objets intelligents et leurs IoT.

1 comment so far

Conception du système de mise à jour de systèmes embarqués – OpenestPosted on 11:05 - Jan 3, 2020

[…] la mise à jour d’un systèmes embarqué est incontournable et doit faire partie de votre Board Support Package (BSP) dès […]

Leave a Reply