Changes between Version 50 and Version 51 of SoclibCourseTp3
- Timestamp:
- Nov 29, 2010, 8:33:32 PM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SoclibCourseTp3
v50 v51 23 23 [[Image(soclib_tp3_archi.png)]] 24 24 25 * '''xcache''' est un processeur Mips32 avec ses caches L1. On utilise le composant `VciXcacheWrapper`, qui est un contrôleur de cache à interface VCI. Ce composant générique encapsule le composant `Mips32Iss`, qui modélise un coeur de processeur Mips32.25 * '''xcache''' est un processeur Mips32 avec ses caches L1. On utilise le composant `VciXcacheWrapper`, qui est un contrôleur de cache à interface VCI. 26 26 * '''rom''' est une mémoire non inscriptible à interface VCI contenant le code de boot. On utilise le composant `VciSimpleRam`. 27 27 * '''ram''' est une mémoire inscriptible à interface VCI contenant le code et les données. On utilise également un composant `VciSimpleRam`. … … 34 34 35 35 Le composant `VciXcacheWrapper` peut être utilisé pour encapsuler différents processeur 32 bits. Le coeur du processeur est modélisé par un ISS (Instruction Set Simulator). 36 Le type du proceseur instancié (MIP32, ARM, SPARCV8, PPC405, NIOS, !MicroBlaze, etc.) est défini par un paramètre template du composant `VciXcacheWrapper`. 36 Le type du proceseur instancié (MIP32, ARM, SPARCV8, PPC405, NIOS, !MicroBlaze, etc.) est défini par un paramètre template du composant `VciXcacheWrapper`. 37 37 Consultez la documentation [https://www.soclib.fr/trac/dev/wiki/Component/VciXcacheWrapper ici]. 38 38 … … 60 60 61 61 Les composants de la bibliothèque SoCLib permettent de modéliser des architectures matérielles complexes, capables d'exécuter des 62 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 [https://www.mutek.fr/ MutekH] ou DNA). Mais dans ce TP et les suivants, on se contentera d'un62 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 [https://www.mutek.fr/ MutekH]. Mais dans ce TP et les suivants, on se contentera d'un 63 63 système d'exploitation minimal, constitué par un Gestionnaire d'Interruptions, Exceptions et Trappes (GIET). Cet OS minimal fournit quelques appels systèmes 64 permettant aux programmes utilisateurs d'accéder aux périphériques, il traite les requêtes d'interruption vectorisées, et facilite le debug du logiciel embarqué en récupérant les exceptions.65 Tout ce code système est écrit en C et en assembleur MIPS32. Les programmes utilisateur seront écrits par vous en langage C.64 permettant aux programmes utilisateurs d'accéder aux périphériques, il traite les requêtes d'interruption vectorisées, et facilite le debug du logiciel embarqué en signalant les exceptions. 65 Le code du GIET est écrit en C et en assembleur MIPS32. 66 66 67 67 Les processeurs disponibles dans SoCLib sont principalement des processeurs RISC, capables … … 115 115 116 116 Les adresses de base sont utilisées à la fois par le matériel et par le logiciel embarqué. Elles doivent donc être définies à deux endroits : 117 1. Les addresses de base et les longueurs des segments sont utilisées par le matériel : Elles doivent être définies dans le fichier ''tp3_top.cpp'' pour ëtre stockées dans la !MappingTable. Elles sont utilisées dans la phase de configuration du matériel par les constructeurs des composants.118 1. Ces mêmes adresses de base des segments sont utilisées par le logiciel etdoivent être définies dans le fichier ''soft/ldscript'' qui contient les directives pour l'éditeur de liens lors de la compilation du logiciel embarqué.119 120 Par ailleurs le GIET peut supporter des architectures comportant plusieurs processeur, mais les structures de données utilisées par le système doivent être dimensionnées en fonction du nombre de composants matériels disponibles: nombre de processeurs, nombre de terminaux TTY. Ces paramètres d evront donc être définisdans le fichier ''soft/ldscript''.117 1. Pour le matériel, les addresses de base et les longueurs des segments doivent être définies dans le fichier ''tp3_top.cpp'' pour ëtre stockées dans la !MappingTable. Elles sont utilisées dans la phase de configuration du matériel par les constructeurs des composants. 118 1. Pour le logiciel, les adresses de base des segments doivent être définies dans le fichier ''soft/ldscript'' qui contient les directives pour l'éditeur de liens lors de la compilation du logiciel embarqué. 119 120 Par ailleurs le GIET peut supporter des architectures comportant plusieurs processeur, mais les structures de données utilisées par le système doivent être dimensionnées en fonction du nombre de composants matériels disponibles: nombre de processeurs, nombre de terminaux TTY. Ces paramètres doivent donc être définies dans le fichier ''tp"_top.cpp'' et dans le fichier ''soft/ldscript''. 121 121 122 122 == 4.1 Compilation du logiciel embarqué == … … 162 162 Complétez le fichier '''ldscript''' pour définir les adresses de base des différents segments, ainsi que les paramètres NB_PROCS et NB_TTYS. 163 163 164 Lancez l'exécution du Makefile . Deux fichiers ''bin.soft'' et ''bin.soft.txt'' doivent être créés dans le répertoire ''soft'':164 Lancez l'exécution du Makefile dans le répertoire ''soft''. Deux fichiers ''bin.soft'' et ''bin.soft.txt'' doivent être créés : 165 165 Le fichier ''bin.soft'' contient le code binaire au format ELF, et le fichier ''bin.soft.txt'' contient un version desassemblée (donc lisible) de ce code binaire. 166 166