Changes between Version 20 and Version 21 of Archi-1-TP11


Ignore:
Timestamp:
Dec 10, 2021, 7:01:18 AM (3 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Archi-1-TP11

    v20 v21  
    303303
    304304
    305 1. La configuration des périphériques et des interruptions dans la fonction `arch_init()` se fait Comment configurer l'ICU  masquer l'IRQ connectée sur son entrée n°5 ?
    306 {{{#!protected ------------------------------------------------------------------------------------
    307 ''
    308 ''
    309 }}}
     3051. La configuration des périphériques et des interruptions est faites dans la fonction `arch_init()` appelée par `kinit()`.
     306Comment configurer l'ICU  pour démasquer l'IRQ connectée sur son entrée n°0 ?
     307{{{#!protected ------------------------------------------------------------------------------------
     308''
     309 * Il suffit d'appeler `icu_set_mask (0,0;` puisque `icu` = 0` et `irq = 0`.
     310''
     311}}}
     3121. Supposons que l'on ait défini les registres du TIMER de la façon suivante :
     313
     314
     315{{{#!comment
     316
     3171. Le TIMER est le composant qui produit périodiquement des IRQ, (mettre la structure) écrivez le code d'une fonction qui active une IRQ tous les 1000 cycles.
     318{{{#!protected ------------------------------------------------------------------------------------
     319''
     320''
     321}}}
     3221. Comment configurer le noyau pour qu'il exécute une ISR nommée `x_isr()` pour un périphérique `x` dont l'IRQ est connectée à l'entrée 3 ?
     323{{{#!protected ------------------------------------------------------------------------------------
     324''
     325''
     326}}}
     3271. Pourquoi est-ce plus simple d'exécuter le traitement des interruptions en mode in-interruptible ?
     328{{{#!protected ------------------------------------------------------------------------------------
     329''
     330''
     331}}}
     3321. On a vu qu'un syscall est comme un appel de fonction, il ne garantie pas que les registres temporaires sont conservés, mais il garantit que les registres persistants le sont. Est-ce que c'est pareil pour les interruptions ?
     333{{{#!protected ------------------------------------------------------------------------------------
     334''
     335''
     336}}}
     337
     338}}}
     339
     340= TME sur les interruptions.
     341
     342== Ajout de l'ISR timer
     343
     344
     345
     346== Game Over
     347
     348Dans le premier TME, vous avez réalisé un petit jeu dans lequel vous deviez deviner un nombre tiré au hasard. Ce jeu avait été mis dans kinit parce qu'a ce moment, il n'y avait pas encore d'application utilisateur. Nous vous proposons de mettre le jeu dans l'application user et de limiter le temps pendant lequel vous pouvez jouer.
     349
     350Modifier l'ISR du timer pour afficher "Game Over"
     351
     352
     353
    310354[...]
    311355
    312 {{{#!comment
    313 
    314 1. Le TIMER est le composant qui produit périodiquement des IRQ, (mettre la structure) écrivez le code d'une fonction qui active une IRQ tous les 1000 cycles.
    315 {{{#!protected ------------------------------------------------------------------------------------
    316 ''
    317 ''
    318 }}}
    319 1. Comment configurer le noyau pour qu'il exécute une ISR nommée `x_isr()` pour un périphérique `x` dont l'IRQ est connectée à l'entrée 3 ?
    320 {{{#!protected ------------------------------------------------------------------------------------
    321 ''
    322 ''
    323 }}}
    324 1. Pourquoi est-ce plus simple d'exécuter le traitement des interruptions en mode in-interruptible ?
    325 {{{#!protected ------------------------------------------------------------------------------------
    326 ''
    327 ''
    328 }}}
    329 1. On a vu qu'un syscall est comme un appel de fonction, il ne garantie pas que les registres temporaires sont conservés, mais il garantit que les registres persistants le sont. Est-ce que c'est pareil pour les interruptions ?
    330 {{{#!protected ------------------------------------------------------------------------------------
    331 ''
    332 ''
    333 }}}
    334 
    335 }}}
    336 
    337 = TME sur les interruptions.
    338 
    339 == Ajout de l'ISR timer
    340 
    341 
    342 
    343 == Game Over
    344 
    345 Dans le premier TME, vous avez réalisé un petit jeu dans lequel vous deviez deviner un nombre tiré au hasard. Ce jeu avait été mis dans kinit parce qu'a ce moment, il n'y avait pas encore d'application utilisateur. Nous vous proposons de mettre le jeu dans l'application user et de limiter le temps pendant lequel vous pouvez jouer.
    346 
    347 Modifier l'ISR du timer pour afficher "Game Over"
    348 
    349 
    350 
    351 [...]
    352 
    353 
     356