| 182 | L'archive [attachment:soclib_tp5.tgz soclib_tp3.tgz] contient différents fichiers dont vous aurez besoin pour ce TP. |
| 183 | Créez un répertoire de travail spécifique TP5, recopiez l'archive dans ce répertoire TP5, et décompressez-la: |
| 184 | {{{ |
| 185 | $ tar xzvf soclib_tp3.tgz |
| 186 | }}} |
| 187 | |
| 188 | == 4.1 Utilisation de GDB == |
| 189 | |
| 190 | On va dans un premier temps réutiliser la même architecture mono-processeur que celle modélisée dans le TP4, et on cherche |
| 191 | à exécuter la même application logicielle embarquée. Mais deux ''bugs'' ont été volontairement introduit dans le logiciel, et l'objet de cette première partie est de localiser et de corriger ces deux ''bugs'', en utilisant l'outil '''GDB Server'''. |
| 192 | |
| 193 | Commencer par vous placer dans le répertoire '''soft''', et lancez le Makefile pour générer le fichier '''bin.soft''', ainsi que le |
| 194 | fichier '''bin.soft.txt''' qui contient la version désassemblée (lisible) du logiciel embarqué. |
| 195 | |
| 196 | Lancez l'exécution du simulateur dans une première fenêtre... et constatez que vous n'obtenez pas le résultat attendu. |
| 197 | |
| 198 | Modifiez le fichier '''tp4_top.cpp''' et le fichier tp5.desc pour introduire le GDB Server dans l'architecture comme indiqué ci-dessus. |
| 199 | Regénérez le simulateur en utilisant soclib-cc. Définissez la variable d'environnement SOCLIB_GDB. |
| 200 | Lancez l'exécution du simulateur dans une première fenêtre de travail. |
| 201 | |
| 202 | Ouvrez dans une seconde fenêtre le fichier '''bin.soft.txt''', de façon à pouvoir suivre - instruction par instruction - |
| 203 | le programme en cours d'exécution, depuis la première instruction du code de boot (adresse Oxbfc00000). |
| 204 | |
| 205 | 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 ci-dessus. Commencez à exécuter le programme instruction par instruction avec la commande ''stepi''. Le premier dysfonctionnement apparaît assez rapidement... |
| 206 | |
| 207 | == 4.2 architecture à 4 clusters == |
| 208 | |
| 209 | Quand les deux bugs ont été localisés et corrigés, vous pouvez attaquer l'étape suivante, consistant à décrire une architecture |
| 210 | quadri-processeurs structurée en quatre clusters. Chaque cluster contiendra un processeur, un composant ICU, un timer, |
| 211 | un contrôleur de terminal TTY, une mémoire. On utilisera le composant '''vci_local_crossbar''' comme interconnect local, |
| 212 | et le composant '''vci_vgmn''' comme interconnect global. |
| 213 | |
| 214 | Il faut donc écrire les deux fichiers tp5_top.cpp et TP5.desc correspondant à cette architecture. assez profondément la top_cell qui sera |
| 215 | |