Bibliothèque technique gratuite ENCYCLOPÉDIE DE LA RADIOÉLECTRONIQUE ET DU GÉNIE ÉLECTRIQUE Débogage de microcontrôleurs à l'aide d'un émulateur ROM. Encyclopédie de l'électronique radio et de l'électrotechnique Encyclopédie de l'électronique radio et de l'électrotechnique / microcontrôleurs La complexité du développement et du débogage du programme de travail d'un dispositif électronique contenant un microprocesseur détermine souvent le coût de son développement dans son ensemble. Dans les microcontrôleurs (MC), qui ont une mémoire intégrée et certains périphériques, cela est particulièrement prononcé. L'un des outils qui facilitent grandement le débogage est l'émulateur de ROM décrit dans [1]. L'article proposé décrit la technologie de travail avec elle. Les capacités de débogage ne sont pas limitées aux méthodes décrites. Ce processus, ainsi que la conception en général, est dans une certaine mesure un art : pour le même instrument, chacun crée "sa propre musique". Nous serons reconnaissants aux lecteurs qui partageront leurs outils et méthodes originaux de débogage des programmes MK. La complexité et la pénibilité du processus de débogage du logiciel MC sont déterminées par les facteurs suivants [2] :
L'équipement de test traditionnel (tel qu'un oscilloscope) ne peut être utilisé que dans une mesure limitée pour déboguer le MCU. La méthode de débogage la plus simple (et en même temps la plus inefficace) est la « méthode d'essai et d'erreur » : charger le programme dans une mémoire morte reprogrammable (EPROM), essayer de l'exécuter, détecter et corriger les erreurs dans le programme et matériel, effacement de l'EPROM, rechargement du programme, etc.. e. Les processus d'effacement et d'écriture de données sur la puce EPROM prennent beaucoup de temps, et après un certain nombre de cycles de reprogrammation, cela échoue généralement. L'installation et le retrait répétés du microcircuit réduisent la fiabilité des contacts électriques dans la prise EPROM. La possibilité d'obtenir des informations de débogage sur le système est pratiquement absente. Actuellement, MK est le plus souvent débogué par des outils croisés basés sur un ordinateur personnel. Cela permet une distraction minimale des ressources MC. Le périphérique à déboguer, comme indiqué sur la figure, est connecté à l'ordinateur via un outil, tel qu'un émulateur ROM. Un tel complexe vous permet de télécharger et d'éditer le programme, d'y entrer des modules de test, d'obtenir certaines informations sur le système, et bien plus encore, dont nous parlerons ci-dessous. Bien que les émulateurs ROM ne soient pas le seul outil de débogage ni le plus puissant, ils sont toujours populaires. Leur "longévité" s'explique par l'indépendance par rapport au type de MC (seule la possibilité de travailler avec une mémoire de programme externe est nécessaire), le fonctionnement en temps réel, le faible prix et l'accessibilité à un large éventail de développeurs d'équipements et de radioamateurs. Nous considérerons la technologie de débogage d'un programme à l'aide d'un émulateur ROM en utilisant l'exemple de la famille MCS-51 de MK (8031, 8051, 80C31, 80C51. KR1816BE31, KR1816BE51, KR1830BE31, KR1830BE51, etc.). À partir du débogage, il est nécessaire de vérifier le fonctionnement du matériel du système et du MC lui-même. Pour cela, vous pouvez utiliser les tests de « comptage libre » [3]. qui consistent en l'énumération de toutes les combinaisons de codes possibles sur les lignes des ports MK. Lors des tests, les lignes de port seront mises à l'état de sortie, donc tout d'abord, assurez-vous, selon l'appareil en cours de débogage, qu'elles ne sont pas chargées sur les sorties d'autres éléments. Débranchez temporairement ces charges, le cas échéant. Chargez l'émulateur ROM avec les codes de commande No Operation (NOP) dans tout l'espace d'adressage des programmes MCU. Pour MCS-51, il s'agit du code 00H. Lors de l'exécution d'un tel "programme", le MK parcourt séquentiellement toutes les adresses de la mémoire programme. Surveillez les signaux de ALE, PME et des ports P0, P2 avec un oscilloscope. Les formes d'onde sur les lignes du port doivent correspondre aux chronogrammes du compteur binaire en tenant compte du multiplexage sur P0 de l'octet de poids faible de l'adresse et des données. Ensuite, vérifiez les ports P1 et P1 en chargeant le programme de test indiqué dans le tableau 00 dans l'émulateur ROM. 0. Il produit une séquence de codes de XNUMXH à XNUMXFFH sur les lignes des ports spécifiés, simulant un compteur binaire à huit bits. Si les oscillogrammes correspondent à ceux requis, restaurez les charges déconnectées des ports et procédez au débogage du programme de travail du MC. N'oubliez pas que vous déboguez simultanément le logiciel et le matériel du système et n'oubliez pas de surveiller périodiquement les signaux aux points de test avec l'oscilloscope. L'incohérence du type de signaux avec vos idées à leur sujet est un motif de réflexion sérieuse et de vérifications supplémentaires. Pour faciliter le développement et le débogage, il faut adhérer au principe modulaire de la programmation, c'est-à-dire diviser le programme MK en parties selon une caractéristique fonctionnelle. Cela vous permettra de déplacer facilement des modules individuels et, si nécessaire, de les appliquer à d'autres projets. Le module auquel le contrôle est transféré après la mise sous tension ou la réinitialisation du MK est appelé principal ou principal. Le transfert du contrôle au point d'entrée du programme doit être une commande de saut, et non un appel de sous-programme, afin de ne pas polluer la pile avec l'adresse de retour. Pour éviter des résultats de programme inattendus, n'oubliez pas d'attribuer une valeur initiale à chacune des variables avant de l'utiliser pour la première fois. Dans certains cas, vous devrez peut-être initialiser l'équipement périphérique. Le bloc d'initialisation est placé au début du module de programme principal. Une vue approximative du module principal du programme au début du débogage est présentée dans le tableau. 2. Il ne contient que le point d'entrée du programme et le gestionnaire de sortie. Bien qu'une telle sortie soit rarement utilisée dans les systèmes à microcontrôleur, elle doit être prévue pour l'arrêt correct des situations d'urgence. Dans l'exemple considéré, après la fin des travaux, le programme "boucle". Seul le redémarrage du système avec un signal de réinitialisation matérielle le fera sortir de cet état. Pendant le débogage, d'autres modules de programme sont ajoutés au module principal dès qu'ils sont prêts. L'ordre de leur connexion et de leur débogage joue un rôle important. Vous devez commencer par les pilotes des périphériques de sortie d'informations (affichage, convertisseur numérique-analogique, etc.), en plaçant leurs appels dans le module principal. Ensuite, ils déboguent les pilotes d'autres périphériques, les routines de traitement de données, et seulement après cela, ils vérifient le fonctionnement conjoint de tous les modules de programme. S'il y a un affichage alphanumérique, son pilote est d'abord débogué et utilisé ensuite pour afficher des informations de débogage, par exemple, le contenu de la mémoire de données interne du MK. Si un tel émulateur ROM est utilisé pour que les informations qu'il contient puissent être écrites et lues à la fois par l'ordinateur de contrôle et l'appareil en cours de débogage, le MK peut placer les données de débogage dans la zone de mémoire libre de l'émulateur ROM, et le l'ordinateur de contrôle les lit et les affiche sur son écran. Par exemple, pour sortir le contenu de la RAM de données interne du MCU, connectez sa sortie de signal d'écriture de mémoire de données externe (WR) à l'entrée de signal d'écriture de l'émulateur ROM et utilisez le sous-programme indiqué dans le tableau 3. 32. On suppose que la quantité de mémoire programme de l'appareil en cours de débogage ne dépasse pas 8000 Ko, de sorte que les informations de débogage placées dans la mémoire de l'émulateur commencent à l'adresse 0H. Le contenu des registres R1 et R8000 est envoyé séparément, puisqu'il est ensuite utilisé dans le sous-programme pour organiser la boucle. Une fois les informations de débogage sorties, le programme MK est suspendu, le contenu des cellules de mémoire de l'émulateur ROM 807H-XNUMXFH est lu par l'ordinateur de contrôle, affiché et analysé. De même, le contenu de tous les registres MC accessibles par programme peut être affiché. Lorsque vous commencez à déboguer un pilote de périphérique, désactivez temporairement les signaux de contrôle générés par le MK à partir de celui-ci afin d'éviter une éventuelle défaillance du périphérique due à des erreurs dans le programme. Si le processus est de nature ponctuelle, "bouclez-le" et programmez le signal d'horloge de l'oscilloscope si nécessaire. Déboguez le pilote en surveillant les signaux générés par l'oscilloscope. Après vous être assuré que les chronogrammes des signaux de commande correspondent à ceux requis, connectez le périphérique et continuez à déboguer le pilote sur du matériel réel. Enfin, supprimez les éléments de débogage du module de programme et vérifiez son fonctionnement dans la forme finale. L'utilisation de ressources MK partagées par différents modules conduit assez souvent au fait que le programme débogué cesse de fonctionner lorsqu'un autre sous-programme est ajouté.Par conséquent, après le débogage du module suivant, assurez-vous que tous les pilotes et sous-programmes précédemment débogués continuent de fonctionner correctement. Si votre programme utilise des interruptions, ne les désactivez que si cela est absolument nécessaire. Un module débogué ne doit pas être supprimé du programme, même s'il n'est pas actuellement nécessaire. Lorsque le MK "se fige", la méthode de localisation d'erreur suivante est utile : entrez des points de contrôle dans le programme qui affichent des nombres croissants de manière séquentielle. Après avoir "raccroché", l'écran affichera le numéro correspondant au dernier point de contrôle passé avec succès. Si plusieurs de ces points sont capturés dans une boucle infinie, les nombres affichés changeront rapidement. Afin de déterminer exactement quels points sont dans le cycle, vous devrez ralentir artificiellement le changement de nombres en définissant un retard de programme lors de la sortie de chacun d'eux, par exemple, sous la forme d'un cycle inactif. Si le système en cours de débogage ne dispose pas d'un écran intégré, des informations peuvent être affichées sur l'écran de l'ordinateur hôte via la zone de mémoire libre de l'émulateur ROM. Après avoir débogué tous les pilotes de périphérique, commencez à déboguer les autres sous-routines. Si l'un d'entre eux met en œuvre un algorithme complexe de traitement ou de conversion de données, l'affichage d'une ou plusieurs valeurs intermédiaires de variables ne fournit souvent pas d'informations suffisantes pour l'analyse des erreurs.Surmonter les difficultés et écrire des informations de débogage de la quantité requise dans la zone de mémoire libre de l'émulateur ROM aidera à surmonter les difficultés. Après avoir atteint le fonctionnement normal de tous les modules de programme, vous pouvez les déboguer ensemble. Les difficultés qui surgissent dans ce cas sont divisées en deux groupes. Le premier comprend les problèmes de partage des ressources MK communes : unité logique arithmétique, mémoire de données, ports d'entrée-sortie. La seconde est liée au fonctionnement des dispositifs à microcontrôleur en temps réel. Les systèmes en temps réel sont généralement multi-thread. Plusieurs tâches de programme (threads) sont exécutées en parallèle, interagissent les unes avec les autres et utilisent des ressources communes. Mais à chaque instant, le MC, de par sa structure, ne résout qu'un seul d'entre eux, passant aux autres à tour de rôle, en tenant compte de la priorité. Les conflits entre les tâches surviennent à la fois par manque de ressources et par manque de temps pour le traitement des données. Par conséquent, faites particulièrement attention aux ressources MK utilisées dans les modules de programme, contrôlez souvent le changement de leur état en affichant des informations de débogage. Essayez de réduire le nombre de variables globales, en les remplaçant par des variables locales chaque fois que possible. Surveillez l'état de la pile. Estimez le temps d'exécution des sections critiques du programme, vérifiez le système avec différentes valeurs de signaux d'entrée possibles dans la pratique. À l'aide de l'émulateur ROM, vous pouvez également déboguer un programme conçu pour fonctionner dans la mémoire interne du MK, si vous le placez temporairement dans la mémoire de programme externe. Étant donné que dans ce cas, les ports P0 et P2 seront occupés par la maintenance de la mémoire externe, alors si les lignes d'E / S libres restantes du MK ne suffisent pas, P0 et P2 sont remplacés par des ports d'E / S adressés en tant que cellules de mémoire de données externes. Ils sont connectés selon des schémas standard, en utilisant des registres de déclenchement pour augmenter le nombre de lignes de sortie et le nombre de lignes d'entrée - éléments à trois états de sortie. Après avoir débogué le système à l'aide de l'émulateur, supprimez-en les éléments de débogage, écrivez le programme dans la ROM (ou dans la mémoire de programme interne du MK) et vérifiez le fonctionnement de l'appareil dans sa forme finale. littérature
Auteurs : G.Vydolob, V.Samoylov, Moscou (Zelenograd) Voir d'autres articles section microcontrôleurs. Lire et écrire utile commentaires sur cet article. Dernières nouvelles de la science et de la technologie, nouvelle électronique : Machine pour éclaircir les fleurs dans les jardins
02.05.2024 Microscope infrarouge avancé
02.05.2024 Piège à air pour insectes
01.05.2024
Autres nouvelles intéressantes : ▪ Cafetière Rapid Cold Brew pour boissons froides ▪ La dépendance à Internet est cachée dans les gènes ▪ Le changement climatique rendra les voyages en avion moins confortables Fil d'actualité de la science et de la technologie, nouvelle électronique
Matériaux intéressants de la bibliothèque technique gratuite : ▪ section du site Voiture. Sélection d'articles ▪ article Tout ce jazz. Expression populaire ▪ article Pièce sous le chapeau. Concentration secrète
Laissez votre commentaire sur cet article : Toutes les langues de cette page Page principale | bibliothèque | Articles | Plan du site | Avis sur le site www.diagramme.com.ua |