Un des nombreux outils
lociciels que Microchip nous offre (grâce lui soit rendue pour sa
démarche
désintéressée)
est un simulateur qui permet de suivre pas à pas le déroulement
d´un programme, sans même qu´on ait eu besoin de le graver au coeur
d´un microP.
Un outil très
puissant qui sert aux développeurs à manipuler et tester
des applications très compliquées, mais qui de par la simplicité de
sa mise en oeuvre à
titre amateur nous servira aussi à nous, les sans-grade... On dit
que “jamais un programme n´a pu être compilé en
une fois sans une erreur” ?
Cela vaut aussi bien pour un vieux routier que pour Jidé, qui n´a
pas encore assimilé “par coeur” la différence
scolastique entre Trisio et Gpio* (jusqu´à onze heures du
soir, ça
va ; après, il y a parfois
confusion), ou pourquoi du courant entre parfois par une sortie,
ou pourquoi ce Ansel que je ne connais même pas s´invite à toutes
mes soirées pour les pourrir,
ou pourquoi cet enf$%&#ré de
GP3 ne veut pas passer à quand
je lui dis de le faire... La réponse est soit dans de longues conversations
avec mes amis compétents, mais que j´ai peur d´excéder
bientôt...
soit dans MPLAB SIM...
Et autant il est
vital de pouvoir copier-coller des codes complexes entre leurs auteurs
et les ptitrainistes de base sans être obligé de tout
comprendre, autant il est normal qu´un jour le garnement que nous sommes
tous dans notre for intérieur ait envie d´arracher les pattes à un
PIC pour voir s´il continue ensuite à voler. En un mot :
d´écrire
un programme (un petit) à soi tout seul !
*
Note : si vous pensez que Gpio est un menuisier âgé et que Trisio est une
marionnette de bois qu´il a fabriquée et qui a un grand nez, c´est que
vous êtes arrivé par erreur dans cette page...
Un grand écran est
bienvenu quand il s´agit d´afficher ensemble aux fins de simulation
les quelques fenêtres obligées du logiciel... La plus fondamentale est
celle de l´éditeur : MPLAB
contient son propre éditeur de texte et, si vous n´avez pas
l´habitude
d´en utiliser un autre que vous connaîtriez parfaitement (on
a par exemple parlé sur
la liste Ptitrainmatique du logiciel Notepad++),
il vous sera bien suffisant. On peut saisir, corriger, compiler, tester,
corriger, compiler, tester... sans sortir de l´environnement MPLAB
(que vous êtes
censé connaître
déjà, bien sûr, via nos dix premières
pages Pictrain). Codes de couleur, renfoncements,
numérotage de
lignes, cherche-remplace, tout l´outillage de base est là.
 |
