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

Outils de développement et de débogage pour microcontrôleurs monopuce

Les principaux outils de débogage incluent:

  • émulateurs en circuit.
  • simulateurs de logiciels.
  • frais de développement (frais d'évaluation).
  • débogage des moniteurs.
  • émulateurs ROM.

Cette liste n'épuise pas tous les types d'outils de débogage existants. En plus de ceux-ci, il existe également des dispositifs combinés et des kits qui peuvent compenser les insuffisances des immobilisations prises séparément.

Émulateurs en circuit.

Émulateur en circuit - matériel logiciel, capable de remplacer un processeur émulé dans un schéma réel. L'émulateur en circuit est l'outil de débogage le plus puissant et universel.

En fait, un "bon" émulateur de circuit rend le processus de fonctionnement du contrôleur débogué transparent; facilement contrôlé, arbitrairement géré et modifié par la volonté du développeur.

Fonctionnellement, les émulateurs en circuit sont divisés en interfaces avec un ordinateur externe (généralement IBM PC) et fonctionnent de manière autonome. Les émulateurs autonomes en circuit ont des ressources informatiques individuelles, des installations d'entrée-sortie, ne nécessitent pas d'installations informatiques externes, mais pour cela, l'utilisateur doit payer un prix nettement plus élevé ou des capacités fonctionnelles et de service réduites par rapport aux autres. modèles qui interfacent avec le PC IBM.

Habituellement, l'amarrage de l'émulateur en circuit avec le système débogué est effectué en utilisant 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 retiré du système débogué, alors l'utilisation de l'émulateur n'est possible que si ce microcontrôleur possède un mode de débogage, dans lequel tous ses terminaux sont dans le troisième état. Dans ce cas, un adaptateur-clip spécial est utilisé pour connecter l'émulateur, qui est directement connecté aux sorties du microcontrôleur émulé.

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

  • débogueur.
  • noeud d'émulation de microcontrôleur;
  • mémoire d'émulation;
  • sous-système de points de rupture;

Des modèles plus avancés peuvent contenir en plus:

  • processeur de point d'arrêt;
  • le traceur;
  • profiler (analyseur d'efficacité de code);
  • une minuterie en temps réel;
  • logiciel et matériel, fournissant la capacité de lire et de modifier les ressources du processeur émulé "à la volée", c'est-à-dire dans le processus d'exécution du programme de l'utilisateur en temps réel;
  • logiciel et matériel fournissant un 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 le débogueur. La composition et le volume des informations traversant les moyens d'entrée-sortie, leur accessibilité pour la perception, le contrôle et, si nécessaire, 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:

  • charger le programme débogué dans la mémoire du système.
  • afficher sur le moniteur l'état et le contenu de tous les registres et de la mémoire et, si nécessaire, les modifier.
  • la gestion du processus d'émulation.

Débogueurs plus puissants, généralement appelés de haut niveau (Débogueurs), à part cela, permettent:

  • pour effectuer le débogage symbolique, car le débogueur "connaît" les adresses de toutes les variables, tableaux et structures de caractères (en utilisant les informations spéciales fournies par le compilateur). En même temps, l'utilisateur peut opérer avec des noms symboliques plus appropriés pour la personne, sans se soucier de se souvenir de leurs adresses.
  • contrôler et analyser non seulement le texte désassemblé, mais aussi le code source du programme écrit dans un langage de haut niveau, et même avec vos propres commentaires.

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

Il convient de noter qu'un débogueur de haut niveau garantit que toutes ses fonctions sont exécutées uniquement si un compilateur croisé fournissant des informations de débogage complètes et correctes est utilisé (tous les compilateurs, en particulier leurs versions piratées, ne fournissent pas ces informations) et en même temps le format de présentation signe "vers le 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 dans le système débogué, et de surcroît, de déboguer le programme sans utiliser un système réel ou sa mise en page. Si vous devez apporter des modifications au programme en cours de débogage, il suffit de charger un nouveau programme ou un programme modifié dans la mémoire de l'émulateur au lieu de reprogrammer la ROM. Il existe des modèles d'émulation qui permettent à l'utilisateur de "substituer" la ROM pour la mémoire d'émulation non seulement entièrement, mais aussi en blocs (dans certains modèles la taille de bloc minimale peut atteindre un octet), dans l'ordre défini par l'utilisateur. Pour ce faire, l'utilisateur doit définir la distribution 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 dans le système en cours de débogage et au contenu de la mémoire d'émulation de l'émulateur. Une telle mémoire est habituellement appelée mémoire avec la possibilité de cartographie.

Tracer

En substance, le traceur est un analyseur logique qui fonctionne de manière synchrone avec le processeur et qui fixe le flux des instructions exécutables et l'état des signaux externes sélectionnés. Il existe des modèles d'émulateurs en circuit qui permettent de suivre non seulement les signaux externes, mais aussi les 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 points de rupture

Le processeur des points d'arrêt vous permet d'arrêter l'exécution du programme, ou d'effectuer d'autres actions, par exemple, démarrer ou arrêter le traceur, lorsque les conditions spécifiées par l'utilisateur sont remplies. Contrairement au mécanisme des points d'arrêt normaux, le processeur de points d'arrêt vous permet de créer et de surveiller des conditions de presque n'importe quel degré de complexité, et le processus émulé n'est pas sorti de l'échelle en temps réel.

Profiler

Le profileur (sinon l'analyseur d'efficacité de code de programme) vous permet d'obtenir les informations suivantes à partir de l'exécution du programme débogué:

  • nombre d'appels à différentes sections du programme;
  • le temps consacré à l'exécution de diverses parties du programme.

L'analyse des informations statistiques fournies par le profileur facilite l'identification des sections de programmes «mortes» ou surchargées et, par conséquent, optimise la structure du programme en cours de débogage.

Environnement de développement intégré

Un ensemble de logiciels qui prend en charge toutes les étapes du développement logiciel, depuis l'écriture du code source du programme jusqu'à sa compilation et débogage, en passant par une interaction simple et rapide avec d'autres outils (simulateur de débogage-simulateur et programmeur).

La présence de l'éditeur intégré, du gestionnaire de projet intégré et du système de contrôle dans le shell du programme permet de simplifier considérablement le travail du développeur, lui évitant ainsi de nombreuses actions de routine. Pour le développeur, la ligne entre l'écriture d'un programme, son édition et le débogage est floue. Le passage de l'édition du texte source au débogage et inversement se fait «de manière transparente» et de manière synchrone avec l'activation des fenêtres correspondantes, le gestionnaire de projet démarre automatiquement la compilation si nécessaire et active les fenêtres correspondantes de l'interface du programme.

Tout aussi facile est la transition vers le débogage d'un projet à l'aide d'un simulateur de débogage existant, ou pour passer au firmware d'un programme qui fonctionne bien.

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

En général, divers modèles d'émulateurs en circuit peuvent fournir à l'utilisateur la possibilité de surveiller et de contrôler le fonctionnement des dispositifs en cours de débogage, avec diverses limitations. Par exemple, il peut s'agir d'un traitement incorrect des interruptions dans un mode pas à pas ou d'une interdiction d'utiliser 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. Certaines entreprises fabricants d'émulateurs vont délibérément limiter le nombre de compilateurs supportés, en premier lieu c'est typique des constructeurs occidentaux. Dans ces cas, l'émulateur peut uniquement utiliser un format de caractère.

Les possibilités du «vrai» émulateur en circuit seront illustrées avec l'exemple du modèle PICE-51.

PICE-51

Emulateur de microcontrôleurs 8 bits de la famille 8051

PICE-51 - un émulateur de nouvelle génération, créé avec l'utilisation de nouvelles technologies pour le développement de matériel et de logiciels.

L'utilisation de baies programmables haute capacité permet de réduire drastiquement la taille de l'émulateur sans altérer sa fonctionnalité, minimiser les écarts de caractéristiques électriques et fréquentielles de l'émulateur par rapport aux caractéristiques du processeur émulé et ainsi obtenir une précision d'émulation maximale aux fréquences jusqu'à 30 MHz. jusqu'à 5V.

Structure matérielle Rebootable de l'émulateur fournit émulation de presque tous les microcontrôleurs de la famille 8051 comme la production nationale, et les entreprises: Intel, Philips, Siemens, Atmel, Dallas, Temic, OKI, AMD, MHS et d'autres.

Une interface de programmation puissante dans l'environnement Windows est un environnement de développement intégré qui prend en charge toutes les étapes du développement logiciel, depuis l'écriture du code source du programme jusqu'à sa compilation et son débogage. Le programme de support de l'émulateur vise à déboguer les programmes dans un langage de haut niveau en utilisant le texte source .

L'émulateur se compose d'une carte principale d'une taille de 80x76mm, d'un adaptateur de remplacement pour un processeur spécifique et d'une tête d'émulation remplaçable pour un type de boîtier spécifique. Sur la carte principale implémentée: un traceur, un point d'arrêt du processeur . La carte d'adaptateur contient un processeur d'émulation pour un type particulier de microcontrôleur. Les têtes d'émulation fournissent l'installation de l'émulateur dans les pads DIP et PLCC sur la carte de l'utilisateur. L'émulateur de puissance est réalisé à partir de l'alimentation + 5V, 0.5A ou directement à partir de l'appareil en cours de débogage. Communication avec l'ordinateur - sur un canal RS-232C isolé galvaniquement à une vitesse de 115 ko.

CARACTÉRISTIQUES DE L'APPAREIL

  • Émulation précise - aucune limitation sur l'utilisation des ressources du microcontrôleur par le programme utilisateur.
  • Jusqu'à 256K de mémoire de programme émulé et de données. Prise en charge d'un modèle de mémoire en banque. L'allocation de mémoire entre l'émulateur et le périphérique de l'utilisateur avec une précision de 1 octet.
  • Jusqu'à 512K points d'arrêt matériels sur l'accès au programme et à la mémoire de données.
  • Prise en charge matérielle des programmes de débogage dans les langages de haut niveau.
  • Tracez 8 signaux externes arbitraires.
  • 4 sorties de synchronisation de l'équipement utilisateur.
  • Un traceur en temps réel avec un tampon de 16K à 64K dans des trames 64 bits avec un accès à la volée. Trace d'adresse, de données, de signaux de contrôle, d'horloge en temps réel et de 8 signaux d'utilisateur externe.
  • Filtre de trace programmable.
  • Processeur de point d'arrêt matériel capable de spécifier une condition d'arrêt d'émulation complexe pour une combinaison d'adresse, de données, de signaux de commande, de 8 signaux externes, d'un temporisateur en temps réel, de compteurs d'événements et d'un temporisateur.
  • Quatre points d'arrêt complexes qui peuvent être utilisés indépendamment ou dans des combinaisons de 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 des points d'arrêt, au tampon de trace, au temporisateur en temps réel.
  • Le générateur d'horloge contrôlé pour le processeur émulé. La possibilité de changer en douceur la fréquence d'horloge de 500 kHz à 40 MHz.
  • Galvaniquement isolé du canal de communication informatique RS-232C avec un taux de change de 115 KBod.
  • Système d'auto-diagnostic intégré de l'émulateur.

CARACTÉRISTIQUES DU LOGICIEL

  • Le logiciel est conçu pour fonctionner dans un environnement Windows sur des ordinateurs compatibles IBM avec des processeurs 386/486 / Pentium;
  • L' éditeur intégré de fenêtres multiples est destiné à l'écriture du code source du programme. L'éditeur prend en charge les opérations avec des blocs de texte, la recherche / remplacement, la sélection des couleurs de l'assembleur et la syntaxe du langage C;
  • Le gestionnaire de projet intégré fournit une compilation automatique des programmes. Toutes les options sont définies dans un formulaire de dialogue. La transition du code source d'édition au débogage et vice versa se fait de manière "transparente", c'est-à-dire. Le chef de projet démarre automatiquement la compilation du projet si nécessaire;
  • PICE-51 fournit un débogage symbolique et un débogage sur le texte source pour les programmes créés avec l'aide des compilateurs suivants:
    • Assembleur ASM51 d' Intel ;
    • Assembleur MCA-51 entreprise Fiton / MicroCosm ;
    • le compilateur PL / M d' Intel ;
    • Assembleur et compilateur C des systèmes IAR ;
    • Assembleur et compilateur C d' Avocet Systems Inc./HiTech ;
    • Keith Assembleur et compilateur de la société Keil Software Inc. ;
  • Sauvegardez et chargez automatiquement les fichiers de configuration matérielle, les interfaces et les options de débogage. Les fichiers de configuration sont compatibles avec le simulateur PDS-51. La portabilité des projets entre l'émulateur PICE-51 et le simulateur PDS-51 est prévue;
  • 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 équipé d'un manuel d'instructions imprimé et d' un manuel électronique contextuel , qui détaille ses principes de fonctionnement, commandes, menus, raccourcis clavier.

La structure de l'émulateur PICE-51

Options pour l'émulateur PICE-51

Microcontrôleur émulé Émulation de la mémoire interne du programme Contenu du paquet
Plinthe Adaptateur remplaçable Tête d'émulation
Intel : 80C31 / 32, 80C51 / 52, 80L / C51FA, 80C51RA;
Philips : 80C31 / 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 : 80C31 / 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 pour les microcontrôleurs de la famille 8051

Modèle, Fournisseur EMUL-51 Nohau Corporation USP-51 Signum Systems iceMASTER-8051 MetaLink PICE-5 Phyton1
8051 famille de microcontrôleurs émulés Toutes les variétés connues Toutes les grandes variétés Toutes les grandes variétés Toutes les grandes variétés
Fréquence d'émulation maximale 42 MHz 40 MHz 24 MHz 33 MHz
Quantité maximale de mémoire émulée 320K 256K 128K 512K
La possibilité de réaffecter la mémoire entre l'émulateur et le périphérique utilisateur Blocs 4K Blocs de 256 octets Blocs de 16 octets À moins d'un octet
Trace Buffer Jusqu'à 16 Ko de trames 48 bits Jusqu'à 32K trames de 80 bits Jusqu'à 4 images de 48 bits Jusqu'à 64 Ko de trames 64 bits
Accès "à la volée" à la mémoire émulée et au traceur Oui Oui Oui Oui
Interface avec l'ordinateur La carte dans l'emplacement ISA RS-232C, jusqu'à 115 Kbaude RS-232C, jusqu'à 115 Kbaude RS-232C isolé, jusqu'à 115 Kbaude
Conception et dimensions Deux cartes au format ISA, câbles 2 mètres, POD Boîtier 260x260x64 mm, câble, POD Boîtier 178x140x25 mm, câble, POD L'émulateur entier est dans la tête d'émulation avec la taille de 80x76x50 mm
Le prix pour une configuration comparable de la livraison: support 80С51, 25 MHz, 128K RAM, le traceur volume volume 16K 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 disponibles sur le site: http://www.phyton.ru

Bien sûr, un tel éventail de fonctionnalités fait des émulateurs en circuit l'outil de débogage le plus puissant et le plus polyvalent.

Simulateurs

Simulator - un outil logiciel qui peut simuler le fonctionnement du microcontrôleur et de sa mémoire. Typiquement, le simulateur contient dans sa composition:

  • débogueur;
  • modèle de CPU et de mémoire.

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

Le simulateur devrait être capable de charger des fichiers de programme dans tous les formats courants, d'afficher entièrement des informations sur l'état des ressources du microcontrôleur simulé, et également de fournir des opportunités pour simuler l'exécution du programme téléchargé dans divers modes. Pendant le débogage, le modèle "exécute" le programme, et l'état actuel du modèle 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 continu, de définir des points de rupture conditionnels ou inconditionnels, de contrôler et modifier librement le contenu des cellules de mémoire et des registres du microprocesseur simulé. Avec l'aide du simulateur, vous pouvez vérifier rapidement la logique de l'exécution du programme, l'exactitude des opérations arithmétiques.

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

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

Dans un système réel, le microcontrôleur lit normalement les informations provenant des dispositifs externes connectés (capteurs), traite ces informations et délivre des actions de contrôle aux actionneurs. Afin de simuler le fonctionnement du capteur dans un simulateur qui n'a pas d'interface avec l'environnement externe, il est nécessaire de changer manuellement l'état actuel du modèle du périphérique auquel le capteur est connecté dans le système réel. Si, par exemple, lors de la réception d'un octet via un port série, un certain drapeau est armé, et l'octet lui-même tombe dans un registre spécifique, ces deux actions doivent ê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 conformément à un algorithme donné. Les possibilités du simulateur de débogage "réel" seront illustrées par l'exemple du modèle PDS-PIC.

PDS-PIC

Debugger-simulator pour le développement et le débogage de programmes basés sur des microcontrôleurs PIC16 / PIC17.

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

Le simulateur a:

  • Éditeur intégré de plusieurs fenêtres pour écrire le code source du programme. L'éditeur supporte les opérations avec des blocs de texte, recherche / remplacement, sélection des couleurs des syntaxes du langage assembleur;
  • Un gestionnaire de projet intégré qui prend en charge la compilation automatique des programmes écrits pour le macro assembleur PASM-PIC de Fiton et pour le macroassembleur MPASM de Microchip.
  • Toutes les options de l'assembleur sont définies dans des boîtes de dialogue pratiques. La transition du code source d'édition au débogage et vice versa se fait de manière "transparente", c'est-à-dire. Le chef de projet démarre automatiquement l'assembleur si nécessaire;
  • Large choix de programmes de débogage: suivi de l'exécution du programme par son texte source, affichage et modification des valeurs de toutes les variables, analyseur d'efficacité de code intégré, points de rupture de condition et accès aux cellules mémoire, visualisation de la pile d'appels de sous-programme, beaucoup plus;
  • La possibilité d'exécuter le programme "en arrière" à un grand nombre d'étapes, ainsi qu'en mode continu. Dans ce cas, l'état du modèle du microcontrôleur est complètement restauré;
  • Modèle exact du comportement des microcontrôleurs. Il simule le fonctionnement de tous les périphériques intégrés dans le microcontrôleur: minuteries, CAN, systèmes d'interruption, ports, etc .;
  • Développé des outils pour modéliser "l'environnement externe", c.-à-d. dispositifs connectés au microcontrôleur. Il est facile de régler divers signaux externes périodiques et non périodiques sur les pieds du microcontrôleur, pour simuler le fonctionnement de la logique externe. Avec l'aide de l'affichage graphique intégré, vous pouvez afficher divers indicateurs, construire des graphiques, simuler le clavier;
  • Système de sauvegarde des fenêtres de configuration et des paramètres. Il est possible d'enregistrer et de restaurer un nombre illimité de fichiers de configuration;
  • Possibilité d'ajuster les couleurs et les polices et autres paramètres pour toutes les fenêtres simultanément et pour chaque fenêtre séparément;
  • Le système d'aide contextuelle. Être dans n'importe quel menu, fenêtre ou boîte de dialogue, vous pouvez obtenir de l'aide liée à ce menu, fenêtre ou boîte de dialogue;
  • PDS-PIC fonctionne dans un environnement Windows.

Plus de détails sur le simulateur sont présentés dans le tableau, compilés à partir des résultats d'une analyse comparative de deux simulateurs: MPlabSIM- cabinet Microchip et PDS-PIC - société Fiton. Les principales caractéristiques et différences de MPlabSIM et de PDS-PIC sont dues au fait qu'elles ont utilisé des interfaces utilisateur et des environnements conceptuellement différents pour la simulation.

MPlabSIM PDS-PIC
Management *
souris
système de menu
"touches de raccourci"
à travers le modèle de l'environnement externe
oui
oui
oui
non
oui
oui
oui
oui
Points d'arrêt
à l'adresse du code exécutable
en enregistrant le contenu
lors du changement de la valeur de l'expression
lorsque la condition logique est remplie
oui
oui
non
non
oui
oui
oui
oui
Événements simulés
synchrone
asynchrone
résolution temporelle
oui
non
4 cycles de commande
Oui
Oui
1 cycle de commandes
Ressources du processeur
Réinitialiser
Interruption
Minuteur0
Minuteur1
Minuteur2
CCP1
CCP2
PWM1 / 2
PSP
SSP
I2C
SCI (USART)
EEPROM
ADC
Comparateurs
Vref
Générateur RC
Module ADC
sans délai
pleinement
seulement synchrone
seulement synchrone
pleinement
pleinement
pleinement
sans haute résolution
seulement synchrone
pleinement
seulement les registres
retards
sans séquence protectrice
seulement les retards et les registres
seulement les registres
seulement les registres
d est une fréquence constante
seulement des retards
Complètement
Complètement
synchrone / asynchrone
synchrone / asynchrone
Complètement
pleinement
pleinement
pleinement
synchrone / asynchrone
seuls les registres et les drapeaux d'interruption
seulement les registres
seulement les registres
pleinement
pleinement
pleinement
pleinement
la fréquence est réglée indépendamment de la fréquence de l'horloge
registres pour entrées analogiques
Modélisation des influences externes
définition des valeurs d'entrée sur le port d'E / S
écrire directement dans les registres
effets cycliques
effets asynchrones
description (affectation des influences) de l'environnement externe de manière algorithmique
signaux analogiques externes
seulement de manière synchrone (par le numéro du cycle de commande)
oui
oui
la relation entre l'entrée et le bouton dans la boîte de dialogue correspondante
non
non
synchrone / asynchrone
oui
oui
oui
oui
oui
Caractéristiques supplémentaires
backtrace
analyseur d'efficacité de code (profiler)
la possibilité d'afficher graphiquement les processus
Vitesse **
non

non


non

400 équipes / seconde
oui

oui


oui

100 000 équipes / seconde

* MPlabSIM utilise le menu comme un add-on à l'entrée ligne des commandes pour contrôler le processus de simulation avec la possibilité de stocker et d'exécuter des séquences de commandes linéaires. Par exemple, pour modifier le contenu d'un registre, vous devez effectuer les opérations suivantes:

- sélectionnez "WINDOWS" dans le menu - sélectionnez l'option "MODIFY" dans le sous-menu - sélectionnez "quoi" (STACK, DATA ou CODE) (dans ce cas "DATA") vont changer - spécifiez l'adresse - entrez une nouvelle valeur - confirmez l'entrée dans la fenêtre de vidage du registre, vous verrez le résultat de la modification, mais dans la fenêtre elle-même, vous ne pouvez rien changer (uniquement via le menu - ligne de commande analogique).

En utilisant PDS-PIC, vous pouvez modifier la valeur du registre en appuyant sur deux touches. Il est tout aussi facile de faire toutes les autres activités de débogage.

** Sur l'exemple du paquet MPLAB-sim pour 16c54, exécuté sur la configuration MICROCHIP recommandée P90 / 16RAM.

Une caractéristique évidente des simulateurs de logiciels est le fait que l'exécution de programmes chargés dans le simulateur a lieu sur une échelle de temps différente de la vraie. Cependant, le faible prix, la possibilité de déboguer même en l'absence d'un modèle de dispositif débogué, font des simulateurs logiciels un moyen de débogage très efficace. Séparément, il convient de 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

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

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

Le programme de surveillance doit fonctionner avec un ordinateur externe ou un terminal passif sur lequel la visualisation et le contrôle du processus de débogage ont lieu. Répétons que les moniteurs de débogage utilisent ce processeur, qui se trouve déjà sur le tableau de l'utilisateur. L'avantage de cette approche est des coûts très bas tout en maintenant la possibilité de déboguer en temps réel. L'inconvénient principal est le détournement des ressources du microcontrôleur vers des procédures de débogage et cohérentes, par exemple: le moniteur prend de la mémoire, des interruptions, des canaux série. La quantité de ressources abstraites dépend de l'art du développeur de moniteur. Récemment, il est apparu des produits qui n'occupent pratiquement pas les ressources matérielles du processeur, ils seront décrits plus loin dans la section "Émulateurs ROM".

Conseils de développement

Les conseils de développement, ou comme on les appelle dans la littérature étrangère - les tableaux d'évaluation (tableaux d'évaluation), sont des concepteurs originaux pour les systèmes d'application de prototypage. Récemment, avec la sortie d'un nouveau modèle de puce de microcontrôleur, l'entreprise de fabrication produit nécessairement des frais de développement appropriés. Habituellement, il s'agit d'une carte de circuit imprimé avec un microcontrôleur installé, plus toute la tuyauterie standard nécessaire. Sur cette carte établissent également des schémas de communication avec un ordinateur externe. En règle générale, il existe également un champ libre pour l'installation des applications utilisateur. Parfois, il existe déjà un câblage prêt pour l'installation d'appareils supplémentaires recommandés par l'entreprise. Par exemple, ROM, RAM, écran LCD, clavier, ADC, etc. En plus de l'éducation ou de la maquette, ces cartes modifiées par l'utilisateur deviennent rentables (gain de temps) en tant que contrôleurs monocarte embarqués dans quelques produits en série (5.20 pcs. ).

Pour plus de commodité, les cartes de développement sont également équipées de l'outil de débogage le plus simple basé sur le moniteur de débogage. Cependant, deux approches différentes ont émergé: l'une est utilisée pour les microcontrôleurs avec un bus externe, et l'autre pour les microcontrôleurs qui n'ont pas de bus externe.

Dans le premier cas, le moniteur de débogage est fourni par la société sous la forme d'une puce ROM, qui est insérée dans une prise spéciale sur le panneau de développement. La carte a également RAM pour les programmes utilisateur et un canal de communication avec un ordinateur externe ou un terminal. Un exemple est la carte de développement Intel pour le microcontrôleur 8051.

Dans le second cas, la carte de développement comporte des circuits intégrés de programmation de la ROM interne du microcontrôleur, commandés depuis un ordinateur externe. Dans ce cas, le programme de surveillance est simplement écrit dans la ROM du microcontrôleur avec les codes d'application de l'utilisateur. Le programme d'application doit être spécialement préparé: les appels aux sous-programmes de débogage du moniteur sont insérés aux endroits nécessaires. Ensuite, un test est effectué. Pour apporter des corrections à l'utilisateur, l'utilisateur doit effacer la ROM et réenregistrer. Un programme d'application prêt à l'emploi est obtenu à partir du programme débogué en supprimant tous les appels des fonctions de surveillance et le moniteur de débogage lui-même. Les exemples incluent les cartes de développement Microchip pour leurs contrôleurs PIC. Le même principe s'applique aux cartes de circuits pour le débogage des microcontrôleurs 80S750 Philips ou 89C2051 Atmel.

Il est important de noter que plus sur le moniteur, parfois les cartes de développement sont également équipées de programmes de débogage qui s'exécutent sur un ordinateur externe en conjonction avec un moniteur. Ces programmes sont récemment devenus nettement plus complexes et ont souvent un ensemble très professionnel de fonctions de débogage, comme un simulateur de débogage, ou divers éléments inhérents à la forme pure des environnements de développement intégrés. Les kits fournis peuvent inclure des programmes de nature appliquée, qui sont le plus souvent rencontrés dans la pratique.

Les capacités de débogage fournies par le bundle "développement plus moniteur" ne sont certainement pas aussi polyvalentes que les capacités de l'émulateur en circuit, et certaines ressources du microprocesseur sont sélectionnées pour le moniteur pendant le débogage. Néanmoins, la disponibilité d'un ensemble complet de logiciels et de matériels prêts à l'emploi qui vous permettent de commencer à installer et à déboguer le système d'application sans perdre de temps est dans de nombreux cas un facteur décisif. Surtout quand vous considérez que le coût d'un tel ensemble est légèrement inférieur au coût d'un émulateur plus polyvalent.

Émulateurs ROM.

Émulateur ROM - firmware qui vous permet de remplacer la ROM sur la carte déboguée, et remplacez-la à la place de la RAM, qui peut être téléchargée depuis l'ordinateur via un ordinateur via l'un des canaux de communication standard. Ce dispositif permet à l'utilisateur d'éviter plusieurs cycles de reprogrammation de la ROM. L'émulateur ROM n'a de sens que pour les microcontrôleurs capables d'accéder à la mémoire de programme externe. Cet appareil est comparable en complexité et coût avec les cartes de développement. Il a une grande vertu: l'universalité. Emulator ROM peut fonctionner avec n'importe quel type de microcontrôleur.

Les premiers émulateurs de ROM permettaient uniquement de charger le programme, de le démarrer et d'arrêter d'utiliser une réinitialisation commune. Ensuite, il y avait des modèles sophistiqués avec génération de signaux de trace après avoir atteint une adresse spécifique sur l'oscilloscope. La mémoire émulée dans de tels 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, il y avait des modèles d'émulateurs ROM intelligents qui vous permettent de "regarder" à l'intérieur du microcontrôleur sur la carte de l'utilisateur et en général, pour contrôler le débogage, sont devenus similaires à l'émulateur en circuit. Firm Cactus représente même sa ROM émulateur virtuellement intelligent, comme un émulateur en circuit d'un certain nombre de microprocesseurs, il est si impossible de distinguer entre travailler avec les deux. En fait, le processeur n'est pas remplacé ici, mais celui qui est sur la carte de l'utilisateur est utilisé.

Les émulateurs de ROM intelligents sont un hybride d'un émulateur de ROM classique, un moniteur de débogage et des circuits de bus à changement rapide de l'un à l'autre. Cela crée un effet, comme si le moniteur de débogage était installé sur la carte de l'utilisateur et en même temps il ne prend aucune ressource matérielle du microcontrôleur, à l'exception d'une petite zone d'étapes de programme, environ 4K. Par exemple, un tel dispositif a été développé par Fiton pour tous les microcontrôleurs existants et futurs, qui ont un cœur de 8051 mais qui sont en outre saturés de divers dispositifs d'entrée / sortie. Cet appareil prend en charge de nombreux microcontrôleurs différents de Philips, Siemens, OKI.

Environnement de développement intégré.

Strictement parlant, les environnements de développement intégrés n'appartiennent pas au nombre d'outils de débogage, néanmoins, pour ignorer cette classe de logiciel, ce qui facilite grandement et accélère le processus de développement et de débogage des systèmes de microprocesseurs, ce serait faux.

Avec l'approche traditionnelle, la première étape de l'écriture du programme est la suivante:

  • Le texte source est saisi à l'aide d'un éditeur de texte. À la fin de l'ensemble, travailler avec l'éditeur de texte s'arrête et le compilateur croisé démarre. En règle générale, le programme nouvellement écrit contient des erreurs syntaxiques, et le compilateur les signale à la console de l'opérateur.
  • L'éditeur de texte est redémarré et l'opérateur doit trouver et corriger les erreurs détectées, tandis que les messages sur la nature des erreurs affichées par le compilateur ne sont plus visibles, puisque l'écran est 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, assemblé à partir de diverses parties, édité ou mis à niveau, alors même cette phase initiale peut nécessiter beaucoup de puissance et de temps de la part du programmeur et éteindre l'enthousiasme du développeur.

Éviter une grande quantité de routine et améliorer de manière significative l'efficacité du processus de développement et de débogage, permettant la popularité émergente et rapidement croissante de la soi-disant. environnements de développement intégrés (IDE).

En règle générale, un «bon» environnement intégré vous permet de combiner des outils de débogage existants (un émulateur en circuit, un simulateur de logiciel, un programmeur) sous une même aile et un programmeur avec des programmes de texte dans le style «turbo».

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

  • Possibilité d'utiliser beaucoup d'éditeur de texte basé sur des fichiers, spécialement conçu pour fonctionner avec le code source des programmes.
  • Les diagnostics détectés lors de la compilation des erreurs, et le code source du programme, accessible à l'édition, sont affichés simultanément dans un mode multi-fenêtres.
  • Possibilité d'organiser et de mener des travaux parallèles sur plusieurs projets. Le gestionnaire de projet vous permet d'utiliser n'importe quel projet comme modèle pour le projet nouvellement créé. Les options des compilateurs utilisés et la liste des fichiers source du projet sont définies dans les menus de la boîte de dialogue et sauvegardées dans le projet, éliminant ainsi le besoin de travailler avec des fichiers batch peu pratiques.
  • Seuls les modules édités sont recompilés.
  • La possibilité de charger un programme débogué dans des outils de débogage existants, et de travailler avec eux sans quitter le shell.
  • Possibilité de se connecter à la coque de pratiquement tous les logiciels.

Récemment, les fonctions des environnements de développement intégrés deviennent l'appartenance aux interfaces de programmation des émulateurs et des débogueurs-simulateurs les plus avancés. Une telle fonctionnalité, associée à une interface conviviale, est en mesure de simplifier considérablement la vie du développeur et d'accélérer son travail.