MPLAB de Microchip :
Présentation de SIM,
le simulateur
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..."

Jidé

17/1/08
N.B. — Textes, schémas, programmes © Psi pour Ptitrain. Photos Jidé ou D.R. quand signalé. — Toutes vos remarques et commentaires sont bienvenus, et les pages de Ptitrain ne sont pas statiques : les erreurs sont corrigées sitôt connues, les améliorations, éclaircissements, etc. feront l´objet de mises à jour fréquentes.
Ptitrain, l´e-magazine du train éclectique. — Directeur de la publication : Christophe Franchini.
Rédacteur en chef : Jean-Denis Rondinet