Changes between Version 13 and Version 14 of Archi-1-TP9
- Timestamp:
- Nov 15, 2020, 3:03:50 PM (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Archi-1-TP9
v13 v14 1 ||[wiki:description_dernieres_seances retour au descriptif des séances "système"]||2 1 [[PageOutline]] 3 2 {{{#!html … … 11 10 12 11 La première séance est découpé en 5 étapes : 13 1. Un petit programme de quelques lignes en assembleur, placé entièrement dans la région mémoire du boot, 14 qui réalise l'affichage du message "Hello World". C'est un tout tout petit programme, mais pour obtenir 12 13 1) [#hello_boot hello_boot]:: 14 Nous commençons par un petit programme de quelques lignes en assembleur, placé entièrement dans la région mémoire 15 du boot, qui réalise l'affichage du message "Hello World". C'est un tout tout petit programme, mais pour obtenir 15 16 l'exécutable, vous devrez utiliser tous les outils de la chaîne de cross-compilation MIPS et 16 17 pour l'exécuter vous devrez exécuter le simulateur du prototype. C'est simple, mais c'est nouveau pour 17 18 beaucoup d'entre vous. 18 2. 19 20 2) [#kinit_asm kinit_asm]:: 21 Dans le deuxième programme, nous restons en assembleur, mais nous avons deux fichiers source : (1) le fichier contenant 22 le code de boot et (2) le fichier contenant le code du noyau. Ici, le code du noyau c'est juste une fonction `kinit()`. 23 Cette étape permet de voir comment saute d'un fichier à l'autre. Il utilise aussi une version plus complète du fichier 24 `ldscript` du kernel. 25 26 3) [#kinit_c kinit_c]:: 27 Dans ce troisième programme, nous faisons la même chose que pour le deuxième mais `kinit()` est désormais écrit en 28 langage C. Cela change peut de chose, sauf une chose importante `kinit()` est une fonction et donc il faut absolument 29 une pile d'exécution. 30 31 4) 19 32 20 33 {{{#!comment —————————————————————————————————————————————————————————————————————————————————————————————————— 21 34 }}} 22 = 1. Premier programme en assembleur dans la seule section de boot35 = [=#hcpu_s 1. Premier programme en assembleur dans la seule section de boot] 23 36 24 37 == Codes … … 70 83 {{{#!comment —————————————————————————————————————————————————————————————————————————————————————————————————— 71 84 }}} 72 = 2. Saut dans le code du noyau en assembleur85 = [=#kinit_asm 2. Saut dans le code du noyau en assembleur] 73 86 74 87 … … 95 108 {{{#!comment —————————————————————————————————————————————————————————————————————————————————————————————————— 96 109 }}} 97 = 3. Saut dans la fonction kinit() du noyau en langage C110 = [=#kinit_c 3. Saut dans la fonction kinit() du noyau en langage C] 98 111 99 112 == Objectif de l'étape … … 116 129 {{{#!comment —————————————————————————————————————————————————————————————————————————————————————————————————— 117 130 }}} 118 = 4. Accès aux registres de contrôle des terminaux TTY131 = [=#nttys 4. Accès aux registres de contrôle des terminaux TTY] 119 132 120 133 == Objectif de l'étape … … 137 150 {{{#!comment —————————————————————————————————————————————————————————————————————————————————————————————————— 138 151 }}} 139 = 3. Fonction d'initialisation en C152 = [=#drivers 5. Premier petit pilote pour le terminal] 140 153 141 154 == Objectif de l'étape