{{{#!html

INDEX

}}} [[PageOutline]] **DOC** → [__**[wiki:Howto-TP Config]**__] [__**[htdocs:cours/doc_MIPS32.pdf MIPS U]**__] [__**[wiki:Doc-MIPS-Archi-Asm-kernel MIPS K]**__] [__**[https://www.markdownguide.org/basic-syntax markdown]**__] [__**[htdocs:files/CR031_TPx_nom1_nom2.md 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-threads-2p.pdf 3]**__] [__**[htdocs:cours/Archi-2-B4-cache-archi-2p.pdf 4]**__] [__**[htdocs:cours/Archi-2-B5-cache-perf-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/kO6a2bin.tgz gcc + soc]**__] [__**[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 * **Solution 1** : les fichiers sont sur votre compte * Récupérez l'archive contenant **[htdocs:files/kO6a2bin.tgz le prototype virtuel et la chaîne de compilation MIPS]** * Placez l'archive à 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/bin/SourceMe.sh`** * Ouvrez un nouveau terminal pour démarrera un nouveau bash et qui lira 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. * **Solution 2** : Les fichiers sont * Éditez le fichier **`$HOME/.bashrc`** et ajoutez au début :\\**`source /Infos/lmd/2022/licence/ue/LU3IN031-2022fev/kO6-a2/bin/SourceMe.sh`** * Ouvrez un nouveau terminal pour démarrera un nouveau bash et qui lira votre fichier `.bashrc`. = B) Étape 2. Test : compilation et exécution d'un test * Vous devez avoir réalisé l'étape 1. * Allez dans le répertoire **`kO6-a2/bin/test`** et lancez **`make exec`** :\\ **`cd $HOME/kO6-a2/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). Compte-rendus:: Vous allez devoir faire vos compte-rendus en utilisant la syntaxe **!MarkDown**. Vous rendez un compte-rendu par binôme déposé sur **[https://moodle-sciences-22.sorbonne-universite.fr/course/view.php?id=2653 Moodle]**. Je vous recommande **vivement** de vous créer un compte gratuit sur **[https://hackmd.io HackMD]**. Vous pourrez éditer vos comptes-rendus en constituant une ''team'' sur HackMD avec votre binôme. Les comptes-rendus devront comporter vos noms, un modèle est proposé ici → __**[htdocs:files/CR031_TPx_nom1_nom2.md CR.md]**__