• Aucun résultat trouvé

CHAPITRE 3 ARCHITECTURE ET IMPLÉMENTATION DU NOYAU XTRATUM

3.5 Déploiement du système partitionné

Le système est déployé à partir d’une image qui regroupe les binaires du chargeur de pro- gramme (« bootloader »), du noyau, de la table de configuration du PCS et des partitions. Cette image peut directement être chargée en ROM sur une carte de développement LEON.

Le chargeur de programme est nommé « resident software » (RSW) dans la distribution Xtra- tuM. Ce chargeur place en mémoire tous les binaires aux endroits prédéfinis dans la table de configuration du PCS et démarre ensuite le noyau.

Après le démarrage du noyau, le système est entièrement reconfiguré par des routines d’ini- tialisation et des pilotes matériels intégrés à XtratuM. Il n’y a plus aucune dépendance envers quelconque micrologiciel préinstallé sur le matériel par le manufacturier. La gestion de toutes les interruptions et de tous les périphériques se fait à partir de XtratuM, ce qui permet d’évi- ter toute défaillance causée par des éléments logiciels externes au noyau de partitionnement robuste.

Les sous-sections suivantes présentent les cinq étapes nécessaires au déploiement d’une image du système avec XtratuM.

3.5.1 Étape 1 : Configuration et construction du noyau

Dans cette étape, le noyau est configuré, puis construit. La configuration est réalisée à l’aide d’un script muni d’une interface graphique qui permet de spécifier les valeurs de tous les paramètres critiques du noyau. Par exemple, il est possible de spécifier le nombre maximal de partitions supportées, les zones mémoire assignées au noyau, le type de processeur cible, etc. Le script de configuration génère des fichiers d’en-tête pour l’inclusion dans le code source C, ainsi qu’un fichier de configuration pour l’outil de construction make. Les fichiers d’en-tête contiennent des constantes qui permettent la compilation conditionnelle du noyau en fonction

43

de la configuration spécifiée. La figure 3.4 présente une capture d’écran d’une page affichée par le script de configuration.

Figure 3.4 Fenêtre du script de configuration du noyau XtratuM

Après la configuration, le noyau est construit à l’aide de l’outil standard make. Le noyau complet est compilé en deux versions : une image binaire à charger nommée xm_core.bin et une image ELF nommée xm_core permettant le débogage. Le noyau, comme tous les autres éléments d’un système basé sur XtratuM, est lié statiquement.

Plusieurs autres éléments sont construits en même temps que le noyau en tant que tel :

• la librairie de services libxm.a, qui fournit les routines d’accès aux services du noyau et qui doit être liée avec chaque partition ;

• l’outil de validation et de compilation du PCS, nommé xmcparser ; • l’outil de construction de l’image du système, nommé xmpack ;

• le schéma XML du PCS, nommé xmc.xsd, en version prête à l’emploi avec ses para- mètres remplis selon les choix effectués au moment de la configuration.

Après la construction du noyau, il est toujours nécessaire de reconstruire les partitions et les images systèmes, car ces livrables dépendent de fichiers générés lors de la construction du noyau.

3.5.2 Étape 2 : Génération de la table de configuration binaire à partir du PCS

Après la construction du noyau, on génère la table de configuration binaire qui lui est associée, en fonction de la configuration globale du système dans le PCS. Cette étape est décrite à la section 3.4. La table de configuration binaire résultante se trouve dans un fichier nommé xm_cf.bin.

3.5.3 Étape 3 : Construction des partitions

Lorsque le noyau et la table de configuration binaire du PCS sont construits, il devient enfin possible de construire les binaires de partitions. Chaque partition est construite selon les be- soins des développeurs d’applications. Le flot de construction à suivre n’est pas spécifié. Il est par contre nécessaire que chaque partition construite respecte les conventions suivantes :

• la librairie de services libxm.a doit être liée avec le binaire afin de pouvoir accéder aux services offerts par le noyau ;

• le binaire final doit être assemblé pour un démarrage à l’adresse spécifiée dans le PCS ; • la partition doit au minimum appeler les services d’initialisation de libxm.a.

3.5.4 Étape 4 : Construction de l’image de déploiement du système

L’image de déploiement regroupe le chargeur RSW, le noyau, la table de configuration binaire et les binaires de partitions. Elle est construite à l’aide de l’outil xmpack. Cet outil regroupe tous les fichiers en une seule archive. Il génère ensuite une en-tête qui permet au chargeur RSW de placer toutes les images dans les bonnes zones de mémoire lors du démarrage. Le format de fichier de l’image de déploiement est décrit en détail dans le manuel de l’usager de XtratuM [46].

L’image finale, prête à l’écriture en ROM, est nommée container.bin. Avant la généra- tion de container.bin, une image ELF du chargeur RSW est créée, ce qui permet de déboguer le chargeur RSW si nécessaire.

45

3.5.5 Étape 5 : Déploiement de l’image sur la carte matérielle

La dernière étape du déploiement est le transfert vers la carte matérielle. L’image du système est écrite dans la ROM de la carte de développement ou du système final et XtratuM peut démarrer. Lors du prototypage, il est aussi possible de charger soit l’image binaire, soit l’image en format ELF dans une plateforme virtuelle. La carte matérielle n’est alors pas nécessaire.