Changes between Version 29 and Version 30 of AS6-TME-B2


Ignore:
Timestamp:
Feb 16, 2022, 1:25:21 PM (3 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AS6-TME-B2

    v29 v30  
    483483
    484484
    485 == B. Travaux pratiques
    486 
    487 
    488 
    489 === La plateforme
     485= B. Travaux pratiques
     486
     487
     488
     489== 1. La plateforme
     490
    490491
    491492
     
    506507**Question** : faire un dessin représentant la plateforme avec les signaux IRQ.
    507508
    508 = 1. Game over simple
    509 
    510  
    511 
    512 Vous allez réaliser un petit jeu dans lequel vous deviez deviner un nombre tiré au hasard. Ce jeu avait été mis dans `kinit` parce qu'à 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. Nous allons vous guider pas-à-pas.
    513 
    514 Récuperez l'[htdocs:files/tp3.tgz archive du code du tp3], placez-là dans le répertoire `kO6` et décompressez-là. Les commandes ci-dessous supposent que vous avez mis l'archive dans le répertoire `k06`
     509
     510
     511== 2. Game over simple
     512
     513
     514
     515Vous allez réaliser un petit jeu dans lequel vous deviez deviner un nombre tiré au hasard. Nous vous proposons de limiter le temps pendant lequel vous pouvez jouer. Nous allons vous guider pas-à-pas.
     516
     517Récuperez l'[htdocs:files/tp2.tgz archive du code du tp2], placez-là dans le répertoire `2kO6` et décompressez-là. Les commandes ci-dessous supposent que vous avez mis l'archive dans le répertoire `k06`
    515518{{{#!bash
    516 cd ~/k06
    517 tar xvzf tp3.tgz
    518 cd tp3/1_gameover
     519cd ~/2k06
     520tar xvzf tp2.tgz
     521cd tp2/01_gameover
    519522}}}
    520523
     
    552555}}}
    553556
    554 1. Essayez le jeu (dans le répertoire `tp3/1_gameover`) : tapez `make exec`\\
     5571. Essayez le jeu (dans le répertoire `tp2/01_gameover`) : tapez `make exec`\\
    555558   comme vous pouvez le constater, vous avez le temps de jouer.
    5565591. Dans la version précédente du gestionnaire de syscall, nous avions masqué les IRQ en écrivant `0` dans le registre `c0_status`(registre $12 du coprocesseur 0). Cela avait pour conséquence de mettre tout à 0, entre autre le bit `IE`. Il faut modifier ça, parce que sinon, lorsque l'utilisateur demandera à lire le clavier avec l'appel système `fgets()`, l'IRQ venant du timer ne sera jamais prise en compte (`TODO1`), ensuite au retour de la fonction qui réalise l'appel système, il faut masquer les IRQ pour ne pas avoir d'interruption pendant la restauration des registres jusqu'au `eret` qui fait sortir du kernel.