Menu English Ukrainian Russe Accueil

Bibliothèque technique gratuite pour les amateurs et les professionnels Bibliothèque technique gratuite


ENCYCLOPÉDIE DE LA RADIOÉLECTRONIQUE ET DU GÉNIE ÉLECTRIQUE
Bibliothèque gratuite / Schémas des appareils radio-électroniques et électriques

Débogage de microcontrôleurs à l'aide d'un émulateur ROM. Encyclopédie de l'électronique radio et de l'électrotechnique

Bibliothèque technique gratuite

Encyclopédie de l'électronique radio et de l'électrotechnique / microcontrôleurs

Commentaires sur l'article Commentaires sur l'article

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] :

  • une forte interconnexion entre les parties logicielles et matérielles du système ;
  • le manque d'accès direct aux ressources internes et aux points de contrôle du MC ;
  • nature multi-bits des signaux, distribués de manière complexe dans le temps ;
  • non-périodicité ou très faible fréquence de répétition des signaux dans le système ;
  • une grande variété d'appareils externes et de protocoles pour échanger des informations avec eux.

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.

Débogage de microcontrôleurs à l'aide d'un émulateur ROM

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.

Débogage de microcontrôleurs à l'aide d'un émulateur ROM

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é.

Débogage de microcontrôleurs à l'aide d'un émulateur ROM

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

  1. Vydolob G., Kudryashov V., Samoilov V. Émulateur ROM/RAM RE020. - Radio, 1997. N° 11, S. 30-32.
  2. Zelenko GV, Ivannikov AD, Sypchuk PP Conception et débogage de systèmes à microprocesseurs. - M. Ingénierie. 1982.
  3. William G. B. Débogage des systèmes de microprocesseurs : Per. de l'anglais. - M Energoatomizdat. 1988

Auteurs : G.Vydolob, V.Samoylov, Moscou (Zelenograd)

Voir d'autres articles section microcontrôleurs.

Lire et écrire utile commentaires sur cet article.

<< Retour

Dernières nouvelles de la science et de la technologie, nouvelle électronique :

Machine pour éclaircir les fleurs dans les jardins 02.05.2024

Dans l'agriculture moderne, les progrès technologiques se développent visant à accroître l'efficacité des processus d'entretien des plantes. La machine innovante d'éclaircissage des fleurs Florix a été présentée en Italie, conçue pour optimiser la phase de récolte. Cet outil est équipé de bras mobiles, lui permettant de s'adapter facilement aux besoins du jardin. L'opérateur peut régler la vitesse des fils fins en les contrôlant depuis la cabine du tracteur à l'aide d'un joystick. Cette approche augmente considérablement l'efficacité du processus d'éclaircissage des fleurs, offrant la possibilité d'un ajustement individuel aux conditions spécifiques du jardin, ainsi qu'à la variété et au type de fruits qui y sont cultivés. Après avoir testé la machine Florix pendant deux ans sur différents types de fruits, les résultats ont été très encourageants. Des agriculteurs comme Filiberto Montanari, qui utilise une machine Florix depuis plusieurs années, ont signalé une réduction significative du temps et du travail nécessaires pour éclaircir les fleurs. ...>>

Microscope infrarouge avancé 02.05.2024

Les microscopes jouent un rôle important dans la recherche scientifique, car ils permettent aux scientifiques d’explorer des structures et des processus invisibles à l’œil nu. Cependant, diverses méthodes de microscopie ont leurs limites, parmi lesquelles la limitation de la résolution lors de l’utilisation de la gamme infrarouge. Mais les dernières réalisations des chercheurs japonais de l'Université de Tokyo ouvrent de nouvelles perspectives pour l'étude du micromonde. Des scientifiques de l'Université de Tokyo ont dévoilé un nouveau microscope qui va révolutionner les capacités de la microscopie infrarouge. Cet instrument avancé vous permet de voir les structures internes des bactéries vivantes avec une clarté étonnante à l’échelle nanométrique. En général, les microscopes à infrarouge moyen sont limités par leur faible résolution, mais le dernier développement des chercheurs japonais surmonte ces limitations. Selon les scientifiques, le microscope développé permet de créer des images avec une résolution allant jusqu'à 120 nanomètres, soit 30 fois supérieure à la résolution des microscopes traditionnels. ...>>

