BSP et pilotes standalone
Comprendre la bibliothèque C embarquée, la structure d'un BSP et les deux niveaux de pilotes utilisés par une application Vitis.
Le rôle du BSP
Une application embarquée ne doit pas deviner la configuration du matériel. Le Board Support Package, ou BSP, décrit les services disponibles pour un processeur et un domaine logiciel précis.
Le terme standalone désigne ici un environnement bare-metal minimal. Le programme s'exécute sans Linux et utilise directement le BSP, les pilotes et les exceptions du processeur.
Dans Vitis, une plateforme associe le fichier XSA à un ou plusieurs domaines. Chaque domaine choisit un processeur, un système d'exploitation et un BSP. Une modification du matériel impose donc de mettre à jour la plateforme avant de reconstruire l'application.
Le BSP contient quatre familles d'éléments.
| Élément | Rôle |
|---|---|
| En-têtes générés | Adresses, identifiants et paramètres du matériel |
| Pilotes | Accès aux périphériques du PS et de la PL |
| Bibliothèques | C standard, fichiers, réseau et services système |
| Code de démarrage | Table des vecteurs, initialisation et gestion des exceptions |
La bibliothèque C utilisée en standalone s'appuie sur Newlib, une implémentation adaptée aux systèmes embarqués. Elle fournit des fonctions courantes comme memcpy, printf et l'allocation dynamique. Les services qui supposent la présence d'un système d'exploitation doivent être adaptés à la plateforme.
Lire xparameters.h
xparameters.h est généré depuis le matériel exporté. Il contient les adresses de base, les identifiants de périphériques, les identifiants d'interruption et certaines fréquences.