Changes between Version 27 and Version 28 of SoclibCourseTp3


Ignore:
Timestamp:
Sep 28, 2009, 1:59:34 AM (15 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp3

    v27 v28  
    212212sans recompiler le simulateur et sans avoir à regénérer le fichier ''simulator.x''.
    213213
    214 On va donc maintenant écrire une application logicielle un peu plus complexe, qui utilise le coprocesseur LCD,
     214On va donc maintenant écrire une application logicielle un peu plus complexe, qui utilise le coprocesseur GCD,
    215215simplement en modifiant le fichier ''main.c'' dans le répertoire ''soft'', et en relançant la compilation et la génération
    216216du fichier ''bin.soft''.
    217217
    218218Modifiez le fichier ''main.c'', pour que les programme C exécute une boucle infinie dans laquelle on effectue successivement
    219 les sept opérations suivantes :
     219les opérations suivantes :
    220220
    221221 1. affichage du numéro de cycle et du numéro d'itération.
    222222 1. génération aléatoire de deux variables OPA et OPB de type ''int''.
    223  1. écriture de OPA dans le registre ''r_opa'' du coprocesseur LCD.
    224  1. écriture de OPB dans le registre ''r_opb'' du coprocesseur LCD.
    225  1. écriture dans le pseudo-registre ''r_start'' du coprocesseur LCD, pour démarrer la simulation.
    226  1. lecture dans le registre ''r_res'' du coprocesseur LCD pour récupérer le résultat.
    227  1. affichage des valeurs des opérandes et du résultat sur le TTY.
    228 
    229 Pour afficher sur le terminal, on utilisera évidemment la fonction ''printf()''.
    230 Pour obtenir le numéro de cycle, on utilisera la fonction...
     223 1. écriture de OPA dans le registre 'GCD_OPA'' du coprocesseur GCD.
     224 1. écriture de OPB dans le registre ''GCD_OPB'' du coprocesseur GCD.
     225 1. écriture dans le pseudo-registre ''GCD_START'' du coprocesseur LCD, pour démarrer la simulation.
     226 1. lecture du registre ''GCD_STATUS'' du coprocesseur LCD pour tester la fin du calcul.
     227 1. affichage du numéro d'itération, du numéro de cycle, des valeurs des opérandes et du résultat sur le TTY.
     228
     229Pour afficher sur le terminal, on utilisera évidemment la fonction ''tty_printf()''.
     230Pour obtenir le numéro de cycle, on utilisera la fonction ''proctime().
    231231Pour la génération aléatoire, on utilisera la fonction ''rand()''.
    232 Pour les accès au coprocesseur LCD on utilisera les fonctions...
    233 
    234 Le code de ces fonctions est défini dans le fichier...
     232Pour les accès au coprocesseur GCD on utilisera les fonctions 'spécifiques au coprocesseur LCD.
     233
     234Pour introduire un peu d'interactivité dans cet exercice, vous pouvez introduire dans la boucle
     235un appel à la fonction ''tty_getc()'' qui lit un caractère au clavier, et bloque l'exécution du programme
     236tant que le caractère n'est pas saisi.
     237 
     238Le code de ces fonctions est défini dans le fichier ''stdio.c'', et les prototypes
     239sont définis dans le fichier ''stdio.h''.
    235240
    236241= 5 Compte-rendu =