Changes between Version 35 and Version 36 of SoclibCourseTp5


Ignore:
Timestamp:
Dec 22, 2010, 2:46:12 PM (14 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp5

    v35 v36  
    168168}}}
    169169
    170 == 2.9 Exemple d'utilisation ==
    171 
    172 A titre d'exercice, vous devez  utiliser le '''GDB server''' sur l'architecture mono-processeur du TP4,
    173 sur laquelle vous exécuterez l'application logicielle réalisant le calcul du PGCD grâce au coprocesseur GCD. Mais deux ''bugs'' ont été volontairement introduit dans le logiciel, et l'objet de cette première partie est de localiser et de localiser et de corriger ces deux ''bugs''.
    174 
    175 Commencer par vous placer dans le répertoire '''soft''', et lancez le Makefile pour générer le fichier '''bin.soft''', ainsi que le fichier '''bin.soft.txt''' qui contient la version désassemblée (lisible) du logiciel embarqué.
    176 
    177 Lancez l'exécution du simulateur dans une première fenêtre... et constatez que vous n'obtenez pas le résultat attendu.
    178 
    179 Modifiez le fichier '''tp4_top.cpp''' et le fichier '''tp5.desc''' pour introduire le GDB Server dans l'architecture comme indiqué ci-dessus.
    180 Regénérez le simulateur en utilisant soclib-cc. Définissez la variable d'environnement SOCLIB_GDB.
    181 Lancez l'exécution du simulateur dans une première fenêtre de travail.
     170== 2.9 Utilisation ==
     171
     172A titre d'exercice, vous allez  utiliser le '''GDB server''' sur l'architecture mono-processeur du TP4,
     173sur laquelle vous exécuterez successivement deux applications logicielles contenant chacune un bug que
     174vous devez localiser puis corriger.
     175
     176Outre les fichiers permettant de regénérer l'architecture monoprocesseur du TP4, l'archive [attachment:soclib_tp5.tgz soclib_tp5.tgz] contient deux répertoires '''soft_gcd''' et '''soft_prime'''.
     177Le répertoire '''soft_gcd''' contient tous les fichiers nécessaires à la génération du code binaire de l'application de calcul du PGCD que vous connaissez déjà. Le répertoire '''soft_prime''' contient tous les fichiers nécessaires à la génération du code binaire d'une autre application logicielle réalisant le calcul des nombres premiers. Les deux bugs (différents) qui ont été introduits dans chacune de ces deux applications ne sont pas visibles à la compilation, et n'apparaissent qu'à l'exécution.
     178
     179Créez un répertoire de travail TP5, puis téléchargez et décompressez l'archive dans ce tépertoire.
     180{{{
     181$ tar xzvf soclib_tp5.tgz
     182}}}
     183
     184'''Question''' : Placez-vous dans le répertoire '''soft_gcd''', compilez l'application logicielle en utilisant le Makefile
     185qui vous est fourni. Retourner dans le répertoire TP4_etudiant''' pour générer le simulateur '''simulator.x'''.
     186Lancez l'exécution du simulateur ... et constatez que vous n'obtenez pas le résultat attendu. Il faut évidemment redéfinir le chemin d'accès au code binaire:
     187{{{
     188$ ./simulator.x -SOFT soft_gcd/bin.soft
     189}}}
     190
     191Modifiez le fichier '''tp4_top.cpp''' et le fichier '''tp4.desc''', ainsi que le fichier '''Makefile''' pour introduire le GDB Server dans l'architecture comme indiqué ci-dessus, en remplaçant partout ''tp4'' par ''tp5'' dans les noms de fichier.
     192
     193Regénérez le simulateur en utilisant soclib-cc.
     194
     195Lancez l'exécution du simulateur dans une première fenêtre de travail, après avoir redéfini la variable d'environnement SOCLIB_GDB comme indiqué ci-dessus.
    182196
    183197Ouvrez dans une seconde fenêtre le fichier '''bin.soft.txt''', de façon à pouvoir suivre - instruction par instruction -
    184198le programme en cours d'exécution, depuis la première instruction du code de boot (adresse Oxbfc00000).
    185199
    186 Lancez le client GDB dans une troisième fenêtre, connectez-le au simulateur et désactivez le mécanisme de blocage sur Exceptions Interruptions et Trappes, en utilisant les deux commandes décrites plus haut. Commencez à exécuter le programme instruction par instruction  avec la commande ''stepi''. Le premier  dysfonctionnement apparaît assez rapidement...
     200Lancez le client GDB dans une troisième fenêtre, connectez-le au simulateur. Commencez à exécuter le programme instruction par instruction  avec la commande ''stepi''. Le premier  dysfonctionnement apparaît assez rapidement...
     201
     202'''Question''' : Après avoir localisé le bug, corrigez-le et vérifiez que le calcul du PGCD s'exécute correctement.
     203
     204'''Question''' : Refaites le même exercice avec l'application logicielle contenue dans le répertoire '''soft_prime'''.
    187205
    188206Quand  les deux bugs ont été localisés et corrigés, vous pouvez attaquer l'étape suivante.