Changes between Version 49 and Version 50 of SoclibCourseTp3
- Timestamp:
- Nov 29, 2010, 12:06:35 AM (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SoclibCourseTp3
v49 v50 129 129 }}} 130 130 131 Certains de ces fichiers sont écrits en assembleur Mips32, certains sont écrits en C :132 133 131 * le fichier '''giet.s''' est écrit en assembleur et contient le code du Gestionnaire d'Interruption, Exceptions et Trappes. Le GIET est l'unique point d'entrée dans le système d'exploitation. Ce code s'exécute en mode ''kernel'', et se termine toujours par une instruction ''eret''. 134 132 * les fichier '''stdio.c''' et '''stdio.h''' sont écrits en C, et contiennent le code des appels systèmes permettant à un programme s'exécutant en mode ''user'' d'accéder aux périphériques. … … 138 136 Le répertoire '''soft''' de l'archive qui vous est fournie contient les fichiers spécifiques à l'application embarquée : 139 137 140 * le fichier '''reset.s''' est écrit en assembleur et contient le code de boot qui est exécuté à la mise sous tension, ou lors de l'activation du signal NRESET. Ce code s'exécute en mode ''kernel'', mais il est spécifique à chaque plate-forme matérielle, car il est chargé d'initialiser les périphériques présents dans l'architecture. IL initialise quelques registres, du processeur (en particulier le pointeur de pile), avant de se brancher à la pemière instruction du programme ''main'', en forçant le processeur à passer en mode ''user'' gràce à l'instruction ''eret''.141 * le fichier '''main.c''' est écrit en C et contient le code de l'application logicielle , quipeut évidemment utiliser les appels système définis dans le fichier ''stdio.c''.138 * le fichier '''reset.s''' est écrit en assembleur et contient le code de boot qui est exécuté à la mise sous tension, ou lors de l'activation du signal NRESET. Ce code s'exécute en mode ''kernel'', mais il est spécifique à chaque plate-forme matérielle, car il est chargé d'initialiser les périphériques présents dans l'architecture. 139 * le fichier '''main.c''' est écrit en C et contient le code de l'application logicielle. IL peut évidemment utiliser les appels système définis dans le fichier ''stdio.c''. 142 140 * le fichier '''ldscript''' contient les directives pour l'éditeur de liens, et en particulier les adresses de base des différents segments, ainsi que certains paramètres de la plate-forme matérielle tels que le nombre de processeurs ou de terminaux TTY. 143 141 * le fichier '''Makefile''' permet de lancer la génération du logiciel embarqué. … … 158 156 On rappelle que l'instruction ''eret'' de sortie du GIET modifie le registre protégé SR (registre 12 du coprocesseur ''système'') pour que le processeur retourne dans le mode ''user'' et effectue un branchement à l'adresse contenue dans le registre protégé EPC (registre 14 du coprocesseur ''système''). 159 157 160 '''Question''' : Ouvrez le fichier ''main.c''. Que fait ce programme ? ( on rappelle que la fonction ''tty_getc()'' est bloquante, et ne rend pas la main tant qu'un caractère n'a pas été saisi au clavier).158 '''Question''' : Ouvrez le fichier ''main.c''. Que fait ce programme ? (La fonction ''tty_getc()'' est bloquante, et ne rend pas la main tant qu'un caractère n'a pas été saisi au clavier). 161 159 162 160 '''Question''' : Editez le fichier ''stdio.c''. Quels sont les appels système qui permettent d'accéder à un terminal TTY ? Lorsqu'il y a plusieurs terminaux dans l'architecture, comment est sélectionné le terminal cible ?