À vous de jouer !
Cette première activité a pour but de vérifier que vous disposez de tous les outils nécessaires pour avancer dans la suite de ce cours.
Pour cela, vous allez créer un projet, importer du code, le compiler et l’exécuter tout en observant son comportement.
Documents à réaliser
Le rendu se fera sous la forme de captures d’écran sur lesquelles vous surlignerez les éléments à visualiser. Par exemple, vous pouvez montrer que votre code a bien compilé en indiquant par un cadre le résultat de la compilation :
Travail à réaliser
Commencez par récupérer l’archive suivante et décompressez-la.
Étape 1
Créez un nouveau projet que vous nommerez Act1. Ajoutez un fichier C dans lequel vous copierez le code du fichier main.c de l’archive (vous pouvez aussi directement l’importer). Ne modifiez pas le contenu du code. Compilez.
Faites une capture d’écran montrant :
les éléments composant votre projet,
la fenêtre avec le code,
le résultat de la compilation.
Étape 2
Ajoutez à votre projet les fichiers librairie.lib et functions.h (qui sont dans l’archive) avec un clic droit sur le répertoire avec les sources ou bien en utilisant le bouton . Attention, pensez bien à sélectionner All files (*) comme type de fichiers.
Décommentez toutes les lignes commentées de votre fichier C (lignes 2, 6, 9 et 11). Vous devriez avoir un code similaire à :
Compilez et passez en mode debug.
Faites une capture d’écran montrant que vous êtes bien passé en mode debug simulé.
Étape 3
Mettez un point d’arrêt sur la ligne 9 et lancez l’exécution.
Faites une capture d’écran montrant l’exécution arrêtée à la ligne 9.
Étape 4
Observez la valeur de la variable observable à chaque incrément de la boucle for.
Faites deux captures d’écran montrant la valeur de observable. Les captures doivent montrer de combien observable augmente à chaque pas de la boucle for. Autrement dit, faites une capture à un instant, puis une autre capture après avoir fait un pas de la boucle.
Étape 5
Combien de temps s’est écoulé entre le début de l’application et la ligne 13 ?
Faites une capture d’écran sur laquelle vous montrez la durée qu’a pris la simulation pour arriver à la ligne 13.
Étape 6
Observez la valeur stockée à l’adresse mémoire 0x20000004 quand le programme atteint la ligne 13.
Faites une capture d’écran montrant la valeur de la mémoire.
Vérifiez votre travail
Sur chaque image, il vous faudra vérifier que les éléments demandés sont bien présents sur la capture et qu’ils ont été bien mis en évidence.
Les éléments sont bien tous identifiés sur les captures d'écran.
Le mode debug est bien lancé.
Le point d'arrêt est présent à la bonne ligne et l'exécution est suspendu à ce niveau.
Les deux captures d'écran montrent bien un écart de 42 (ou 2A en hexadécimal) entre les deux valeurs de la variable.
La durée est indiquée et représente bien la durée d'exécution.
La fenêtre "Memory" est bien présente sur la capture d'écran ainsi que l'adresse, et la valeur est correcte.
Étape 1
L’image doit mettre en évidence une zone (1) avec la structure du projet, une zone (2) avec le code principal et une dernière zone (3) dans laquelle doit apparaître le résultat de la compilation.
Si vous n'avez pas réussi à éditer et compiler du code, veillez consulter les sections 1 et 2 du chapitre 1.3.
Étape 2
L’image doit simplement montrer que le mode debug est bien lancé.
La méthode pour passer en mode debug est expliquée dans la section 3 du chapitre 1.3.
Étape 3
L’image doit montrer le point d’arrêt sur la ligne 9 ainsi que les doubles flèches indiquant que le programme est arrêté sur cette ligne.
Pour ajouter un point d'arrêt, il suffit de cliquer sur la partie gauche des lignes de code. Il faut ensuite lancer l'exécution en cliquant sur run (). L'exécution s'arrêtera au premier point d'arrêt qu'elle rencontre. La section 1 du chapitre 1.4 explique cela.
Étape 4
Les deux images doivent montrer un incrément de 42.
Pour observer une variable var, vous pouvez simplement faire un clic droit sur la variable (en mode debug) puis choisir add 'var' to -> Watch 1 et observer sa valeur dans la fenêtre Watch 1.
Pour observer les valeurs successives de observable, il suffit de placer un point d'arrêt à la ligne 9 et de cliquer sur le bouton step-over (), ce qui permet d'exécuter la fonction function1 sans entrer à l'intérieur.
Attention la valeur peut être en hexadécimal comme sur l’exemple suivant :
Étape 5
La durée de la simulation est indiquée en bas de la fenêtre. Pour avoir le temps simulé pour atteindre la ligne 13, il faut un point d’arrêt sur la ligne 13 et que le programme y soit arrêté.
Comme précisé dans la section 1 du chapitre 1.4, la durée du temps estimé en simulation est indiquée en bas de la fenêtre. Vous pouvez la remettre à zéro en effectuant un clic droit sur elle.
Étape 6
Pour observer la valeur de la mémoire, il faut que la fenêtre Memory soit sélectionnée et que l’adresse soit saisie. On observe à l’adresse 0x20000004 les bits 24 00 00 00 en hexadécimal, soit la valeur de 0x00000024 (ou 36 en décimal).
La fenêtre mémoire peut être affichée en allant dans le menu View et en sélectionnant Memory Windows comme cela est indiqué dans la section 3 du chapitre 1.4.
Une fois cette fenêtre apparue, en saisissant l'adresse de la mémoire dans Address, il est possible d'observer la valeur contenue dans cette plage mémoire. Attention, la lecture des octets se fait à l'envers (on parle d'architecture little-endian).