Changes between Version 3 and Version 4 of AS6-TME-B1
- Timestamp:
- Feb 8, 2022, 11:47:12 AM (3 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AS6-TME-B1
v3 v4 21 21 22 22 * Vous devez être sur une **machine Linux** native. 23 * Vous devez avoir installer l'environnement 23 * Vous devez avoir installer l'environnement, sinon relisez [wiki:Howto-TP Configuration de l'environnement] 24 24 * Dans le `terminal`, exécutez la commande **`cd ; tree -L 2 2kO6`**. Vous devriez obtenir ceci: 25 25 {{{#!bash … … 83 83 ''''''''''''''' 84 84 }}} 85 1. Qu'est-ce l'espace d'adressage de l'application ? 86 {{{#!protected ------------------------------------------------------------------------------------ 87 ''''''''''''''' 88 * L'espace d'adressage de l'application est l'ensemble des adresses que peut utiliser l'application. 89 * Ici, c'est la même chose de l'espace d'adressage du MIPS, même si certains segments ne sont utilisable que lorsque le MIPS est en mode kernel. 90 * Dans un SoC plus évolué, l'application pourrait ne pas avoir accès à tout. 91 ''''''''''''''' 92 }}} 85 93 1. Dans quel composant matériel se trouve le code de démarrage et à quelle adresse est-il placé dans l'espace d'adressage et pourquoi à cette adresse ? 86 94 {{{#!protected ------------------------------------------------------------------------------------ … … 94 102 ''''''''''''''' 95 103 * Ici, c'est le composant `TTY` qui permet de sortir des caractères sur un écran et de lire des caractères depuis un clavier. 96 * Dans un autre SoC, on pourrait avoirun contrôleur de disque, un contrôleur vidéo, un port réseau Ethernet, un port USB, des entrées analogiques (pour mesurer des tensions), etc.104 * On peut avoir aussi un contrôleur de disque, un contrôleur vidéo, un port réseau Ethernet, un port USB, des entrées analogiques (pour mesurer des tensions), etc. 97 105 ''''''''''''''' 98 106 }}} … … 119 127 ''''''''''''''' 120 128 }}} 121 1. Que fait le contrôleur DMA et en quoi est-il différent du contrôleur de TTY (''aide initiateur ou cible'')?129 1. Que fait le contrôleur DMA et donner des différences par rapport au contrôleur de TTY ? 122 130 {{{#!protected ------------------------------------------------------------------------------------ 123 131 ''''''''''''''' … … 280 288 * En utilisant ce que nous venons de voir dans la question précédente : on peut définir une macro instruction différente au début de chaque fichier `.h` (en utilisant le nom du fichier comme nom de macro pour éviter les collisions de nom). On peut alors tester l'existence de cette macro comme condition d'inclusion du fichier. 281 289 {{{#!c 282 ————————————————————— début du fichier filename.h290 // Debut du fichier filename.h 283 291 #ifndef _FILENAME_H_ 284 292 #define _FILENAME_H_ … … 287 295 288 296 #endif 289 ————————————————————— fichierde fichier filename.h297 // Fin de fichier filename.h 290 298 }}} 291 299 ''''''''''''''' … … 467 475 468 476 469 Dans cette section, nous allons nous intéresser à ce que propose le processeur MIPS concernant les modes d'exécution. Ce sont des questions portant sur l'usage des modes en général et le comportement du MIPS vis-à-vis de ces modes en particulier. Dans la section **A 3**, nous verrons le code de gestion des changements de mode dans le noyau.477 Dans cette section, nous allons nous intéresser à ce que propose le processeur MIPS concernant les modes d'exécution. Ce sont des questions portant sur l'usage des modes en général et le comportement du MIPS vis-à-vis de ces modes en particulier. Dans la section **A7**, nous verrons le code de gestion des changements de mode dans le noyau. 470 478 471 479 … … 492 500 ''''''''''''''' 493 501 - Les registres système sont numérotés de $0 à $31, comme les registres GPR, ce qui peut induire une certaine confusion 494 - Nous avons vu 6502 - Nous avons vu 3, mais il y en a d'autres que nous verrons plus loin. 495 503 || `cr_sr` || `$12` || contient essentiellement le mode d'exécution du MIPS et le bit d'autorisation des interruptions 496 504 || `cr_cause` || `$13` || contient la cause d'appel du noyau … … 506 514 {{{#!protected ------------------------------------------------------------------------------------ 507 515 ''''''''''''''' 508 || 0|| IE ||Interrupt Enable||0 → interruptions masquées\\1 → interruptions autorisées 509 || 1|| EXL ||EXception Level ||1 → MIPS en mode exception \\à l'entrée dans le kernel,le MIPS est en mode kernel, interruptions masquées510 || 2|| ERL ||ERror Level || 0 → interruptions masquées\\1 → interruptions autorisées511 || 4|| UM ||User Mode ||0 → interruptions masquées\\1 → interruptions autorisées516 || 0|| IE ||Interrupt Enable||0 → interruptions masquées\\1 → interruptions autorisées si ERL et EXL sont tous les deux à 0 517 || 1|| EXL ||EXception Level ||1 → MIPS en mode exception à l'entrée dans le kernel\\le MIPS est en mode kernel, interruptions masquées 518 || 2|| ERL ||ERror Level ||1 → au démarrage du MIPS et certaines erreurs de la mémoire\\le MIPS est en mode kernel, interruptions masquées 519 || 4|| UM ||User Mode ||0 → MIPS en mode kernel\\1 → MIPS en mode user si ERL et EXL sont tous les deux à 0 512 520 ''''''''''''''' 513 521 }}} … … 545 553 ''''''''''''''' 546 554 - C'est `0x80000180`. Il n'y a qu'une adresse pour toutes les causes `syscall`, exception et interruption. 547 - En fait, on peut considérer que `0xBFC00000` permet aussi d'entrer dans le noyau après un reset.555 - Il y a aussi l'adresse de la fonction `kinit()` qui est la fonction appelée par le code de boot (à l'adresse `0xBFC00000`) pour entrer dans le noyau. 548 556 ''''''''''''''' 549 557 }}}