This page has been robot translated, sorry for typos if any. Original content here.

Outils de développement et de débogage pour les microcontrôleurs à puce unique

Les principaux outils de débogage incluent:

  • émulateurs en circuit.
  • simulateurs de logiciels.
  • frais de développement (frais estimés).
  • déboguer les moniteurs.
  • Émulateurs ROM.

Cette liste n'épuise pas tous les types d'outils de débogage existants. En plus de cela, il existe également des dispositifs combinés et des kits qui vous permettent de compenser les lacunes des immobilisations prises séparément.

Emulateurs en circuit.

Un émulateur en circuit est un logiciel et un matériel capable de remplacer le processeur émulé dans un circuit réel. L'émulateur intégré est l'outil de débogage le plus puissant et le plus universel.

En fait, un "bon" émulateur de circuit rend le processus de fonctionnement du contrôleur débogué transparent, c'est-à-dire facilement contrôlé, arbitrairement contrôlé et modifiable à la demande du développeur.

Sur le plan fonctionnel, les émulateurs intégrés au circuit sont divisés en deux systèmes pouvant être connectés à une machine informatique externe (généralement un PC IBM) et fonctionnant de manière autonome. Les émulateurs intégrés au circuit ont des ressources de calcul individuelles, les moyens d’entrée-sortie ne nécessitant pas de calcul avec des moyens de calcul externes pour leur travail normal, mais l’utilisateur doit payer soit un prix nettement plus élevé, soit une fonctionnalité et des capacités de service réduites par rapport à des solutions similaires. modèles amarrés au PC IBM.

Habituellement, l’amarrage de l’émulateur en circuit avec le système en cours de débogage est effectué à l’aide d’un câble d’émulation avec une tête d’émulation spéciale. La tête d'émulation est insérée à la place du microcontrôleur dans le système en cours de débogage. Si le microcontrôleur ne peut pas être supprimé du système en cours de débogage, l'utilisation de l'émulateur n'est possible que si ce microcontrôleur dispose d'un mode de débogage dans lequel toutes ses sorties se trouvent dans le troisième état. Dans ce cas, un adaptateur de clips spécial est utilisé pour connecter l'émulateur, qui est directement connecté aux broches du microcontrôleur émulé.

Au minimum, l'émulateur contient les blocs fonctionnels suivants:

  • débogueur
  • nœud d'émulation de microcontrôleur;
  • mémoire d'émulation;
  • sous-système de points d'arrêt;

