Changes between Version 49 and Version 50 of SoclibCourseTp3


Ignore:
Timestamp:
Nov 29, 2010, 12:06:35 AM (15 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp3

    v49 v50  
    129129}}}
    130130
    131 Certains de ces fichiers sont écrits en assembleur Mips32, certains sont écrits en C :
    132 
    133131 * 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''.
    134132 * 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.
     
    138136Le répertoire '''soft''' de l'archive qui vous est fournie contient les fichiers spécifiques à l'application embarquée :
    139137
    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, qui peut é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''.
    142140 * 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.
    143141 * le fichier '''Makefile''' permet de lancer la génération du logiciel embarqué.
     
    158156On 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'').
    159157
    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).
    161159
    162160'''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 ?