Piège à air pour insectes 01.05.2024

L'agriculture est l'un des secteurs clés de l'économie et la lutte antiparasitaire fait partie intégrante de ce processus. Une équipe de scientifiques du Conseil indien de recherche agricole et de l'Institut central de recherche sur la pomme de terre (ICAR-CPRI), à Shimla, a mis au point une solution innovante à ce problème : un piège à air pour insectes alimenté par le vent. Cet appareil comble les lacunes des méthodes traditionnelles de lutte antiparasitaire en fournissant des données en temps réel sur la population d'insectes. Le piège est entièrement alimenté par l’énergie éolienne, ce qui en fait une solution respectueuse de l’environnement qui ne nécessite aucune énergie. Sa conception unique permet la surveillance des insectes nuisibles et utiles, fournissant ainsi un aperçu complet de la population dans n'importe quelle zone agricole. "En évaluant les ravageurs cibles au bon moment, nous pouvons prendre les mesures nécessaires pour lutter à la fois contre les ravageurs et les maladies", explique Kapil. ...>>

Nouvelles aléatoires de l'Archive

Froid pour un chauffage rapide 19.02.2020

Le moyen le plus rapide de chauffer certains matériaux est de les refroidir d'abord. Cette idée est parallèle à l'effet Mpemba, où l'eau chaude gèle parfois plus vite que l'eau froide.

Pour réchauffer une part de pizza, il est peu probable que vous souhaitiez la refroidir d'abord, mais une étude théorique suggère que le refroidissement comme première étape avant le chauffage peut être le moyen le plus rapide de réchauffer certains matériaux.

Le concept est similaire à l'effet Mpemba, qui reste jusqu'à présent incompréhensible pour les scientifiques, car il est très difficile de reproduire l'effet de manière cohérente. La nouvelle étude est "une façon d'examiner des effets comme l'effet Mpemba sous un angle différent", explique le physicien Andrés Santos de l'Université d'Estrémadure à Badajoz, en Espagne, qui n'a pas participé à l'étude.

Les physiciens Amit Gal et Oren Raz de l'Institut Weizmann des sciences de Rehovot, en Israël, ont étudié un système théorique appelé le modèle d'Ising, une grille bidimensionnelle d'atomes dont les pôles magnétiques pointent vers le haut ou vers le bas. En particulier, ils ont considéré une variante du modèle d'Ising, dans laquelle des atomes voisins pointent leurs pôles dans des directions opposées. Ce comportement est appelé antiferromagnétique. Et ce système peut chauffer plus rapidement après la phase de pré-refroidissement.

Pour que le nouvel effet se manifeste, le système doit avoir une propriété correspondante, autre qu'une température uniforme, qui est affectée par le pré-refroidissement. Sinon, il n'y aurait aucune différence entre un système qui a été pré-refroidi et réchauffé et un système qui vient de se réchauffer.

Dans le cas du modèle antiferromagnétique d'Ising, les chercheurs ont considéré la propriété de l'aimantation globale créée par tous les atomes, ainsi que le nombre d'aimants pointant dans des directions opposées. Le refroidissement du matériau peut modifier la relation entre ces deux propriétés de sorte que le chauffage se produira ensuite beaucoup plus rapidement.

Autres nouvelles intéressantes :

▪ Cafetière Rapid Cold Brew pour boissons froides

▪ La cage recule

▪ La dépendance à Internet est cachée dans les gènes

▪ Le changement climatique rendra les voyages en avion moins confortables

▪ Le laser met des nanopoints

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 Pourquoi l'une des protéines de l'œil humain porte-t-elle le nom de Pikachu ? Réponse détaillée

▪ article Gérer la motivation interne des employés à se conformer aux exigences de protection du travail

▪ article Fer à souder électrique compact. Encyclopédie de l'électronique radio et de l'électrotechnique

▪ article Pièce sous le chapeau. Concentration secrète

Laissez votre commentaire sur cet article :

Nom:


E-mail (facultatif) :


commenter:





Toutes les langues de cette page

Page principale | bibliothèque | Articles | Plan du site | Avis sur le site

www.diagramme.com.ua

www.diagramme.com.ua
2000-2024