Changes between Version 19 and Version 20 of Archi-1-TP9
- Timestamp:
- Nov 15, 2020, 7:52:42 PM (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Archi-1-TP9
v19 v20 15 15 La séance est découpé en 5 étapes. Dans cette présentation, pour chaque étape, nous donnons une brève description, suivie d'une liste des objectifs principaux et d'une liste des fichiers présents. Un bref commentaire est ajouté pour les fichiers. 16 16 17 [ #hello_boot 1. hello_boot]:: \\17 [=#hello_boot 1. hello_boot]:: \\ 18 18 Nous commençons par un petit programme de quelques lignes en assembleur, placé entièrement dans la région mémoire 19 19 du boot, qui réalise l'affichage du message "Hello World". C'est un tout tout petit programme, mais pour obtenir … … 35 35 36 36 37 [ #kinit_asm 2. kinit_asm]:: \\37 [=#kinit_asm 2. kinit_asm]:: \\ 38 38 Dans le deuxième programme, nous restons en assembleur, mais nous avons deux fichiers source : (1) le fichier contenant 39 39 le code de boot et (2) le fichier contenant le code du noyau. Ici, le code du noyau c'est juste une ''fonction'' `kinit()`. Ce n'est pas vraiment une fonction car on n'utilise pas la pile. … … 53 53 54 54 55 [ #kinit_c 3. kinit_c]:: \\55 [=#kinit_c 3. kinit_c]:: \\ 56 56 Dans ce troisième programme, nous faisons la même chose que pour le deuxième mais `kinit()` est désormais écrit en 57 57 langage C. Cela change peu de choses, sauf une chose importante `kinit()` est une fonction et donc il faut absolument … … 71 71 }}} 72 72 73 [ #nttys 4. nttys]:: \\73 [=#nttys 4. nttys]:: \\ 74 74 Le prototype de SoC que nous utilisons pour les TP est configurable. Il est possible par exemple de choisir le nombre 75 75 terminaux texte (TTY). Par défaut, il y en a un mais, nous pouvons en avoir jusqu'à 4. Nous allons modifier le code du … … 90 90 }}} 91 91 92 [ #driver 5. driver]::92 [=#driver 5. driver]:: 93 93 Dans l'étape 4, nous accédons au registre de périphérique directement dans la fonction `kinit()`, ce n'est pas très 94 94 simple. C'est pourquoi, nous allons ajouter un niveau d'abstraction qui représente un début de pilote de périphérique … … 112 112 113 113 114 = [ =#hcpu_s] 1. Premier programme en assembleur dans la seule section de boot114 = [#hcpu_s 1. Premier programme en assembleur dans la seule section de boot] 115 115 116 116 … … 180 180 {{{#!comment —————————————————————————————————————————————————————————————————————————————————————————————————— 181 181 }}} 182 = [ =#kinit_asm 2. Saut dans le code du noyau en assembleur]182 = [#kinit_asm 2. Saut dans le code du noyau en assembleur] 183 183 184 184 … … 198 198 {{{#!comment —————————————————————————————————————————————————————————————————————————————————————————————————— 199 199 }}} 200 = [ =#kinit_c 3. Saut dans la fonction kinit() du noyau en langage C]200 = [#kinit_c 3. Saut dans la fonction kinit() du noyau en langage C] 201 201 202 202 == Objectif de l'étape … … 219 219 {{{#!comment —————————————————————————————————————————————————————————————————————————————————————————————————— 220 220 }}} 221 = [ =#nttys 4. Accès aux registres de contrôle des terminaux TTY]221 = [#nttys 4. Accès aux registres de contrôle des terminaux TTY] 222 222 223 223 == Objectif de l'étape … … 240 240 {{{#!comment —————————————————————————————————————————————————————————————————————————————————————————————————— 241 241 }}} 242 = [ =#drivers 5. Premier petit pilote pour le terminal]242 = [#drivers 5. Premier petit pilote pour le terminal] 243 243 244 244 == Objectif de l'étape