Changes between Version 80 and Version 81 of SoclibCourseTp3
- Timestamp:
- Oct 11, 2019, 1:53:27 PM (5 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SoclibCourseTp3
v80 v81 24 24 [[Image(soclib_tp3_archi.png)]] 25 25 26 * '''xcache''' est un processeur Mips32 avec ses caches L1. On utilise le composant !VciXcacheWrapper, qui est un contrôleur de cache à interface VCI.26 * '''xcache''' est un processeur Mips32 avec ses caches L1. Le composant !VciXcacheWrapper, est un contrôleur de cache à interface VCI qui encapsule un coeur de processeur MIPS32. 27 27 * '''rom''' est une mémoire non inscriptible à interface VCI contenant le code de boot. On utilise le composant !VciSimpleRam. 28 28 * '''ram''' est une mémoire inscriptible à interface VCI contenant le code et les données. On utilise également un composant !VciSimpleRam. … … 52 52 = 3 Logiciel embarqué = 53 53 54 Les applications logicielles qui s'exécutent sur le (ou les) processeur(s) programmable(s) ont besoin d'accéder à des périphériques ou à des coprocesseurs matériels spécialisés. Ces applications sont souvent multi-tâches et splusieurs tâches s'exécutent en parallèle sur un même processeur en multiplexage temporel. Pour ces raisons, on a généralement besoin d'un système d'exploitation embarqué sur le MPSoC. 55 56 Les composants de la bibliothèque SoCLib permettent d'exécuter des systèmes d'exploitation généralistes (tels que LINUX ou NetBSD), ou des systèmes d'exploitation spécialisés pour MPSoC (tels que MutekH ou ALMOS). Pour simplifier les choses, dans ce TP et les suivants, on se contentera d'un 57 système d'exploitation minimal, appelé GIET (Gestionnaire d'Interruptions, Exceptions et Trappes). 54 Les applications logicielles qui s'exécutent sur le (ou les) processeur(s) programmable(s) ont besoin d'accéder à des périphériques ou à des coprocesseurs matériels spécialisés. Ces applications sont souvent multi-tâches et plusieurs tâches s'exécutent en parallèle sur un même processeur en multiplexage temporel. Pour ces raisons, on a généralement besoin d'un système d'exploitation embarqué sur le MPSoC. 55 56 Les composants de la bibliothèque SoCLib permettent d'exécuter des systèmes d'exploitation généralistes (tels que LINUX ou NetBSD). Pour simplifier les choses, dans ce TP et les suivants, on se contentera d'un système d'exploitation minimal, appelé GIET (Gestionnaire d'Interruptions, Exceptions et Trappes). 58 57 59 58 == 3.1 Gestionnaire d'Interruptions, exceptions et Trappes == … … 66 65 Les deux principales limitations du GIET, qui le différencient d'un ''vrai'' système d'exploitation, sont l'absence de support pour la mémoire virtuelle, et l'absence de support pour la création dynamique de tâches. 67 66 68 Le code du GIET est séparé en deux parties: Les fichiers contenant le code qui s'exécute en mode ''superviseur'' est contenu dans le répertoire '''sys''', tandis que les fichiers contenant le codequi s'exécute en mode ''utilisateur'' est contenu dans le répertoire '''app'''.67 Le code est donc séparé en deux parties : Les fichiers contenant le code système qui s'exécute en mode ''superviseur'' est contenu dans le répertoire '''sys''', tandis que les fichiers contenant le code applicatif qui s'exécute en mode ''utilisateur'' est contenu dans le répertoire '''app'''. 69 68 70 69 * Le fichier '''sys_handler.c''' est écrit en C. Il est dans le répertoire '''sys''', et contient le code du gestionnaire d'appels systèmes, chargé d'appeler la fonction système correspondant au service demandé. … … 83 82 }}} 84 83 85 Vous pouvez vous faire une copie privée de ces fichiers pourpouvoir les consulter plus facilement, mais il est fortement déconseillé d'utiliser 86 cette copie locale pour générer le code binaire, le code du GIET peut évoluer, et il faut toujours utiliser la version de référence. 84 Vous pouvez vous faire une copie privée de ces fichiers pourpouvoir les consulter plus facilement, mais il est fortement déconseillé d'utiliser cette copie locale pour générer le code binaire, le code du GIET peut évoluer, et il faut toujours utiliser la version de référence. 87 85 88 86 == 3.2 Génération du code == 89 87 90 Puisque le GIET et l'application logicielle sont tous deuxécrits écrits en langage C, il faut utiliser un cross-compilateur C spécifique au processeur MIPS32 pour générer d'une part le code applicatif, et d'autre part le code du système d'exploitation embarqué.88 Puisque le système et les applications sont écrits écrits en langage C, il faut utiliser un cross-compilateur C spécifique au processeur MIPS32 pour générer d'une part le code applicatif, et d'autre part le code du système d'exploitation embarqué. 91 89 92 90 Le résultat de la compilation consiste en deux fichiers binaire au format ELF, '''sys.bin''' et '''app.bin''', qui devront être chargés dans les mémoires embarquées du MPSoC.