{{{#!html

INDEX

}}} [[PageOutline]] **DOCS** → [__**[wiki:Howto-TP Config]**__] [__**[htdocs:cours/doc_MIPS32.pdf MIPS U]**__] [__**[wiki:Doc-MIPS-Archi-Asm-kernel MIPS K]**__] [__**[http://support.typora.io/Markdown-Reference markdown]**__] [__**[htdocs:files/CR031_TPx_Nom1_Nom2.md.tgz CR.md]**__] \\**COURS** → [__**[htdocs:cours/Archi-2-B1-reboot-2p.pdf 1]**__ __([htdocs:cours/Archi-2-B1-code-2p.pdf +code]__) __([htdocs:cours/Archi-2-B1-outils-2p.pdf +outils]__)] [__**[htdocs:cours/Archi-2-B2-interruptions-2p.pdf 2]**__] [__**[htdocs:cours/Archi-2-B3-cache-archi-2p.pdf 3]**__] [__**[htdocs:cours/Archi-2-B4-cache-perf-2p.pdf 4]**__] [__**[htdocs:cours/Archi-2-B5-threads-2p.pdf 5]**__] [__**[htdocs:cours/Archi-2-B6-alloc-2p.pdf 6]**__] [__**[htdocs:cours/Archi-2-B7-synchro-2p.pdf 7]**__] [__**[htdocs:cours/Archi-2-B8-initiateurs-2p.pdf 8]**__] [__**[htdocs:cours/Archi-2-B9-ZDL-2p.pdf 9]**__] \\**TME → ** [__**[wiki:AS6-TME-B1 1]**__] [__**[wiki:AS6-TME-B2 2]**__] [__**[wiki:AS6-TME-B3 3]**__] [__**[wiki:AS6-TME-B4 4]**__] [__**[wiki:AS6-TME-B5 5]**__] [__**[wiki:AS6-TME-B6 6]**__] [__**[wiki:AS6-TME-B7 7]**__] [__**[wiki:AS6-TME-B8 8]**__] [__**[wiki:AS6-TME-B9 9]**__] \\**CODE → ** [__**[htdocs:files/test.tgz test]**__] [__**[htdocs:files/tp1.tgz 1]**__] [__**[htdocs:files/tp2.tgz 2]**__] [__**[htdocs:files/tp3.tgz 3]**__] [__**[htdocs:files/tp4.tgz 4]**__] [__**[htdocs:files/tp5.tgz 5]**__] [__**[htdocs:files/tp6.tgz 6]**__] [__**[htdocs:files/tp7.tgz 7]**__] [__**[htdocs:files/tp8.tgz 8]**__] [__**[htdocs:files/tp9.tgz 9]**__] {{{#!html

Configuration de l'environnement des TP }}} > Les travaux pratiques se font sur Linux. Il est possible d'utiliser **windows linux subsystem**, mais cela demande des installations de bibliothèques, ce n'est pas documenté ici. = A) Étape 1. Prototype virtuel et chaîne de compilation MIPS * **Possibilité n°1** : si vous travaillez sur les machines de la PPTI.\\Le cross compilateur MIPS et le prototype virtuel du SoC sont sur dans les répertoires du module et donc pas en local sur votre compte. C'est la solution recommandée pour ne pas utiliser inutilement votre quota.\\ \\ * Éditez le fichier **`$HOME/.bashrc`** et ajoutez au début :\\**`source /Infos/lmd/2024/licence/ue/LU3IN031-2025fev/kO6-a2/bin/SourceMe.sh`** * Ouvrez un nouveau terminal pour démarrer un nouveau bash affin de lire votre nouveau fichier **`.bashrc`**. * Créez un répertoire **`kO6-a2`** à la racine de votre compte: **`mkdir $HOME/kO6-a2`** \\ \\ * **Possibilité n°2** : Si vous travaillez sur votre machine personnelle.\\Vous avez besoin du cross compilateur MIPS et du prototype virtuel du SoC.\\ \\ * Récupérez le fichier de l'archive **[htdocs:files/kO6a2bin.tgz kO6a2bin.tgz]** contenant le cross compilateur et le prototype virtuel (si la version compilée du framebuffer ne fonctionne pas, vous devrez le recompilier à partir de ses [htdocs:files/fb.tgz sources] ) * Placez l'archive **`kO6a2bin.tgz`** à la racine de votre compte et ouvrez un terminal * Décompressez l'archive avec la commande : **`tar xvzf kO6a2bin.tgz`** à la racine de votre compte (''si ça ne marche pas utilisez ''**`tar xvf kO6a2bin.tgz`**). * Si vous avez bien placé l'archive à la racine de votre compte, déplacez-vous dans kO6-a2 : **`cd $HOME/kO6-a2`** * Éditez le fichier **`$HOME/.bashrc`** et ajoutez au début de ce fichier :\\**`source $HOME/kO6-a2/bin/SourceMe.sh`** * Ouvrez un nouveau terminal pour démarrer un nouveau bash afin de lire votre nouveau fichier **`.bashrc`**. * Vous pouvez placer le répertoire **`kO6-a2`** ailleurs qu'à la racine, voire le renommer, mais pour que cela fonctionne vous devez éditer le fichier **`kO6-a2/bin/SourceMe.sh`**, toutefois dans les textes des TP, nous ferons l'hypothèse que le répertoire **`kO6-a2`** est la racine du compte. = B) Étape 2. Test : compilation et exécution d'un test * Vous devez avoir réalisé l'étape A (quel que soit votre choix machine PPTI ou Perso) * Allez dans le répertoire **`kO6-a2/`** et lancez **`make exec`** :\\ **`cd $HOME/kO6-a2/bin/test; make exec`** * __Si cela fonctionne : * Le simulateur du SoC **'almo1'** démarre. * Dans le terminal où vous avez lancé la commande précédente, vous devez voir la bannière du simulateur **`almo1`** (**`SystemCASS`**) suivie d'informations sur l'architecture simulée (sans importance pour vous actuellement) et un compteur d'horloge qui s'incrémente tous les millions de cycles simulés. * vous devez voir apparaître quatre fenêtres **`xterm`** avec le message "numéro --> Hello World!" et une fenêtre graphique contenant une roue en mouvement\\ * Ces messages et cette image sont écrits par le programme qui s'exécute sur le MIPS. * Pour arrêter la simulation, tapez **`ctrl-C`** sur le terminal de lancement du simulateur. * __Si cela ne fonctionne pas : * Vous n'avez peut-être pas placé le répertoire **`kO6-a2`** à la racine de votre compte. Vous avez le droit, mais vous devez modifier la première ligne du fichier **`kO6-a2/bin/SourceMe.sh`** et indiquer le bon répertoire. * Si le shell vous répond **`command not found`** ou **`commande inconnue`**, c'est que vous n'avez pas ''sourcé'' le fichier **`SourceMe.sh`**. Vous pouvez le vérifier en tapant la commande **`almo1.x`** = C) Remarques générales Édition des programmes:: Utilisez un **vrai** éditeur de code **moderne**, tel que **`code`** (Visual Studio Code) (ou **`[g]vim`**, **`[x]emacs`** ou **`sublime-text`**) afin de profiter d'une aide à la programmation avec, par exemple, des fenêtres popup pour les prototypes. Commandes du Shell:: Vous allez devoir utiliser l'interpréteur de commande **`shell`** de Linux et quelques commandes. Si vous avez l'habitude d'utiliser la souris, il va falloir vous faire un peu violence, mais dîtes-vous que c'est pour votre bien ! Vous devrez parfois utiliser des commandes que vous ne connaissez pas, soyez curieux et tentez un **`man`** sur la commande (ou une recherche sur le web, c'est bien aussi).