114 | | * '''seg_kcodel''' est le segment contenant le code du système qui s'exécute en mode ''kernel''. Il s'agit principalement du code du Gestionnaire d'Interruptions, Exceptions, et Trappes (GIET), du code des fonctions système, ainsi que du code des routines d'interruption (ISR, pour interrupt Service Routine). Ce segment est assigné à la RAM. L'adresse de base 0x80000000. On choisira une capacité de stockage de 64 Koctets. |
115 | | * '''seg_kdata''' est le segment contenant les données privées du système d'exploitation. Il est assigné à la RAM. L'adresse de base est égale à 0x81000000. Sa capacité esr de 64Koctets. |
116 | | * '''seg_kdata''' est le segment contenant les données non cachables du système d'exploitation. Il est assigné à la RAM. L'adresse de base est égale à 0x82000000. Sa capacité esr de 64Koctets. |
| 114 | * '''seg_kcode''' est le segment contenant le code du système qui s'exécute en mode ''kernel''. Il s'agit principalement du code du Gestionnaire d'Interruptions, Exceptions, et Trappes (GIET), du code des fonctions système, ainsi que du code des routines d'interruption (ISR, pour interrupt Service Routine). Ce segment est assigné à la RAM. L'adresse de base 0x80000000. On choisira une capacité de stockage de 64 Koctets. |
| 115 | * '''seg_kdata''' est le segment contenant les données cachables du système d'exploitation. Il est assigné à la RAM. L'adresse de base est égale à 0x81000000. Sa capacité esr de 64Koctets. |
| 116 | * '''seg_kunc''' est le segment contenant les données non cachables du système d'exploitation. Il est assigné à la RAM. L'adresse de base est égale à 0x82000000. Sa capacité esr de 64Koctets. |
123 | | Remarquez que les 2 segments correspondant aux périphériques (seg_tty et seg_gcd), le segment contenant le code de boot, ainsi que les 3 segments correspondant au système sont dans la zone protégée de l'espace adressable, qui n'est accessible qu'en mode ''kernel'' (adresses supérieures à 0x80000000). |
124 | | |
125 | | 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 : dans le fichier '''tp3_top.cpp''' (pour le matériel) et dans le fichier '''soft/ldscript''' (pour le logiciel) : |
126 | | 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. Ces mêmes adresses de base des segments sont utilisées par le logiciel et 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é. |
127 | | 1. Le composant matériel générique !VciMultiTty peut contrôler un nombre variable de terminaux. Ce nombre de terminaux doit être défini dans le fichier '''tp3_top.cpp''' décrivant l'architecture matérielle, mais doit aussi être défini dans le fichier '''soft/ldscript''', pour informer le système d'exploitation du nombre de terminaux adressables. |
128 | | |
129 | | Complêtez les fichiers '''tp3_top.cpp''' et ''soft/ldsript'' pour définir les adresses de base et les longueurs des segments, ainsi que le nombre de terminaux utilisés. |
| 123 | Remarquez que les 2 segments correspondant aux périphériques (seg_tty et seg_gcd), le segment contenant le code de boot, ainsi que les 3 segments utilisés par le système d'exploitation sont dans la zone protégée de l'espace adressable, qui n'est accessible que lorsque le processeur est en mode ''kernel'' (adresses supérieures à 0x80000000). |
| 124 | |
| 125 | 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 : |
| 126 | 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. |
| 127 | 1. Ces mêmes adresses de base des segments sont utilisées par le logiciel et 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é. |
| 128 | |
| 129 | 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 devront donc être définis dans le fichier ''soft/ldscript''. |