Changes between Version 62 and Version 63 of Archi-1-TP11


Ignore:
Timestamp:
Nov 16, 2024, 4:33:03 PM (3 months ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Archi-1-TP11

    v62 v63  
    3232 
    3333
    34 Dans le TP9, 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'à 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.
    35 
    36 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 `kO6`
     34Dans le tp1, 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'à 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.
     35
     36**Récupération du code du tp3**
     37
     38* Ouvrez un `terminal`
     39* Allez dans le répertoire des TPs: **`cd ~/kO6`** \\
     40  ''... ou bien le répertoire que vous avez choisi pour faire les TPs.''
     41* Copiez les codes du **tp3**:\\
     42  **`cp -rp /Infos/lmd/2024/licence/ue/LU3IN029-2024oct/kO6/tp3 .`**
     43* Exécutez la commande : **`cd tp3 ; tree -L 1`**.\\
     44  Vous devriez obtenir ceci :
    3745{{{#!bash
    38 cd ~/kO6
    39 tar xvzf tp3.tgz
    40 cd tp3/1_gameover
    41 }}}
     46.
     47├── 1_gameover
     48└── Makefile
     49}}}
     50
     51**Allez dans le répertoire `1_gameover`**
    4252
    4353Le code de l'application est le suivant (dans uapp/main.c)
     
    7484}}}
    7585
    76 1. Essayez le jeu (dans le répertoire `tp3/1_gameover`) : tapez `make exec`\\
     861. Pour essayer le jeu (dans le répertoire `tp3/1_gameover`) : tapez `make exec`\\
    7787   comme vous pouvez le constater, vous avez le temps de jouer.
    78881. 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 autres 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.