Où sommes nous ?

Retour

Simulation du programme de test

GPSim est un outil très puissant pour simuler nos programmes et je dois avouer qu'à l'heure où j'écris ces lignes, je n'en maitrise pas encore toutes les subtilités. Dans cette page, nous allons simplement vérifier si notre programme fonctionne en y appliquant des stimulus pour allumer ou éteindre une LED. Rien de bien compliqué, mais après tout, c'est ce qu'on demande à notre programme.

La version actuelle de GPSim est 0.24.0 donc on est encore loin d'une version finale : on remarquera rapidement que l'interface graphique n'est qu'une sur-couche pas très stable (en d'autres mots, bien planteuse). On ne trouvera la quintessence de ce programme qu'en maîtrisant ses commandes en ligne ... un sujet pour une autre page de ce site.

Comme il s'agit du programme en ligne de commande, il devra etre lancé depuis le shell.

laurent@Nunux:~/Documents/ProjetsPic/Tests/TestLedBP$ gpsim TestLedBP.cod

Le fichier .cod est générés par sdcc et contient à la fois le binaire du programme (comme le fichier .hex qui sert à griller les circuits) mais aussi des informations de débugages.

Les fenêtres

Plusieurs fenêtres s'ouvrent : on peut les ouvrir ou les fermer par le menu ... "Windows".

ATTENTION : sur mon système, certaines font planter le programme ... je vous conseille donc de les tester AVANT de faire quelque chose d'important.

La fenêtre principale

Bon, pas besoin de rentrer dans les détails, les menus et boutons sont suffisamment explicites.

La fenêtre "Program memory / Assembly"

C'est dans cette fenêtre que sera tracé le programme durant l'exécution ... et là, déception : on ne peut tracer que l'assembleur ; si GPSim peut afficher aussi le source C, il ne sait pas l'exploiter .

Breadboard

Cette fenêtre est la plus intéressante du programme : elle permet de voir visuellement les réactions de notre PIC ... mais il va falloir lui ajouter des petits copains.

La simulation

Revenons a notre programme : il contient 2 entrées qui doivent être reliés à des boutons poussoirs et une sortie pour commander une LED. Ajoutons les.

Add library

Au démarrage, GPSim ne connait que les PICs. Les "librairies" contiennent plein d'autres composants. En particulier, libgpsim_modules livrée avec GPSim contient tous les périphériques de bases (boutons, LED, ...).

On entrera donc libgpsim_modules dans la fenêtre qui s'ouvre lorsque l'on clique sur ce bouton.

La documentation contient toutes les informations sur ces différents périphériques. Et on verra que certains permettent une certaines interactivité (comme le module uart).

Add module

Ce bouton permet d'ajouter un composant à notre schéma. On ajoutera 2 "push buttons" qu'on nommera "Marche" et "Arret", et une LED.

Il est assez déconcertant de déplacer des objets : leur poignée se situe au niveau du nom et non de leur symbole.

Add node

Les nodes sont en fait les liaisons entre les différents composants. Si leur déclaration n'est pas des plus intuitives au début, on s'y fait vite avec un peu d'entrainement. Voyons comment ça se passe pour par exemple lier la LED et le GPIO5.

Le bouton "Add node" permet ... d'ajouter un node (surprenant n'est-ce pas ?). On le nomera "n1".

On déplie le composant LED et on double clique sur son "led.in" (en rouge sur l'image). La zone d'information située en bas de la fenêtre  (en vert) indique qu'aucun stimulus ne lui est encore associé, ce que l'on peut faire par le bouton "Connect to stimulus". On choisira bien évidemment "n1" dans la liste qui s'affiche.
Idem avec p12f275.gpio5, toujours pour le node n1.

Reste plus qu'à faire la même chose pour les boutons "Marche" et gpio2 et "Arret" pour gpio3. (heu, je me suis gouré en faisant cette page, c'est bien sur gpio4 ici).

Enfin, on clique sur "Trace All" pour voir les liens ... ce qui devrait donner :

Le nom des pins des PICs changent dynamiquement en fonction de leur configuration faite par le programme. Ainsi, sur l'image ci-dessus, point de "gpio4" mais un "an3" : ce qui signifie que ce pin est configuré par défaut comme une entrée analogique. Au lancement du programme, il deviendra "gpio4" une fois les registres ANSEL et TRISIO initialisés. INDISPENSABLE pour éviter d'oublier des initialisations indispensables !

Lançons le programme

"RUN" dans la fenêtre principale et le programme est lancé : comme indiqué plus haut, le nom des pins change en fonction de leur affectation et si l'on clique sur "Marche", la LED devient rouge. On clique sur "Arret", elle s'éteint : Notre programme fonctionne !

Conclusion

Cette page ne montre qu'une toute petite partie des possibilités de ce programme qui sont ÉNORMES. Ne nous voilons pas la face, tout n'est pas encore parfait, certaines fenêtres provoquent de beaux plantages, on aimerait tracer directement le C ... mais ça reste un outil indispensable pour développer sur PIC.

Le fichier ".stc" qui sont sauvegardés grâce au bouton "Save Configuration" sont en fait de simples fichiers texte et on gagnera parfois à directement les modifier.


Visitez :
La liste de nos voyages
Nos sorties Ski et rando
Copyright Laurent Faillie 2001-2024
N'oubliez pas d'entrer le mot de passe pour voir aussi les photos perso.
Contactez moi si vous souhaitez réutiliser ces photos et pour les obtenir avec une plus grande résolution.
Visites durant les 7 derniers jours Nombre de visites au total.

Vous pouvez laissez un commentaire sur cette page.