FAQ ANGLICHE
FORE ÉVEUR ? Microchip est peut-être
très
sympathique et pas "près
de ses sous"
mais il n´est guère polyglotte ! Anglais
et chinois, hors de ces langages, point de salut.
Mais, bon, les vingt mots d´anglais nécessaires à SIM
seront vite appris...
Tellement
rare qu´il faut le noter : il existe deux
sites web francophones qui
comprennent un mode d´emploi de SIM, net, concis
et bien fait :
la page de M. André Louis, prof à Avignon, qu´on
peut voir ici (ou importer pour impression à partir
de notre dossier "Hors
texte" ; et la page de M. Marcel
Cremmel,
prof à Strasbourg (site
web ici, et aussi dans notre "Hors
texte").
Microchip est
aussi auteur d´un document exceptionnel par sa
concision (7 pages) et sa précision chirurgicale
(qu´est-ce
qu´il y a comme bla-bla, en général,
sur les pages des constructeurs !),
en anglais, mais qu´un de nos lecteurs pourrait
peut-être
traduire à temps perdu ?
Le voici, sur
leur web, ou sur
nos pages... |
|
|
Une deuxième
fenêtre (ouvrable grâce au menu View),
c´est Watch,
qui ne veut pas dire Montre-bracelet mais Observer.
 |
 |
 |
 |
|
On
glisse dans cette fenêtre Watch les
variables ou les registres spéciaux
que l´on veut surveiller et leur valeur change au rythme de l´avancement
du programme. Passent en rouge les valeurs qui viennent d´être
modifiées. Adresses, valeur décimale, ou binaire...
 Une
autre fenêtre (View... File Registers)
permet de voir uniquement les registres spéciaux, mais tous
ensemble...
Autre fenêtre
(View... Program Memory) celle ci-dessous nous
permet d´assister au déroulement du programme dans la mémoire du
microP, “désassemblé” comme si l´on épiait un programme fait par
un autre.
Attention : piège
au niveau des “banques” 1 et 0 : pour le microP, après
qu´on lui a spécifié de passer de 0 à 1
ou vice versa, c´est la même chose (!)
— et voilà qui vous montrera pourquoi vous vous
plantez de temps
à autre quant au sexe des anges que sont Gpio et son copain
Trisio. |
Le déroulement
du programme est visible pas à pas, en direct sur écran, mais également
enregistrable sous forme de texte qu´on pourrait imprimer pour traquer,
bic à la
main, le bug qui tue, c´est
la fenêtre Trace .
 |
 |
 |
 |
|
 Cette
fenêtre ne vous est pas étrangère, on retrouve ici la liste des documents
indispensables à la compilation, INC, ASM, etc.
 Cette
autre (Output) ne vous a pas
encore rendu fou, car vous recopiiez
des programmes sous la férule de notre maître PSi, mais
quand vous en écrirez vous-même, ça n´est
pas tout de suite que vous lirez Build
Succeeded...
Heureusement,
nos erreurs y sont décrites assez précisément :
“un mot placé dans la mauvaise colonne à la ligne
n° 56” ? |
Ah, oui, bon sang mais
c´est bien sûr, on a écrit
le nom d´une étiquette à une espace de la marge gauche alors
qu´elle doit y être collée.. De
plus un double clic sur l´erreur vous amène tout droit,
dans l´éditeur, sur cette
ligne fautive...
 |
 |
Voilà encore
une vue de notre programme, c´est
le listing complet (incorporant les fichiers externes .INC et autres, dont
certains que vous n´avez même jamais
ouverts) de telle sorte qu´une variable, une macro, une étiquette,
un sous-programme... figure forcément
dessus, même si ça n´est pas vous qui l´avez écrit.
 |
 |
|
 |
 |
 |
|
Notre
tour d´amateur (prenons bien soin de le présenter
ainsi, sans autre ambition) de MPLAB SIM va s´achever par ce
menu “Debugger”,
que nous allons traduire ensemble.
Select
Tool,
choisir l´outil : vous choisissez 4-MPLAB SIM.
Clear
Memory,
bonne idée de vider la mémoire avant une nouvelle simulation.
Run : je
n´en ai pas encore vu le rôle, je me sers de la ligne du dessous
Animate : elle fait se dérouler le programme à une vitesse déterminée
(par défaut 1/3 de seconde par ligne, mais c´est réglable).
Halt :
stoppe l´exécution. Step Into :
fait avancer à la main, pas par pas. Step Over, Out, Breakpoints :
on y reviendra plus tard...
StopWatch ne se
traduit pas par Arrêter de regarder... mais par Chronomètre !
Cet instrument permet de mesurer le temps exact passé par le microP
sur une boucle, l´incrémentation d´un timer, etc.
Stimulus ?
C´est la liste des événements que vous créez
(appui sur un bouton poussoir, par exemple) pour voir y répondre
le microP. Le temps passé
le doigt sur le bouton, le nombre de fois où il a été appuyé...
tout cela est réglable, enregistrable dans une sorte de scénario...
Settings, ce sont
tous les réglages personnels que vous voulez faire subir au debugger...
Allez y faire un tour, essayez, vous ne pouvez rien casser... |
Les icônes ci-dessous
sont comme à l´habitude
redondantes avec les menus, ouvrir, enregistrer sous... Run, Halt,
Pas à pas, Reset... Enregistreur de macros...
 |
 |
 |
FAQ Peu
habitué au site Ptitrain, je suis étonné que
Jidé se
prétende plus ou moins béotien, débutant
ou incompétent...
alors même qu´il est en train de nous donner
des cours !
— C´est en effet et paradoxalement
le besoin de voir clair qui a poussé Jidé sur
cette voie ;
c´est par exemple un jour où il s´est
dit "Y
en a marre de ne rien comprendre à l´électronique,
depuis quinze ans que je bidouille n'importe comment !
Je vais mettre toutes mes notes au propre et tout reprendre
de zéro !" Les "notes mises
au propre" sont
devenues le Meccano électronique, plein
de gens semblent y avoir trouvé un os à ronger,
et donc on continue dans la foulée avec les microP. "Même
si j´ai compris un truc il y a seulement cinq
minutes, écrit
Jidé dans ses Mémoires (à
paraître), ce n´est pas pour ça
que je ne dois pas en parler,
tout de suite, et à tout le monde..." |
|
|
|