Les modèles plus avancés peuvent en outre contenir:

  • processeur de point d'arrêt;
  • traceur;
  • profileur (analyseur d'efficacité du code logiciel);
  • minuterie en temps réel;
  • logiciel et matériel permettant de lire et de modifier les ressources du processeur émulé "à la volée", c.-à-d. pendant l'exécution du programme utilisateur en temps réel;
  • outils logiciels et matériels fournissant le contrôle synchrone nécessaire à l'émulation dans les systèmes multiprocesseurs;
  • environnement de développement intégré

Débogueur

Le débogueur est une sorte de pont entre le développeur et l’outil de débogage. La composition et le volume des informations passant par les moyens d’entrée-sortie, leur disponibilité pour la perception, le contrôle et, le cas échéant, pour la correction et la modification, dépendent directement des propriétés et de la qualité du débogueur.

Un bon débogueur vous permet de:

  • chargez le programme en cours de débogage dans la mémoire système.
  • transmet au moniteur l'état et le contenu de tous les registres et de la mémoire et, si nécessaire, leur modification.
  • gestion du processus d'émulation.

Des débogueurs plus puissants, généralement appelés débogueurs de haut niveau, vous permettent également de:

  • pour effectuer un débogage symbolique, car le débogueur "connaît" les adresses de toutes les variables symboliques, tableaux et structures (en raison de l'utilisation d'informations spéciales fournies par le compilateur). En même temps, l'utilisateur peut utiliser des noms symboliques plus acceptables pour une personne, sans se soucier de mémoriser leurs adresses.
  • contrôler et analyser non seulement le texte désassemblé, mais également le texte source d'un programme écrit dans un langage de haut niveau, et même avec ses propres commentaires.

Un tel débogueur permet à l'utilisateur de surveiller simultanément la progression du programme et de voir la correspondance entre le texte source, l'image du programme dans les codes de la machine et l'état de toutes les ressources du microcontrôleur émulé.

Il convient de noter que le débogueur de haut niveau garantit que toutes ses fonctions ne sont remplies que si un compilateur croisé fournit des informations de débogage complètes et correctes (tous les compilateurs, en particulier leurs versions piratées, ne fournissent ces informations) et le format de présentation doit être " signer "débogueur.

Mémoire d'émulation

La présence de la mémoire d’émulation permet de l’utiliser dans le processus de débogage à la place de la ROM du système en cours de débogage, mais aussi de déboguer le programme sans utiliser de système réel ni sa structure. S'il est nécessaire d'apporter des modifications au programme en cours de débogage, il suffit de charger un programme nouveau ou modifié dans la mémoire de l'émulateur, au lieu de reprogrammer la ROM. Il existe des modèles d’émulateurs, qui permettent à l’utilisateur de «substituer» au lieu de la mémoire d’émulation ROM non seulement entièrement, mais bloc par bloc (dans certains modèles, la taille de bloc minimale peut atteindre un octet), dans l’ordre spécifié par l’utilisateur. Pour ce faire, il suffit à l'utilisateur de définir la répartition de la mémoire de données et de la mémoire de programme, selon laquelle le processeur accédera à la fois au contenu de la ROM du système en cours de débogage et au contenu de la mémoire d'émulation de l'émulateur en circuit. Une telle mémoire est généralement appelée mémoire avec possibilité de mappage.

Traceur

Essentiellement, le traceur est un analyseur logique qui fonctionne de manière synchrone avec le processeur et capture le flux d’instructions en cours d’exécution et l’état des signaux externes sélectionnés. Il existe des modèles d'émulateurs en circuit qui permettent de tracer non seulement les signaux externes, mais également l'état des ressources internes du microcontrôleur, par exemple les registres. De tels émulateurs utilisent des versions spéciales de microcontrôleurs (cristaux d'émulation).

Processeur de point d'arrêt

Le processeur de points d'arrêt vous permet d'arrêter l'exécution du programme ou d'effectuer d'autres actions, telles que le démarrage ou l'arrêt du traceur, lorsque les conditions définies par l'utilisateur sont remplies. À la différence du mécanisme des points d'arrêt habituels, le processeur de points d'arrêt permet de former et de suivre des conditions de presque n'importe quel degré de complexité, et en même temps, le processus émulé n'est pas dérivé de l'échelle en temps réel.

Profiler

Le profileur (sinon, un analyseur d'efficacité du code) vous permet d'obtenir les informations suivantes à partir des résultats du programme en cours de débogage:

  • le nombre d'appels aux différentes parties du programme;
  • le temps consacré à la mise en œuvre des différentes parties du programme.

L'analyse des informations statistiques fournies par le profileur permet d'identifier facilement les sections «mortes» ou surchargées des programmes et d'optimiser ainsi la structure du programme en cours de débogage.

Environnement de développement intégré

Ensemble d'outils logiciels prenant en charge toutes les étapes du développement logiciel, de l'écriture du code source d'un programme à sa compilation et à son débogage, en passant par une interaction simple et rapide avec d'autres outils (simulateur et programmateur de débogueur de logiciel).

La présence dans l'éditeur de programme de l'éditeur intégré de l'émulateur, du gestionnaire de projet intégré et du système de gestion peut considérablement faciliter le travail du développeur, ce qui lui évite de nombreuses actions de routine. Pour le développeur, la ligne entre l’écriture du programme, son édition et le débogage est effacée. La transition de l’édition du code source vers le débogage et le retour est "transparente" et synchrone avec l’activation des fenêtres correspondantes, le chef de projet lance automatiquement la compilation selon les besoins et active les fenêtres correspondantes de l’interface du programme.

La transition vers le débogage d'un projet à l'aide d'un débogueur de simulateur existant est également tout aussi simple, ou passez au «firmware» de la ROM avec un programme débogué.

Certains modèles d'émulateurs en circuit peuvent offrir aux utilisateurs d'autres fonctionnalités supplémentaires. Parmi ceux-ci, nous en notons un, bien que spécifique, mais dans certains cas d'une importance fondamentale: la possibilité de construire des complexes multi-émulateurs nécessaires au débogage de systèmes multiprocesseurs. Une caractéristique distinctive d'un tel complexe est la possibilité de contrôler de manière synchrone (à partir d'un ordinateur) plusieurs émulateurs.

En général, divers modèles d'émulateurs en circuit peuvent fournir à l'utilisateur la possibilité de contrôler et de contrôler le fonctionnement des périphériques mis au point, avec toutes sortes de restrictions. Par exemple, il peut s'agir d'une gestion incorrecte des interruptions en mode incrémental, d'une interdiction d'utilisation d'un port série, etc. Il est également nécessaire de se rappeler que chaque modèle réel de l'émulateur possède son propre ensemble de compilateurs pris en charge. Certains fabricants d’émulateurs vont délibérément limiter le nombre de compilateurs pris en charge, ce qui est d’abord typique des fabricants occidentaux. Dans ces cas, l'émulateur ne peut utiliser qu'un seul format de caractère.

Les possibilités de l'émulateur "réel" en circuit, illustrons l'exemple du modèle PICE-51.

PICE-51

Emulateur en circuit de la famille de microcontrôleurs à 8 bits 8051

PICE-51 est un émulateur de nouvelle génération créé à l'aide de nouvelles technologies de développement matériel et logiciel.

L'utilisation de matrices haute capacité programmables a considérablement réduit la taille de l'émulateur sans endommager ses fonctionnalités, minimisant ainsi les écarts des caractéristiques électriques et de fréquence de l'émulateur par rapport aux caractéristiques du processeur émulé, permettant ainsi d'obtenir une précision d'émulation maximale à des fréquences allant jusqu'à 30 MHz à des tensions d'alimentation de 3,3 V à 5V.

La structure matérielle rechargeable de l'émulateur permet d'émuler pratiquement tous les microcontrôleurs de la famille 8051, de production nationale ou d'entreprises: Intel, Philips, Siemens, Atmel, Dallas, Temic, OKI, AMD, MHS , etc.

Une interface logicielle puissante dans l’environnement Windows est un environnement de développement intégré qui prend en charge toutes les étapes du développement logiciel, de l’écriture du code source d’un programme à sa compilation et son débogage. Le programme de support de l'émulateur est axé sur le débogage de programmes dans un langage évolué utilisant le code source .

L'émulateur est constitué d'une carte principale de 80 x 76 mm, d'un adaptateur amovible pour un processeur spécifique et d'une tête d'émulation amovible pour un type de boîtier spécifique. Sur la carte principale sont implémentés: traceur, processeur de point d'arrêt . La carte d’adaptateur plug-in contient un processeur d’émulation pour un type spécifique de microcontrôleur. Les têtes d'émulation permettent l'installation de l'émulateur dans les pads DIP et PLCC de la carte de l'utilisateur. L'émulateur est alimenté par l'alimentation +5 V, 0,5 A ou directement par le périphérique en cours de débogage. La communication avec un ordinateur s'effectue via un canal RS-232C isolé galvaniquement à une vitesse de 115 Kbauds.

CARACTÉRISTIQUES DE L'ÉQUIPEMENT

  • Émulation précise - aucune restriction sur l'utilisation des ressources du microcontrôleur par le programme utilisateur.
  • Mémoire programme et données émulées jusqu’à 256K. Prise en charge du modèle de mémoire bancaire. La répartition de la mémoire entre l'émulateur et le périphérique utilisateur avec une précision de 1 octet.
  • Jusqu'à 512K points d'arrêt matériels pour accéder à la mémoire programme et aux données.
  • Prise en charge matérielle des programmes de débogage dans les langages de haut niveau.
  • Trace 8 signaux externes arbitraires.
  • 4 sorties de l'équipement utilisateur de synchronisation.
  • Traceur en temps réel avec mémoire tampon de 16 Ko à 64 000 images de 64 bits chacune avec accès à la volée. Adresse de traçage, données, signaux de contrôle, minuterie en temps réel et 8 signaux d’utilisateur externes.
  • Filtre de trace programmable.
  • Processeur matériel de points d'arrêt avec la possibilité de définir une condition complexe pour arrêter l'émulation en combinant adresse, données, contrôle, 8 signaux externes, temporisateur en temps réel, compteurs d'événements et temporisateur.
  • Quatre points de rupture complexes pouvant être utilisés indépendamment ou en combinaison selon les conditions ET / OU / IF-THEN.
  • Minuterie en temps réel 48 bits.
  • Émulation transparente - accès à la volée à la mémoire émulée, aux points d'arrêt, au processeur de points d'arrêt, à la mémoire tampon de trace et au temporisateur en temps réel.
  • Générateur de fréquence d'horloge géré pour le processeur émulé. La possibilité de changer en douceur la fréquence d'horloge de 500 kHz à 40 MHz.
  • Canal de communication RS-232C isolé galvaniquement d'un ordinateur avec un taux de change de 115 kbauds.
  • Émulateur intégré d’autodiagnostic.

SPÉCIFICATIONS DU LOGICIEL

  • Le logiciel est axé sur le travail dans l'environnement Windows sur des ordinateurs compatibles IBM dotés de processeurs de type 386/486 / Pentium;
  • L' éditeur intégré multi - fenêtres est conçu pour l'écriture de programmes sources. L'éditeur prend en charge les opérations sur les blocs de texte, la recherche / remplacement, la coloration colorée des constructions de syntaxe du langage d'assemblage et de C;
  • Le gestionnaire de projet intégré assure la compilation automatique des programmes. Toutes les options sont définies dans le formulaire de dialogue. La transition entre l’édition du texte source, le débogage et le retour est "transparente", c’est-à-dire le chef de projet commence automatiquement à compiler le projet si nécessaire;
  • PICE-51 fournit un débogage symbolique et un débogage au niveau source pour les programmes créés à l'aide des compilateurs suivants:
    • Assembleur Intel ASM51 ;
    • Assembleur MCA-51 de Fiton / MicroCosm ;
    • Compilateur PL / M d' Intel ;
    • assembleur et compilateur C par IAR Systems ;
    • Assembleur et compilateur C par Avocet Systems Inc./HiTech ;
    • assembleur et compilateur C de Keil Software Inc. ;
  • Enregistrement et chargement automatiques des fichiers de configuration matérielle, des options d'interface et de débogage. Les fichiers de configuration sont compatibles avec le simulateur PDS-51. Portabilité du projet entre l'émulateur PICE-51 et le simulateur PDS-51;
  • Possibilité de personnaliser les couleurs, les polices et autres paramètres pour toutes les fenêtres simultanément et pour chaque fenêtre séparément;

L'émulateur est fourni avec un manuel d'utilisation imprimé et un manuel électronique contextuel , décrivant en détail ses principes de fonctionnement, ses commandes, ses menus et ses touches de raccourci.

Schéma fonctionnel de l'émulateur PICE-51

Options pour compléter l'émulateur PICE-51

Microcontrôleur émulé Emulation de la mémoire interne du programme Set de livraison
Conseil principal Adaptateur remplaçable Tête d'émulation
Intel : 80C31 / 32, 80C51 / 52, 80L / C51FA, 80C51RA;
Philips : 8031/32, 80C51 / 52, 80C51FA; 80C51RA +, 80CL410, 80C524 / 528/550/652/654/575/576/851;
Atmel : 89C51, 89C52, 89C55, 89S8252, 89S53;
Siemens : SAB501 / 502/504/505/511/513;
MHS : 80C31, 80C51, 80C32, 80C52, 80C154;
Oki: 80C31, 80C51, 80C154;
AMD: 80C31, 80C51, 80C52;
Non PICE-51 POD-51-31 ADP-51-DIP40 ou ADP-51-LCC44
Intel : 80C31 / 32, 8XC51 / 52/54/58, 8XL / C51FA / FB / FC, 8XC51RA / RB / RC;
Philips : 8031/32, 8XC51 / 52/54/58, 8XC51FA / FB / FC; 8XC51RA + / RB + / RC + / RD +, 8XC524 / 528/550/652/654/575/576/851; 89C535 / 536/538;
Atmel : 89C51, 89C52, 89C55; Siemens SAB501;
MHS : 80C31, 8XC51, 80C32, 8XC52, 8XC154;
Oki : 80C31, 8XC51, 8XC154; AMD: 80C31, 8XC51, 8XC52;
64K PICE-51 POD-51-RX ADP-51-DIP40 ou ADP-51-LCC44
Atmel : 89C4051, 89C2051, 89C1051; 4K PICE-51 POD-51-31 ou POD-51-RX ADP-51-2051
Philips : 80C451, 80C453; 87C451, 87C453 64K PICE-51 POD-51-453 ADP-51-LCC68
Philips : 80C552, 80C562; 80C554
Philips : 80C552, 80C562; 80C554, 87C552, 87C562, 87C554
Non
64K
PICE-51
PICE-51
POD-51-552
POD-51-554
ADP-51-LCC68
ADP-51-LCC68
Intel : 80C51GB Non PICE-51 POD-51-GB ADP-51-LCC68
Dallas : DS80C310, DS80C320, DS8XC520 64K PICE-51 POD-51-DS530 ADP-51-DIP40 ou ADP-51-LCC44
Dallas : DS8XC530 64K PICE-51 POD-51-DS530 ADP-51-DS530

Caractéristiques comparatives de certains émulateurs de la famille des microcontrôleurs 8051

Modèle, fournisseur EMUL-51 Nohau Corporation Systèmes USP-51 Signum iceMASTER-8051 MetaLink PICE-5 Fiton1
8051 microcontrôleurs émulés Toutes les espèces connues Toutes les principales variétés Toutes les principales variétés Toutes les principales variétés
Taux d'émulation maximum 42 MHz 40 MHz 24 MHz 33 MHz
Mémoire maximale émulée 320K 256K 128K 512K
La possibilité de redistribution de la mémoire entre l'émulateur et le périphérique de l'utilisateur Blocs 4K Blocs de 256 octets Blocs de 16 octets Précis au 1er octet
Tampon de trace Cadres jusqu'à 16K 48 bits Jusqu'à 32K images de 80 bits Jusqu'à 4K images 48bit Jusqu'à 64 000 images par 64 bits
Accès à la volée à la mémoire émulée et au traceur Oui Oui Oui Oui
Interface informatique Fente pour carte ISA RS-232C, jusqu'à 115 Kbaude RS-232C, jusqu'à 115 Kbaude RS-232C isolé, jusqu'à 115 Kbaude
Design et dimensions Deux cartes au format ISA, câbles de 2 mètres, POD Boîtier 260x260x64 mm, câble, POD Boîtier 178x140x25 mm, câble, POD L'ensemble de l'émulateur est dans la tête d'émulation taille 80x76x50 mm
Prix ​​pour une configuration de livraison comparable: supporte 80С51, 25 MHz, 128K RAM, tampon de trace avec un volume de 16K trames 5200 $ (liste de prix Nohau) 5300 $ (liste de prix Signum) 4000 $ (liste de prix MetaLink) 990 $

Des informations plus complètes, ainsi qu'une version démo de l'émulateur, sont présentées sur le site Web: http://www.phyton.ru

Bien entendu, une telle gamme de fonctionnalités fait des émulateurs de circuit le plus puissant et le plus polyvalent des outils de débogage.

Simulateurs

Un simulateur est un outil logiciel capable de simuler le fonctionnement d'un microcontrôleur et de sa mémoire. En règle générale, le simulateur contient:

  • débogueur;
  • Modèle de processeur et de mémoire.

Des simulateurs plus avancés contiennent des modèles de périphériques intégrés, tels que des minuteries, des ports, des CAN et des systèmes d'interruption.

Le simulateur doit pouvoir télécharger les fichiers de programme dans tous les formats courants, afficher le plus complètement possible les informations sur l'état des ressources du microcontrôleur simulé, et également permettre de simuler l'exécution du programme chargé dans différents modes. En cours de débogage, le modèle "exécute" le programme et son état actuel est affiché sur l'écran de l'ordinateur.

Après avoir chargé le programme dans le simulateur, l’utilisateur a la possibilité de l’exécuter en mode pas à pas ou en mode continu, de définir des points de rupture conditionnels ou inconditionnels, de contrôler et de modifier librement le contenu des cellules de mémoire et les registres du microprocesseur simulé. Avec l'aide du simulateur, vous pouvez rapidement vérifier la logique du programme, l'exactitude des opérations arithmétiques.

Selon la classe de débogueur utilisée, divers simulateurs peuvent prendre en charge le débogage symbolique de haut niveau des programmes.

Certains modèles de simulateurs peuvent contenir un certain nombre de logiciels supplémentaires, tels que par exemple: une interface d'environnement externe, un environnement de développement intégré intégré.

Dans un système réel, un microcontrôleur est généralement engagé dans la lecture d'informations provenant de périphériques externes connectés (capteurs), dans le traitement de ces informations et dans l'émission d'actions de contrôle pour les actionneurs. Pour simuler le fonctionnement d'un capteur dans un simulateur ne disposant pas d'interface externe, vous devez modifier manuellement l'état actuel du modèle du périphérique auquel le capteur est connecté dans un système réel. Si, par exemple, lors de la réception d'un octet via le port série, un certain drapeau est armé et que l'octet lui-même tombe dans un registre spécifique, ces deux actions doivent alors être effectuées manuellement dans un tel simulateur. La présence de l'interface de l'environnement externe permet à l'utilisateur de créer et d'utiliser de manière flexible le modèle de l'environnement externe du microcontrôleur, qui fonctionne et interagit avec le programme en cours de débogage selon un algorithme donné. Les possibilités du "vrai" simulateur de débogueur seront illustrées à l'aide de l'exemple du modèle PDS-PIC.

PDS-PIC

Un simulateur de débogueur pour développer et déboguer des programmes basés sur les microcontrôleurs PIC16 / PIC17.

PDS-PIC est un outil pratique et flexible pour l'écriture et le débogage de programmes axés sur les microcontrôleurs PICmicro Microchip.

Le simulateur a:

  • Éditeur multi-fenêtre intégré pour l'écriture de programmes sources. L'éditeur prend en charge les opérations sur les blocs de texte, la recherche / remplacement, la coloration colorée des constructions de syntaxe du langage d'assemblage;
  • Chef de projet intégré prenant en charge la compilation automatique de programmes écrits pour le macro-assembleur PASM-PIC de la société Fiton et pour le macro-assembleur MPASM de la société Microchip.
  • Toutes les options de l'assembleur sont définies sous la forme de boîtes de dialogue pratiques. La transition entre l’édition du texte source, le débogage et le retour est "transparente", c’est-à-dire le chef de projet démarre automatiquement l'assembleur si nécessaire;
  • Fonctions de débogage étendues: suivi de l’exécution du programme par son texte source, affichage et modification des valeurs de toute variable, analyseur d’efficacité intégré du code du programme, points de rupture par condition et accès aux cellules mémoire, affichage de la pile d’appels de sous-programme, assembleur intégré beaucoup plus
  • Possibilité d'effectuer le programme "retour" sur un grand nombre d'étapes, ainsi qu'en mode continu. Dans ce cas, l'état du modèle de microcontrôleur est entièrement restauré;
  • Le modèle exact du comportement des microcontrôleurs. Simule le fonctionnement de tous les périphériques intégrés au microcontrôleur: minuteries, CAN, système d’interruption, ports, etc.
  • Développé des outils pour modéliser "l'environnement externe", c'est-à-dire périphériques connectés au microcontrôleur. Il est facile de définir divers signaux externes périodiques et non périodiques sur les pattes du microcontrôleur, afin de simuler le fonctionnement de la logique externe. À l'aide des outils d'affichage graphique intégrés, vous pouvez afficher visuellement divers indicateurs, créer des graphiques, simuler un clavier.
  • Le système enregistre les fenêtres de configuration et les paramètres. Vous pouvez enregistrer et restaurer un nombre illimité de fichiers de configuration.
  • Possibilité de personnaliser les couleurs, les polices et d’autres paramètres pour toutes les fenêtres simultanément et séparément pour chaque fenêtre;
  • Système d'aide contextuelle. Dans n'importe quel menu, fenêtre ou boîte de dialogue, vous pouvez obtenir de l'aide relative à ce menu, cette fenêtre ou cette boîte de dialogue.
  • PDS-PIC fonctionne dans l'environnement Windows.

Plus en détail, les fonctionnalités du simulateur sont présentées dans le tableau compilé à partir des résultats d'une analyse comparative de deux simulateurs: les sociétés MPlabSIM Microchip et les sociétés PDS-PIC Fiton. Les principales caractéristiques et différences de MPlabSIM et de PDS-PIC sont dues au fait que, lors de leur conception, des interfaces utilisateur et des environnements de simulation conceptuellement différents ont été utilisés.

MPlabSIM PDS-PIC
Management *
la souris
système de menu
touches de raccourci
à travers le modèle d'environnement
ouais
ouais
ouais
non
ouais
ouais
ouais
ouais
Points d'arrêt
à l'adresse du code exécutable
par le contenu du registre
lors du changement de la valeur de l'expression
sous condition logique
ouais
ouais
non
non
ouais
ouais
ouais
ouais
Événements simulés
synchrone
asynchrone
résolution temporelle
ouais
non
4 cycles de commande
Oui
Oui
1 cycle de commandes
Ressources du processeur
Réinitialiser
Interruption
Minuterie0
Minuterie1
Minuterie2
CCP1
CCP2
PWM1 / 2
PSP
Ssp
I2C
SCI (USART)
Eeprom
ADC
Des comparateurs
Vref
Générateur RC
Module ADC
pas de retard sur
complètement
seulement synchrone
seulement synchrone
complètement
complètement
complètement
sans haute résolution
seulement synchrone
complètement
enregistre seulement
retards
sans séquence de sécurité
seulement les délais et les registres
enregistre seulement
enregistre seulement
constante de fréquence
seulement des retards
Entièrement
Entièrement
synchrone / asynchrone
synchrone / asynchrone
Entièrement
complètement
complètement
complètement
synchrone / asynchrone
seulement les registres et les drapeaux d'interruption
enregistre seulement
enregistre seulement
complètement
complètement
complètement
complètement
la fréquence est réglée indépendamment de la fréquence d'horloge
registres pour entrées analogiques
Simulation d'influences externes
réglage des points de consigne du port d'entrée / sortie
écriture directe dans les registres
effets cycliques
effets asynchrones
description (réglage des effets) de l'environnement par algorithme
signaux analogiques externes
synchrone uniquement (en fonction du numéro de cycle de commande)
ouais
ouais
la relation entre l'entrée et le bouton dans la boîte de dialogue correspondante
non
non
synchrone / asynchrone
ouais
ouais
ouais
ouais
ouais
Caractéristiques supplémentaires
revenir en arrière (trace)
analyseur de performance de code de programme (profileur)
processus d'affichage graphique
Vitesse **
non

non


non

400 équipes / sec
ouais

ouais


ouais

100 000 équipes / sec

* MPlabSIM utilise le menu comme entrée complémentaire par ligne des commandes de contrôle pour le processus de simulation, avec la possibilité de mémoriser et d'exécuter des séquences de commandes linéaires. Par exemple, pour modifier le contenu du registre, vous devez procéder comme suit:

- sélectionnez la section "WINDOWS" dans le menu - sélectionnez l'option "MODIFIER" dans le sous-menu - sélectionnez "quoi" (EMPILAGE, DONNEES ou CODE) (dans ce cas, "DONNEES") sera modifié - spécifiez l'adresse - entrez la nouvelle valeur - confirmez la saisie Dans le fichier de vidage du fichier de registre, vous verrez le résultat du changement, mais vous ne pouvez rien modifier dans la fenêtre elle-même (le menu est uniquement un analogue de la ligne de commande).

En utilisant le PDS-PIC, vous pouvez modifier la valeur du registre en appuyant sur deux touches. Il est tout aussi facile d'effectuer toutes les autres actions pour déboguer le programme.

** En utilisant l'exemple du paquet MPLAB-sim pour 16c54, lorsqu'il est exécuté sur la configuration P90 / 16RAM recommandée par MICROCHIP.

Une caractéristique évidente des simulateurs logiciels est le fait que l'exécution des programmes chargés dans le simulateur a lieu à une échelle de temps différente de celle réelle. Cependant, le faible coût, la possibilité de déboguer même en l’absence de disposition de périphérique débogué, fait des simulateurs de logiciels un outil de débogage très efficace. Séparément, il faut souligner qu’il existe toute une classe d’erreurs qui ne peuvent être détectées qu’à l’aide d’un simulateur.

Moniteurs de débogage

Le moniteur de débogage est un programme spécial chargé dans la mémoire du système en cours de débogage. Il oblige le processeur de l'utilisateur à produire, en plus de l'application, des fonctions de débogage:

  • chargement des codes d'application utilisateur dans la mémoire sans moniteur
  • établissement de points d'arrêt
  • démarrer et arrêter le programme chargé en temps réel
  • parcourir le programme utilisateur
  • visualisation, édition du contenu de la mémoire et des registres de contrôle.

Le programme de contrôle doit fonctionner en conjonction avec un ordinateur externe ou un terminal passif, sur lequel le processus de débogage est visualisé et contrôlé. Nous répétons que les moniteurs de débogage utilisent le même processeur, qui se trouve déjà sur la carte de l'utilisateur. L'avantage de cette approche est son coût très faible tout en maintenant la possibilité de déboguer en temps réel. Le principal inconvénient est le détournement des ressources du microcontrôleur vers des procédures de débogage et de communication, par exemple: le moniteur consomme une certaine quantité de mémoire, des interruptions, un canal série. La quantité de ressources détournées dépend des compétences du développeur du moniteur. Récemment, il est apparu des produits qui n'occupent pratiquement pas les ressources matérielles du processeur, ils seront décrits ci-dessous, dans la section "Émulateurs de ROM".

Conseils de développement

Les cartes de développement, ou comme on les appelle couramment dans la littérature étrangère - les cartes d'évaluation (cartes d'évaluation), sont des concepteurs originaux de systèmes d'application de prototypage. Récemment, avec la sortie d'un nouveau modèle de microcontrôleur à cristaux, le fabricant libère nécessairement les frais de développement correspondants. Il s’agit généralement d’une carte de circuit imprimé sur laquelle est installé un microcontrôleur, ainsi que de tous les feuillards standard dont elle a besoin. Sur cette carte, ils établissent également des circuits de communication avec un ordinateur externe. En règle générale, il existe également un champ libre pour le montage de schémas d'application utilisateur. Parfois, il existe une structure prête à l'emploi pour l'installation de périphériques supplémentaires recommandés par l'entreprise. Par exemple, ROM, RAM, écran LCD, clavier, ADC, etc. Outre la formation ou les maquettes, il est devenu avantageux (gain de temps) d’utiliser des cartes modifiées par l’utilisateur en tant que contrôleurs monocarte intégrés à quelques produits série (5..20 pcs. ).

Pour plus de commodité, les cartes de développement sont également équipées du plus simple outil de débogage basé sur un moniteur de débogage. Cependant, deux approches différentes sont apparues ici: l’une pour les microcontrôleurs avec un bus externe et l’autre pour les microcontrôleurs ne disposant pas de bus externe.

Dans le premier cas, le moniteur de mise au point est fourni par la société sous la forme d’une puce ROM insérée dans une prise spéciale de la carte de développement. La carte possède également de la RAM pour les programmes utilisateur et un canal de communication avec un ordinateur externe ou un terminal. La carte de développement Intel pour le microcontrôleur 8051 en est un exemple.

Dans le second cas, la carte de développement comporte des schémas de programmation intégrés pour la ROM interne du microcontrôleur, qui sont contrôlés à partir d'un ordinateur externe. Dans ce cas, le programme de contrôle est simplement entré dans la ROM du microcontrôleur avec les codes d'application de l'utilisateur. Dans ce cas, le programme d'application doit être spécialement préparé: les sous-routines de débogage du moniteur sont insérées à ses emplacements appropriés. Ensuite, un essai est effectué. Pour apporter des corrections au programme, l'utilisateur doit effacer la ROM et le réenregistrer. Le programme d’application terminé est obtenu à partir du débogage en supprimant tous les appels aux fonctions de moniteur et au moniteur de débogage lui-même. Les exemples incluent les cartes de développement de Microchip pour leurs contrôleurs PIC. Le même principe s’applique aux cartes de débogage pour les microcontrôleurs Philips 80С750 ou Atmel 89C2051.

Il est important de noter qu’un atout supplémentaire pour le moniteur, parfois les cartes de développement sont également complétées par des programmes de débogage qui s’exécutent sur un ordinateur externe conjointement avec le moniteur. Ces programmes sont récemment devenus considérablement plus complexes et comportent souvent un ensemble extrêmement professionnel de fonctions de débogage, par exemple un simulateur de débogage, ou divers éléments inhérents à un environnement de développement purement intégré. Les kits fournis peuvent également inclure des programmes appliqués qui sont le plus souvent rencontrés dans la pratique.

Les capacités de débogage fournies par la carte de développement et le kit de moniteur ne sont certainement pas aussi polyvalentes que les capacités d’un émulateur en circuit, et certaines des ressources du microprocesseur du processus de débogage sont sélectionnées pour que le moniteur fonctionne. Cependant, la disponibilité d'un ensemble complet d'outils logiciels et matériels prêts à l'emploi qui vous permettent de commencer à installer et à déboguer un système d'application sans perdre de temps est dans de nombreux cas un facteur décisif. Surtout quand on considère que le coût d'un tel kit est légèrement inférieur à celui d'un émulateur plus universel.

Émulateurs ROM.

L'émulateur de ROM est un outil logiciel et matériel qui permet de remplacer la ROM sur la carte déboguée et de remplacer à la place la RAM, dans laquelle le programme peut être téléchargé à partir de l'ordinateur via l'un des canaux de communication standard. Ce dispositif permet à l'utilisateur d'éviter les cycles de reprogrammation répétés de la ROM. La ROM de l'émulateur n'a de sens que pour les microcontrôleurs capables d'accéder à la mémoire programme externe. Cet appareil est comparable en complexité et en coût aux frais de développement. Il a un grand avantage: la polyvalence. L'émulateur de ROM peut fonctionner avec n'importe quel type de microcontrôleur.

Les premiers émulateurs de ROM ne permettaient que de charger le programme, de le démarrer et de l’arrêter à l’aide d’une réinitialisation générale. Ensuite, des modèles plus sophistiqués sont apparus avec la génération de traces basée sur le matériel lorsque vous atteignez une adresse spécifique sur l'oscilloscope. La mémoire émulée de ces produits était disponible pour la visualisation et la modification, mais un contrôle très important sur les registres de contrôle interne du microcontrôleur était jusqu'à récemment impossible.

Cependant, des modèles d'émulateurs de ROM intelligents sont apparus. Ils permettent de «regarder à l'intérieur» du microcontrôleur situé sur la carte de l'utilisateur et, en général, pour la gestion du débogage, sont devenus similaires à un émulateur en circuit. La société Cactus présente même son émulateur de ROM réellement intelligent, à la manière d'un émulateur intégré dans un certain nombre de microprocesseurs, si bien qu'il est impossible de distinguer le travail effectué avec les deux. En fait, le processeur n'est pas remplacé ici, mais celui de la carte de l'utilisateur est utilisé.

Les émulateurs de ROM intelligents sont un hybride d’un émulateur de ROM conventionnel, d’un moniteur de débogage et de circuits de commutation de bus rapide. Cela crée un effet comme si le moniteur de débogage était installé sur la carte de l'utilisateur tout en n'utilisant aucune ressource matérielle du microcontrôleur, à l'exception d'une petite zone d'étapes logicielles, d'environ 4K. Par exemple, un appareil de ce type a été développé par la société Phyton pour tous les microcontrôleurs existants et futurs dotés d’un noyau 8051 mais saturés de plus par divers dispositifs d’entrée / sortie. Cet appareil prend en charge de nombreux microcontrôleurs différents de Philips, Siemens, OKI.

Environnements de développement intégrés.

À proprement parler, les environnements de développement intégrés ne font pas partie des outils de débogage, mais il serait erroné d’ignorer cette classe d’outils logiciels qui simplifierait considérablement et accélérerait le processus de développement et de débogage des systèmes à microprocesseur.

Dans l’approche traditionnelle, la phase initiale de rédaction d’un programme est la suivante:

  • Le texte source est saisi à l'aide de n'importe quel éditeur de texte. À la fin du jeu, le travail avec un éditeur de texte est arrêté et le compilateur croisé est démarré. En règle générale, un programme nouvellement écrit contient des erreurs de syntaxe et le compilateur les signale à la console opérateur.
  • L'éditeur de texte est redémarré et l'opérateur doit rechercher et éliminer les erreurs détectées, tandis que les messages d'erreur générés par le compilateur ne sont plus visibles, l'écran étant occupé par un éditeur de texte.

Et ce cycle peut être répété plus d'une fois. Si le programme n'est pas trop petit et trivial, est assemblé à partir de différentes parties, est édité ou mis à niveau, alors même cette étape initiale peut nécessiter beaucoup de temps et d'efforts de la part du programmeur et réduire considérablement l'enthousiasme du développeur.

Pour éviter une grande quantité de routine et améliorer considérablement l'efficacité du processus de développement et de débogage, permettez à ce qu'on appelle et gagne rapidement en popularité. environnement de développement intégré (shell) développement (environnement de développement intégré, IDE).

En règle générale, un "bon" environnement intégré vous permet de combiner les outils de débogage disponibles (émulateur de circuit, simulateur de logiciel, programmeur) sous une même aile, tout en veillant à ce que le programmeur travaille avec les textes de programmes dans le style "turbo".

Travailler dans un environnement intégré donne au programmeur:

  • La possibilité d'utiliser l'éditeur de texte multi-fichier intégré, spécialement conçu pour travailler avec le code source des programmes.
  • Le diagnostic des erreurs détectées lors de la compilation et le code source du programme, disponible pour l'édition, sont affichés simultanément en mode multi-fenêtre.
  • Aptitude à organiser et à mener des travaux en parallèle sur plusieurs projets. Le gestionnaire de projet vous permet d'utiliser n'importe quel projet comme modèle pour un projet nouvellement créé. Les options utilisées par les compilateurs et la liste des fichiers source du projet sont définies dans les menus de la boîte de dialogue et enregistrées dans le projet, ce qui vous évite de travailler avec des fichiers de commandes gênants.
  • Seuls les modules édités sont recompilés.
  • Possibilité de charger le programme en cours de débogage dans les outils de débogage disponibles et de travailler avec eux sans quitter le shell.
  • Possibilité de se connecter au shell de presque tous les logiciels.

Récemment, les fonctions des environnements de développement intégrés sont devenues une partie intégrante des interfaces logicielles des émulateurs et des simulateurs de débogage les plus avancés. Cette fonctionnalité, associée à une interface conviviale, est en mesure de faciliter considérablement la vie du développeur et d’accélérer son travail.