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

Entwicklungs- und Debugging-Tools für Single-Chip-Mikrocontroller

Die wichtigsten Debugging-Tools umfassen:

  • In-Circuit-Emulatoren.
  • Software-Simulatoren.
  • Entwicklungsgebühren (geschätzte Gebühren).
  • Debug-Monitore.
  • ROM-Emulatoren.

Diese Liste erschöpft nicht alle Arten vorhandener Debugging-Tools. Zusätzlich zu diesen gibt es auch kombinierte Geräte und Kits, mit denen Sie die Mängel des Anlagevermögens kompensieren können.

In-Circuit-Emulatoren.

Ein In-Circuit-Emulator ist Software und Hardware, die in der Lage ist, den emulierten Prozessor in einer realen Schaltung zu ersetzen. Der In-Circuit-Emulator ist das leistungsstärkste und universellste Debugging-Tool.

In der Tat macht ein "guter" In-Circuit-Emulator den Prozess des Funktionierens des Debug-Controllers transparent, d.h. leicht zu kontrollieren, beliebig steuerbar und modifizierbar auf Geheiß des Entwicklers.

Funktionell sind In-Circuit-Emulatoren in eine an eine externe Rechenmaschine (üblicherweise einen IBM-PC) ankoppelbare und autonom arbeitende Emulator unterteilt. Autonome In-Circuit-Emulatoren haben individuelle Rechenressourcen, Eingabe-Ausgabe-Mittel erfordern kein Andocken mit irgendwelchen externen Berechnungsmitteln für ihre normale Arbeit, aber der Benutzer muss entweder einen wesentlich höheren Preis oder eine reduzierte Funktionalität und Servicefähigkeiten im Vergleich zu Ähnlichem bezahlen Modelle, die an den IBM PC angedockt sind.

Normalerweise wird das Ankoppeln des In-Circuit-Emulators mit dem zu debuggenden System unter Verwendung eines Emulationskabels mit einem speziellen Emulationskopf durchgeführt. Der Emulationskopf wird anstelle des Mikrocontrollers in das zu debuggende System eingefügt. Wenn der Mikrocontroller nicht aus dem zu debuggenden System entfernt werden kann, ist die Verwendung des Emulators nur möglich, wenn dieser Mikrocontroller einen Debugging-Modus aufweist, in dem alle seine Ausgänge in dem dritten Zustand sind. In diesem Fall wird ein spezieller Clip-Adapter verwendet, um den Emulator zu verbinden, der direkt mit den Pins des emulierten Mikrocontrollers verbunden ist.

Der Emulator enthält mindestens die folgenden Funktionsblöcke:

  • Debugger
  • Mikrocontroller-Emulationsknoten;
  • Emulationsspeicher;
  • Haltepunkt-Subsystem;

Fortgeschrittenere Modelle können zusätzlich enthalten:

  • Haltepunktprozessor;
  • Indikator;
  • Profiler (Software-Code-Effizienz-Analysator);
  • Echtzeit-Timer;
  • Software und Hardware, die die Möglichkeit bietet, die Ressourcen des emulierten Prozessors "on the fly" zu lesen und zu modifizieren, d. während der Ausführung des Benutzerprogramms in Echtzeit;
  • Software- und Hardware-Tools, die eine synchrone Steuerung ermöglichen, die für die Emulation in Multiprozessorsystemen erforderlich ist;
  • integrierte Entwicklungsumgebung

Debugger

Der Debugger ist eine Art Brücke zwischen dem Entwickler und dem Debugging-Tool. Die Zusammensetzung und das Volumen der Information, die durch die Eingabe-Ausgabe-Mittel läuft, ihre Verfügbarkeit für die Wahrnehmung, Steuerung und, falls erforderlich, für die Korrektur und Modifikation hängen direkt von den Eigenschaften und der Qualität des Debuggers ab.

Ein guter Debugger ermöglicht Ihnen:

  • Laden Sie das zu debuggende Programm in den Systemspeicher.
  • Ausgabe des Status und des Inhalts aller Register und des Speichers und, falls erforderlich, ihrer Modifikation an den Monitor.
  • Management des Emulationsprozesses.

Leistungsfähigere Debugger, meist High-Level-Debugger genannt, ermöglichen Ihnen außerdem:

  • um symbolisches Debugging auszuführen, aufgrund der Tatsache, dass der Debugger die Adressen aller symbolischen Variablen, Arrays und Strukturen "kennt" (aufgrund der Verwendung spezieller Informationen, die vom Compiler geliefert werden). Gleichzeitig kann der Benutzer mit symbolischen Namen arbeiten, die für eine Person annehmbarer sind, ohne sich ihre Adressen merken zu müssen.
  • nicht nur den disassemblierten Text, sondern auch den Quelltext eines in einer höheren Sprache geschriebenen Programms und sogar seine eigenen Kommentare zu kontrollieren und zu analysieren.

Ein solcher Debugger ermöglicht es dem Benutzer, gleichzeitig den Fortschritt des Programms zu überwachen und die Übereinstimmung zwischen dem Quelltext, dem Abbild des Programms in Maschinencodes und dem Zustand aller Ressourcen des emulierten Mikrocontrollers zu erkennen.

Es sollte angemerkt werden, dass der High-Level-Debugger sicherstellt, dass all seine Funktionen nur ausgeführt werden, wenn ein Cross-Compiler verwendet wird, der vollständige und korrekte Debugging-Informationen liefert (nicht alle Compiler, insbesondere ihre Raubkopien, liefern solche Informationen) und das Präsentationsformat sollte sign "Debugger.

Emulationsspeicher

Das Vorhandensein von Emulationsspeicher macht es möglich, ihn im Debugging-Prozess anstelle des ROM in dem zu debuggenden System zu verwenden und darüber hinaus das Programm zu debuggen, ohne ein reales System oder sein Layout zu verwenden. Wenn es notwendig ist, Änderungen an dem zu debuggenden Programm vorzunehmen, genügt es, ein neues oder modifiziertes Programm in den Speicher des Emulators zu laden, anstatt das ROM neu zu programmieren. Es gibt Modelle von Emulatoren, die es dem Benutzer erlauben, anstelle von ROM-Emulationsspeicher nicht nur vollständig, sondern blockweise (in einigen Modellen kann die minimale Blockgröße ein Byte erreichen) in der vom Benutzer festgelegten Reihenfolge zu "ersetzen". Um dies zu tun, ist es für den Benutzer ausreichend, die Verteilung des Datenspeichers und des Programmspeichers einzustellen, gemäß denen der Prozessor sowohl auf den Inhalt des ROM in dem zu debuggenden System als auch auf den Inhalt des Emulationsspeichers des In-Circuit-Emulators zugreift. Ein solches Gedächtnis wird gewöhnlich als Gedächtnis mit der Möglichkeit der Zuordnung bezeichnet.

Tracer

Im Wesentlichen ist der Tracer ein Logikanalysator, der synchron mit dem Prozessor arbeitet und den Fluss der ausgeführten Befehle und den Zustand der ausgewählten externen Signale erfasst. Es gibt Modelle von In-Circuit-Emulatoren, die es ermöglichen, nicht nur externe Signale zu verfolgen, sondern auch den Zustand der internen Ressourcen des Mikrocontrollers, zum Beispiel Register. Solche Emulatoren verwenden spezielle Versionen von Mikrocontrollern (Emulationskristallen).

Haltepunktprozessor

Der Prozessor von Breakpoints ermöglicht es Ihnen, die Ausführung des Programms zu stoppen oder andere Aktionen wie das Starten oder Stoppen des Tracers auszuführen, wenn die vom Benutzer angegebenen Bedingungen erfüllt sind. Im Gegensatz zum Mechanismus der üblichen Breakpoints erlaubt der Prozessor von Breakpoints Bedingungen nahezu beliebiger Komplexität zu bilden und zu verfolgen, und gleichzeitig wird der emulierte Prozess nicht von der Echtzeitskala abgeleitet.

Profiler

Der Profiler (andernfalls ein Code-Effizienz-Analysator) ermöglicht es Ihnen, die folgenden Informationen aus den Ergebnissen des zu debuggenden Programms zu erhalten:

  • die Anzahl der Aufrufe an verschiedene Teile des Programms;
  • die Zeit, die für die Implementierung verschiedener Teile des Programms aufgewendet wurde.

Die Analyse der von dem Profiler gelieferten statistischen Information ermöglicht es, "tote" oder überstrapazierte Abschnitte der Programme leicht zu identifizieren und als Ergebnis die Struktur des zu debuggenden Programms zu optimieren.

Integrierte Entwicklungsumgebung

Eine Reihe von Softwaretools, die alle Phasen der Softwareentwicklung unterstützen, vom Schreiben des Quellcodes eines Programms bis zum Kompilieren und Debuggen und zum einfachen und schnellen Zusammenspiel mit anderen Werkzeugen (Software-Debugger-Simulator und -Programmierer).

Die Anwesenheit in der Programm-Shell des Emulator eingebauten Editors, integriertem Projektmanager und Management-System, kann die Arbeit des Entwicklers erheblich erleichtern und ihn vor vielen Routineaktionen bewahren. Für den Entwickler wird die Grenze zwischen dem Schreiben des Programms, seinem Editieren und dem Debuggen gelöscht. Der Übergang von Quellcode-Editierung zu Debugging und zurück ist "transparent" und synchron mit der Aktivierung der entsprechenden Fenster, der Projektmanager startet automatisch die Kompilierung nach Bedarf und aktiviert die entsprechenden Fenster der Programmschnittstelle.

Der Übergang zum Debuggen eines Projekts mit Hilfe eines vorhandenen Simulator-Debuggers ist ebenso einfach, oder gehen Sie zu der "Firmware" des ROM mit einem Debug-Programm über.

Einige Modelle von In-Circuit-Emulatoren können Benutzern weitere zusätzliche Funktionen bereitstellen. Unter ihnen finden wir eine, obwohl sehr spezifisch, aber in einigen Fällen von grundlegender Bedeutung: die Fähigkeit, Multi-Emulator-Komplexe zu bauen, die zum Debuggen von Multiprozessorsystemen notwendig sind. Ein besonderes Merkmal eines solchen Komplexes ist die Fähigkeit, mehrere Emulatoren (von einem Computer aus) synchron zu steuern.

Im Allgemeinen können verschiedene Modelle von In-Circuit-Emulatoren dem Benutzer die Möglichkeit bieten, den Betrieb von fehlerhaften Geräten mit allen möglichen Einschränkungen zu steuern und zu steuern. Dies kann beispielsweise eine inkorrekte Interruptbehandlung im inkrementellen Modus oder ein Verbot der Verwendung eines seriellen Ports usw. sein. Es ist auch zu beachten, dass jedes reale Modell des Emulators seinen eigenen Satz unterstützter Compiler aufweist. Einige Hersteller von Emulatoren gehen bewusst darauf ein, die Anzahl der unterstützten Compiler zu begrenzen, vor allem ist es typisch für westliche Hersteller. In diesen Fällen kann der Emulator nur ein Zeichenformat verwenden.

Die Möglichkeiten des "echten" In-Circuit-Emulators zeigen wir am Beispiel des Modells PICE-51.

PICE-51

In-Circuit-Emulator der 8-Bit-Mikrocontroller-Familie 8051

PICE-51 ist ein Emulator der neuen Generation, der unter Verwendung neuer Hardware- und Software-Entwicklungstechnologien entwickelt wurde.

Die Verwendung von programmierbaren Matrizen mit hoher Kapazität hat die Größe des Emulators dramatisch reduziert, ohne seine Funktionalität zu beeinträchtigen, die Abweichungen der elektrischen und Frequenzeigenschaften des Emulators von den Eigenschaften des emulierten Prozessors zu minimieren und somit eine maximale Emulationsgenauigkeit bei Frequenzen von bis zu 30 MHz bei Versorgungsspannungen von 3,3 V zu erreichen bis 5V.

Die nachladbare Hardwarestruktur des Emulators ermöglicht die Emulation von praktisch allen Mikrocontrollern der 8051-Familie, die sowohl im Inland als auch in Firmen hergestellt werden: Intel, Philips, Siemens, Atmel, Dallas, Temic, OKI, AMD, MHS und andere.

Eine leistungsstarke Software-Schnittstelle in der Windows- Umgebung ist eine integrierte Entwicklungsumgebung, die alle Phasen der Softwareentwicklung unterstützt, vom Schreiben des Quellcodes eines Programms bis zum Kompilieren und Debuggen. Das Emulator-Unterstützungsprogramm konzentriert sich auf das Debuggen von Programmen in einer Hochsprache mit Quellcode .

Der Emulator besteht aus einer Hauptplatine mit einer Größe von 80x76mm, einem abnehmbaren Adapter für einen bestimmten Prozessor und einem abnehmbaren Emulationskopf für eine bestimmte Art von Gehäuse. Auf der Hauptplatine sind implementiert: Tracer, Breakpoint-Prozessor . Die Plug-in-Adapterkarte enthält einen Emulationsprozessor für einen bestimmten Mikrocontrollertyp. Emulationsköpfe ermöglichen die Installation des Emulators in den DIP- und PLCC-Pads auf der Benutzerplatine. Der Emulator wird über das Netzteil mit +5 V, 0,5 A oder direkt vom zu debuggenden Gerät gespeist. Die Kommunikation mit einem Computer erfolgt über einen galvanisch getrennten RS-232C- Kanal mit einer Geschwindigkeit von 115 kBaud.

EIGENSCHAFTEN DER AUSRÜSTUNG

  • Präzise Emulation - keine Einschränkung der Nutzung von Mikrocontroller-Ressourcen durch das Anwenderprogramm.
  • Bis zu 256K emulierten Programmspeicher und Daten. Unterstützung für Banking-Speichermodell. Die Speicherverteilung zwischen dem Emulator und dem Benutzergerät mit einer Genauigkeit von 1 Byte.
  • Bis zu 512K Hardware Breakpoints für den Zugriff auf Programmspeicher und Daten.
  • Hardware-Unterstützung für das Debuggen von Programmen in Hochsprachen.
  • Verfolgen Sie 8 beliebige externe Signale.
  • 4 synchronisiert Benutzerausrüstungsausgänge.
  • Echtzeit-Tracer mit Puffer von 16K bis 64K Frames von jeweils 64 Bits mit On-the-Fly-Zugriff. Tracing Adresse, Daten, Steuersignale, Echtzeit-Timer und 8 externe Benutzersignale.
  • Programmierbare Ablaufverfolgung.
  • Hardwareprozessor für Haltepunkte mit der Fähigkeit, eine komplexe Bedingung für das Stoppen der Emulation durch eine Kombination aus Adresse, Daten, Steuerung, 8 externen Signalen, Echtzeit-Timer, Ereigniszählern und Verzögerungszeitgeber einzustellen.
  • Vier komplexe Breakpoints, die unabhängig voneinander oder in Kombination gemäß den Bedingungen AND / OR / IF-THEN verwendet werden können.
  • 48-Bit-Echtzeit-Timer
  • Transparente Emulation - direkter Zugriff auf den emulierten Speicher, Breakpoints, Breakpoint-Prozessor, Trace-Buffer, Echtzeit-Timer.
  • Verwalteter Taktfrequenzgenerator für den emulierten Prozessor. Die Fähigkeit, die Taktfrequenz stufenlos von 500 kHz auf 40 MHz zu ändern.
  • RS-232C-Kommunikationskanal, galvanisch getrennt von einem Computer mit einer Übertragungsrate von 115 kBaud.
  • Eingebauter Selbstdiagnosegeräte-Emulator.

SPEZIFIKATIONEN DER SOFTWARE

  • Die Software konzentriert sich auf das Arbeiten in der Windows-Umgebung auf IBM-kompatiblen Computern mit Prozessoren vom Typ 386/486 / Pentium;
  • Der integrierte Multifenster- Editor ist für das Schreiben von Quellprogrammen ausgelegt. Der Editor unterstützt Textblockoperationen, Suchen / Ersetzen, Farbhervorhebung von Syntaxkonstruktionen der Assemblersprache und C;
  • Eingebauter Projektmanager bietet automatische Kompilierung von Programmen. Alle Optionen sind in der Dialogmaske festgelegt. Der Übergang von der Bearbeitung des Quelltextes zum Debugging und zurück ist "transparent", d.h. Der Projektmanager beginnt bei Bedarf automatisch mit der Kompilierung des Projekts.
  • PICE-51 bietet symbolisches Debugging und Source-Level-Debugging für Programme, die mit den folgenden Compilern erstellt wurden:
    • Intel ASM51 Assembler;
    • Assembler MCA-51 von Fiton / MicroCosm ;
    • Intels PL / M- Compiler;
    • Assembler und C-Compiler von IAR Systems ;
    • C Assembler und Compiler von Avocet Systems Inc./HiTech ;
    • Assembler und C-Compiler von Keil Software Inc. ;
  • Automatisches Speichern und Laden von Hardware-Konfigurationsdateien, Interface- und Debug-Optionen. Konfigurationsdateien sind mit dem Simulator PDS-51 kompatibel. Projektportabilität zwischen dem PICE-51-Emulator und dem PDS-51-Simulator;
  • Möglichkeit, Farben, Schriftarten und andere Parameter für alle Fenster gleichzeitig und für jedes Fenster separat anzupassen;

Der Emulator verfügt über eine gedruckte Bedienungsanleitung und ein kontextabhängiges elektronisches Handbuch , in dem die Funktionsprinzipien, Befehle, Menüs und Hotkeys detailliert beschrieben sind.

Blockdiagramm des Emulators PICE-51

Optionen für den Abschluss des Emulators PICE-51

Emulierter Mikrocontroller Emulation des internen Programmspeichers Lieferset
Hauptplatine Austauschbarer Adapter Emulationskopf
Intel : 80C31 / 32, 80C51 / 52, 80L / C51FA, 80C51RA;
Philips : 80³31 / 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;
Nein PICE-51 POD-51-31 ADP-51-DIP40 oder ADP-51-LCC44
Intel : 80C31 / 32, 8XC51 / 52/54/58, 8XL / C51FA / FB / FC, 8XC51RA / RB / RC;
Philips : 80³ / 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 oder ADP-51-LCC44
Atmel : 89C4051, 89C2051, 89C1051; 4K PICE-51 POD-51-31 oder 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
Nein
64K
PICE-51
PICE-51
POD-51-552
POD-51-554
ADP-51-LCC68
ADP-51-LCC68
Intel : 80C51GB Nein PICE-51 POD-51-GB ADP-51-LCC68
Dallas : DS80C310, DS80C320, DS8XC520 64K PICE-51 POD-51-DS530 ADP-51-DIP40 oder ADP-51-LCC44
Dallas : DS8XC530 64K PICE-51 POD-51-DS530 ADP-51-DS530

Vergleichseigenschaften einiger Emulatoren für die Mikrocontroller-Familie 8051

Modell, Lieferant EMUL-51 Nohau Corporation USP-51 Signum Systeme iceMASTER-8051 MetaLink PICE-5 Fiton1
8051 Emulierte Mikrocontroller Alle bekannten Arten Alle wichtigen Sorten Alle wichtigen Sorten Alle wichtigen Sorten
Maximale Emulationsrate 42 MHz 40 MHz 24 MHz 33 MHz
Maximaler emulierter Speicher 320 K 256K 128K 512K
Die Möglichkeit der Speicherumverteilung zwischen dem Emulator und dem Gerät des Benutzers 4K Blöcke 256-Byte-Blöcke 16 Byte Blöcke Genauigkeit bis zum 1. Byte
Trace-Puffer Bis zu 16K 48-Bit-Frames Bis zu 32K 80-Bit-Frames Bis zu 4K 48-Bit-Frames Bis zu 64K Frames mit 64 Bit
On-the-Fly-Zugriff auf emulierten Speicher und Tracer Ja Ja Ja Ja
Computerschnittstelle ISA-Kartensteckplatz RS-232C, bis zu 115 kWaud RS-232C, bis zu 115 kWaud Isolierte RS-232C, bis zu 115 Kbaude
Design und Abmessungen Zwei Karten im ISA-Format, 2 Meter Kabel, PODs Gehäuse 260x260x64 mm, Kabel, POD Gehäuse 178x140x25 mm, Kabel, POD Der gesamte Emulator ist in der Emulationskopfgröße 80x76x50 mm
Preis für eine vergleichbare Lieferkonfiguration: Unterstützung 80С51, 25 MHz, 128K RAM, Trace-Puffer mit einem Volumen von 16K Frames $ 5200 (Nohau Preisliste) $ 5300 (Signum Preisliste) $ 4000 (MetaLink-Preisliste) $ 990

Weitere vollständige Informationen sowie eine Demo-Version des Emulators finden Sie auf der Website: http://www.phyton.ru

Diese große Bandbreite an Funktionen macht In-Circuit-Emulatoren natürlich zum leistungsfähigsten und vielseitigsten Debugging-Tool.

Simulatoren

Ein Simulator ist ein Softwaretool, das den Betrieb eines Mikrocontrollers und dessen Speicher simulieren kann. In der Regel enthält der Simulator:

  • Debugger;
  • CPU- und Speichermodell.

Fortschrittlichere Simulatoren enthalten Modelle eingebetteter Peripheriegeräte wie Timer, Ports, ADCs und Interrupt-Systeme.

Der Simulator sollte in der Lage sein, Programmdateien in allen gängigen Formaten herunterzuladen, Informationen über den Zustand der Ressourcen des simulierten Mikrocontrollers so vollständig wie möglich anzuzeigen und Möglichkeiten zur Simulation der Ausführung des geladenen Programms in verschiedenen Modi bereitzustellen. Während des Debuggens führt das Modell das Programm aus, und der aktuelle Zustand des Modells wird auf dem Computerbildschirm angezeigt.

Nachdem das Programm in den Simulator geladen wurde, kann der Benutzer es in schrittweisen oder kontinuierlichen Modi ausführen, bedingte oder unbedingte Haltepunkte setzen, den Inhalt von Speicherzellen und Registern des simulierten Mikroprozessors steuern und frei modifizieren. Mit Hilfe des Simulators können Sie schnell die Logik des Programms, die Korrektheit der arithmetischen Operationen überprüfen.

Abhängig von der Klasse des verwendeten Debuggers können verschiedene Simulatoren das symbolische Debuggen von Programmen auf hoher Ebene unterstützen.

Einige Modelle von Simulatoren können eine Anzahl zusätzlicher Software enthalten, wie zum Beispiel: eine externe Umgebungsschnittstelle, eine integrierte Entwicklungsumgebung.

In einem realen System ist ein Mikrocontroller üblicherweise damit beschäftigt, Informationen von angeschlossenen externen Vorrichtungen (Sensoren) zu lesen, diese Informationen zu verarbeiten und Steueraktionen an Aktuatoren auszugeben. Um den Betrieb eines Sensors in einem Simulator zu simulieren, der keine externe Schnittstelle hat, müssen Sie den aktuellen Zustand des Modells des Peripheriegeräts, mit dem der Sensor verbunden ist, in einem realen System manuell ändern. Wenn beispielsweise beim Empfang eines Bytes über die serielle Schnittstelle ein bestimmtes Flag gespannt wird und das Byte selbst in ein bestimmtes Register fällt, müssen beide Aktionen in einem solchen Simulator manuell ausgeführt werden. Das Vorhandensein der Schnittstelle der externen Umgebung ermöglicht es dem Benutzer, das Modell der externen Umgebung des Mikrocontrollers zu erstellen und flexibel zu verwenden, das gemäß einem gegebenen Algorithmus mit dem zu debuggenden Programm zusammenarbeitet und mit diesem interagiert. Die Möglichkeiten des "echten" Debugger-Simulators werden am Beispiel des PDS-PIC-Modells dargestellt.

PDS-PIC

Ein Debugger-Simulator zum Entwickeln und Debuggen von Programmen, die auf PIC16 / PIC17-Mikrocontrollern basieren.

PDS-PIC ist ein praktisches und flexibles Werkzeug zum Schreiben und Debuggen von Programmen, die auf PICmicro Microchip Mikrocontroller spezialisiert sind.

Der Simulator hat:

  • Eingebauter Multi-Fenster-Editor zum Schreiben von Quellprogrammen. Der Editor unterstützt Textblockoperationen, Suchen / Ersetzen, farbliche Hervorhebung von Syntaxkonstruktionen der Assemblersprache;
  • Eingebauter Projektmanager, der die automatische Kompilierung von Programmen unterstützt, die für den Macro-Assembler PASM-PIC der Firma Fiton und für den Macro-Assembler MPASM der Firma Microchip geschrieben wurden.
  • Alle Assembler-Optionen werden in Form von komfortablen Dialogen eingestellt. Der Übergang von der Bearbeitung des Quelltextes zum Debugging und zurück ist "transparent", d.h. Der Projektmanager startet den Assembler bei Bedarf automatisch;
  • Umfangreiche Debugging-Funktionen: Verfolgen der Programmausführung anhand des Quelltextes, Anzeigen und Ändern der Werte beliebiger Variablen, des integrierten Effizienzanalysators des Programmcodes, Haltepunkte nach Bedingung und Zugriff auf Speicherzellen, Anzeigen des Unterroutinenaufrufstapels, des eingebauten Assemblers, genaue Berechnung der Zeitintervalle und vieles andere;
  • Fähigkeit, das Programm in einer großen Anzahl von Schritten sowie im kontinuierlichen Modus "zurück" auszuführen. In diesem Fall ist der Zustand des Mikrocontrollermodells vollständig wiederhergestellt;
  • Das genaue Modell des Verhaltens von Mikrocontrollern. Simuliert den Betrieb aller im Mikrocontroller eingebetteten Peripheriegeräte: Timer, ADC, Interrupt System, Ports usw .;
  • Entwickelte Tools zur Modellierung der "externen Umgebung", d. H. Geräte an den Mikrocontroller angeschlossen. Es ist einfach, verschiedene periodische und nicht periodische externe Signale auf den Beinen des Mikrocontrollers einzustellen, um den Betrieb externer Logik zu simulieren. Mit Hilfe der integrierten grafischen Anzeige-Tools können Sie verschiedene Indikatoren visuell anzeigen, Grafiken erstellen, eine Tastatur simulieren;
  • System speichert Konfigurationsfenster und Einstellungen. Sie können eine unbegrenzte Anzahl von Konfigurationsdateien speichern und wiederherstellen.
  • Die Möglichkeit, Farben und Schriftarten und andere Parameter für alle Fenster gleichzeitig und für jedes Fenster getrennt anzupassen;
  • Kontext-Hilfe-System. In jedem Menü, Fenster oder Dialogfeld können Sie Hilfe zu diesem Menü, Fenster oder Dialogfeld aufrufen.
  • PDS-PIC funktioniert in der Windows-Umgebung.

Detaillierter werden die Merkmale des Simulators in der Tabelle präsentiert, die aus den Ergebnissen einer vergleichenden Analyse von zwei Simulatoren zusammengestellt wurde: MPlabSIM- Firmen Microchip und PDS-PIC Fiton. Die Hauptmerkmale und Unterschiede von MPlabSIM und PDS-PIC liegen darin begründet, dass konzeptionell unterschiedliche Benutzeroberflächen und Simulationsumgebungen verwendet wurden.

MPlabSIM PDS-PIC
Führung *
Maus
Menüsystem
Hotkeys
durch das Umweltmodell
Ja
Ja
Ja
Nein
Ja
Ja
Ja
Ja
Haltepunkte
an die Adresse des ausführbaren Codes
nach Registerinhalt
wenn der Wert des Ausdrucks geändert wird
unter einer logischen Bedingung
Ja
Ja
Nein
Nein
Ja
Ja
Ja
Ja
Simulierte Ereignisse
synchron
asynchron
Zeitauflösung
Ja
Nein
4 Befehlszyklen
Ja
Ja
1 Zyklusbefehle
Prozessorressourcen
Zurücksetzen
Unterbrechen
Timer0
Timer1
Timer2
CCP1
CCP2
PWM1 / 2
PSP
Ssp
I2C
SCI (USART)
Eeprom
ADC
Komparatoren
Vref
RC-Generator
ADC-Modul
keine Verzögerung auf
vollständig
nur synchron
nur synchron
vollständig
vollständig
vollständig
ohne hohe Auflösung
nur synchron
vollständig
registriert nur
Zeitverzögerungen
ohne Sicherheitsabfolge
nur Verzögerungen und Register
registriert nur
registriert nur
Frequenzkonstante
nur Verzögerungen
Völlig
Völlig
synchron / asynchron
synchron / asynchron
Völlig
vollständig
vollständig
vollständig
synchron / asynchron
registriert und unterbricht nur Flags
registriert nur
registriert nur
vollständig
vollständig
vollständig
vollständig
die Frequenz wird unabhängig von der Taktfrequenz eingestellt
Register für analoge Eingänge
Simulation von äußeren Einflüssen
Setzen der Eingabe-E / A-Port-Sollwerte
Direktes Schreiben in Register
zyklische Effekte
asynchrone Effekte
Beschreibung (Einstellung der Effekte) der Umgebung algorithmisch
externe analoge Signale
nur synchron (entsprechend der Befehlszyklusnummer)
Ja
Ja
die Beziehung zwischen der Eingabe und der Schaltfläche im entsprechenden Dialog
Nein
Nein
synchron / asynchron
Ja
Ja
Ja
Ja
Ja
Zusätzliche Funktionen
zurücklaufen (Backtrace)
Programmcode-Leistungsanalysator (Profiler)
grafische Anzeigefähigkeiten verarbeiten
Geschwindigkeit **
Nein

Nein


Nein

400 Teams / Sek
Ja

Ja


Ja

100.000 Teams / Sek

* MPlabSIM verwendet das Menü als Add-on über die Eingabe von Steuerbefehlen für den Simulationsprozess mit der Fähigkeit, lineare Befehlssequenzen zu speichern und zu speichern. Um beispielsweise den Inhalt des Registers zu ändern, müssen Sie Folgendes tun:

- Wählen Sie die "WINDOWS" Sektion im Menü - wählen Sie die "MODIFY" Option aus dem Untermenü - wählen Sie "was" (STACK, DATA oder CODE) (in diesem Fall "DATA") wird geändert - geben Sie die Adresse - geben Sie den neuen Wert - bestätigen Sie die Eingabe In der Dump-Datei der Registerdatei sehen Sie das Ergebnis der Änderung, aber Sie können nichts im Fenster selbst ändern (nur über das Menü ist ein Analogon der Befehlszeile).

Mit dem PDS-PIC können Sie den Wert des Registers ändern, indem Sie zwei Tasten drücken. Es ist genauso einfach, alle anderen Aktionen auszuführen, um das Programm zu debuggen.

** Verwenden Sie das Beispiel aus dem MPLAB-sim-Paket für 16c54, wenn es auf der von MICROCHIP empfohlenen P90 / 16RAM-Konfiguration ausgeführt wird.

Ein offensichtliches Merkmal von Softwaresimulatoren ist die Tatsache, dass die Ausführung von Programmen, die in den Simulator geladen werden, in einem anderen Zeitmaßstab als dem echten erfolgt. Geringe Kosten, die Fähigkeit, selbst in Abwesenheit eines Debugger-Layouts zu debuggen, machen Software-Simulatoren zu einem sehr effektiven Debugging-Tool. Gesondert muss betont werden, dass es eine ganze Klasse von Fehlern gibt, die nur mit Hilfe eines Simulators erkannt werden können.

Debug-Monitore

Der Debug-Monitor ist ein spezielles Programm, das in den Speicher des zu debuggenden Systems geladen wird. Es zwingt den Prozessor des Benutzers, zusätzlich zur Anwendung auch Debugging-Funktionen zu erzeugen:

  • Laden von Benutzeranwendungscodes in den monitorfreien Speicher
  • Haltepunkte setzen
  • Starten und stoppen Sie das geladene Programm in Echtzeit
  • Schritt durch das Benutzerprogramm
  • Anzeigen, Bearbeiten des Inhalts von Speicher- und Steuerregistern.

Das Überwachungsprogramm muss in Verbindung mit einem externen Computer oder einem passiven Terminal funktionieren, auf dem der Debugging-Prozess visualisiert und gesteuert wird. Wir wiederholen, dass Debug-Monitore denselben Prozessor verwenden, der bereits auf der Platine des Benutzers ist. Der Vorteil dieses Ansatzes besteht in sehr niedrigen Kosten, während die Fähigkeit zum Debuggen in Echtzeit erhalten bleibt. Der Hauptnachteil ist die Umleitung von Mikrocontroller-Ressourcen zu Debugging- und Kommunikationsprozeduren, zum Beispiel: der Monitor verbraucht eine bestimmte Menge an Speicher, Interrupts, serieller Kanal. Die Menge der umgeleiteten Ressourcen hängt von den Fähigkeiten des Monitorentwicklers ab. In jüngster Zeit sind Produkte erschienen, die praktisch keine Hardwareressourcen des Prozessors belegen, sie werden nachstehend im Abschnitt "ROM-Emulatoren" beschrieben.

Entwicklungsboards

Entwicklungsboards, oder wie sie in der Literatur allgemein genannt werden - Evaluation Boards (Evaluation Boards), sind Original-Entwickler für Prototyping-Anwendungssysteme. Vor kurzem hat der Hersteller mit der Freigabe eines neuen Modells des Kristallmikrocontrollers zwangsläufig die entsprechende Entwicklungsgebühr herausgegeben. Dies ist in der Regel eine Leiterplatte mit einem Mikrocontroller installiert, plus alle Standard-Umreifung, die es braucht. Auf dieser Platine stellen sie auch Kommunikationsschaltungen mit einem externen Computer her. In der Regel gibt es auch ein freies Feld zum Mounten von Benutzeranwendungsschemen. Manchmal gibt es ein vorgefertigtes Layout für die Installation zusätzlicher Geräte, die von der Firma empfohlen werden. Zum Beispiel, ROM, RAM, LCD-Display, Tastatur, ADC, etc. Neben dem Training oder Mock-ups, wurde es vorteilhaft (Zeiteinsparung) solche benutzer-modifizierte Boards als Single-Board-Controller zu verwenden, die in ein paar serielle Produkte (5..20 PCS) eingebaut sind. ).

Für mehr Komfort sind die Entwicklungsboards auch mit dem einfachsten Debugging-Tool ausgestattet, das auf einem Debug-Monitor basiert. Es haben sich jedoch zwei verschiedene Ansätze herauskristallisiert: Einer wird für Mikrocontroller mit einem externen Bus verwendet und der zweite für Mikrocontroller, die keinen externen Bus haben.

Im ersten Fall wird der Debug-Monitor von der Firma in Form eines ROM-Chips geliefert, der in eine spezielle Buchse auf der Entwicklungskarte gesteckt wird. Die Karte hat auch RAM für Benutzerprogramme und einen Kommunikationskanal mit einem externen Computer oder Terminal. Ein Beispiel hierfür ist das Intel-Entwicklungsboard für den 8051-Mikrocontroller.

Im zweiten Fall verfügt das Entwicklungsboard über integrierte Programmierschemata für das interne ROM des Mikrocontrollers, die von einem externen Computer gesteuert werden. In diesem Fall wird das Überwachungsprogramm einfach zusammen mit den Anwendungscodes des Benutzers in das ROM des Mikrocontrollers eingegeben. In diesem Fall muss das Anwendungsprogramm speziell vorbereitet werden: Die Debug-Subroutinen des Monitors werden an den richtigen Stellen eingefügt. Dann wird ein Probelauf durchgeführt. Um Korrekturen an dem Programm vorzunehmen, muss der Benutzer das ROM löschen und neu aufzeichnen. Das fertige Anwendungsprogramm wird von dem Debugger erhalten, indem alle Aufrufe an die Überwachungsfunktionen und den Debugging-Monitor selbst entfernt werden. Beispiele hierfür sind Microchips Entwicklungsboards für ihre PIC-Controller. Das gleiche Prinzip gilt für Debugging-Boards für Philips 80С750-Mikrocontroller oder Atmel 89C2051.

Es ist wichtig zu beachten, dass ein Plus an den Monitor, manchmal Entwicklungs-Boards auch mit Debugging-Programmen abgeschlossen sind, die auf einem externen Computer in Verbindung mit dem Monitor ausgeführt werden. Diese Programme sind in letzter Zeit wesentlich komplexer geworden und haben oft eine hochprofessionelle Menge von Debugging-Funktionen, beispielsweise einen Debugger-Simulator oder verschiedene Elemente, die einer rein integrierten Entwicklungsumgebung innewohnen. Die gelieferten Kits können auch angewandte Programme enthalten, die am häufigsten in der Praxis vorkommen.

Die Debugging-Funktionen, die von der Entwicklungskarte und dem Monitor-Kit bereitgestellt werden, sind sicherlich nicht so vielseitig wie die Fähigkeiten eines In-Circuit-Emulators, und einige der Mikroprozessor-Ressourcen im Debug-Prozess werden für den Monitor ausgewählt, um zu funktionieren. Die Verfügbarkeit eines vollständigen Satzes gebrauchsfertiger Software- und Hardwaretools, mit denen Sie ohne Zeitverlust mit der Installation und dem Debugging eines Anwendungssystems beginnen können, ist jedoch in vielen Fällen ein entscheidender Faktor. Vor allem, wenn man bedenkt, dass die Kosten eines solchen Kits etwas geringer sind als die Kosten eines universelleren Emulators.

ROM-Emulatoren.

Der ROM-Emulator ist ein Software- und Hardwaretool, das es ermöglicht, das ROM auf der fehlerhaften Karte zu ersetzen und an dessen Stelle den RAM zu ersetzen, in den das Programm über einen der Standard-Kommunikationskanäle vom Computer heruntergeladen werden kann. Diese Vorrichtung ermöglicht es dem Benutzer, wiederholte Umprogrammierungszyklen des ROM zu vermeiden. Der Emulator-ROM ist nur für Mikrocontroller sinnvoll, die auf externen Programmspeicher zugreifen können. Dieses Gerät ist in Komplexität und Kosten vergleichbar mit Entwicklungsgebühren. Es hat einen großen Vorteil: Vielseitigkeit. Der ROM-Emulator kann mit allen Arten von Mikrocontrollern arbeiten.

Frühe ROM-Emulatoren durften nur das Programm laden, starten und mit einem generellen Reset stoppen. Dann erschienen komplexere Modelle mit hardwarebasierter Trace-Generierung, wenn eine bestimmte Adresse auf dem Oszilloskop erreicht wurde. Der emulierte Speicher in solchen Produkten war zur Ansicht und Modifikation verfügbar, aber eine sehr wichtige Kontrolle über die internen Steuerregister des Mikrocontrollers war bis vor kurzem unmöglich.

Es sind jedoch Modelle von intelligenten ROM-Emulatoren erschienen, die es ermöglichen, den Mikrocontroller auf der Benutzerplatine "zu betrachten" und im Allgemeinen zur Fehlersuchsteuerung ähnlich einem In-Circuit-Emulator zu werden. Firm Cactus präsentiert sogar seinen eigentlich intelligenten ROM-Emulator, wie einen In-Circuit-Emulator einer Reihe von Mikroprozessoren, so dass es unmöglich ist, die Arbeit mit beiden zu unterscheiden. Tatsächlich wird der Prozessor hier nicht ersetzt, sondern der auf der Benutzerplatine wird verwendet.

Intelligente ROM-Emulatoren sind eine Mischung aus einem herkömmlichen ROM-Emulator, Debug-Monitor und schnellen Bus-Switch-Schaltungen von einem zum anderen. Dies erzeugt einen Effekt, als ob der Debugging-Monitor auf der Benutzerplatine installiert wäre und gleichzeitig keine Hardwareressourcen von dem Mikrocontroller benötigt, außer für einen kleinen Bereich von Softwareschritten, ungefähr 4K. Ein solches Gerät wurde beispielsweise von der Firma Phyton für alle bestehenden und zukünftigen Mikrocontroller entwickelt, die einen Kern von 8051 haben, aber zusätzlich mit verschiedenen Ein- / Ausgabegeräten gesättigt sind. Dieses Gerät unterstützt viele verschiedene Mikrocontroller von Philips, Siemens, OKI.

Integrierte Entwicklungsumgebungen

Streng genommen gehören integrierte Entwicklungsumgebungen nicht zu den Debugging-Tools, dennoch wäre es falsch, diese Klasse von Software-Tools zu ignorieren, die den Prozess der Entwicklung und des Debuggens von Mikroprozessorsystemen wesentlich vereinfachen und beschleunigen würden.

In der traditionellen Herangehensweise ist die Anfangsphase des Schreibens eines Programms wie folgt:

  • Der Quelltext wird mit einem beliebigen Texteditor eingegeben. Nach Beendigung des Satzes wird die Arbeit mit einem Texteditor gestoppt und der Cross-Compiler gestartet. Ein neu geschriebenes Programm enthält in der Regel Syntaxfehler und der Compiler meldet sie an die Operator-Konsole.
  • Der Texteditor wird neu gestartet und der Bediener muss die erkannten Fehler finden und beheben, während die vom Compiler erzeugten Fehlermeldungen nicht mehr sichtbar sind, da der Bildschirm von einem Texteditor besetzt ist.

Und dieser Zyklus kann mehrmals wiederholt werden. Wenn das Programm nicht zu klein und trivial ist, aus verschiedenen Teilen zusammengesetzt ist, bearbeitet oder aktualisiert wird, dann kann selbst diese Anfangsphase viel Zeit und Mühe des Programmierers erfordern und den Enthusiasmus des Entwicklers signifikant reduzieren.

Um eine große Menge Routine zu vermeiden und die Effizienz des Entwicklungs- und Debugging-Prozesses deutlich zu verbessern, lassen sich die sogenannten und schnell an Popularität gewinnenden. integrierte Entwicklungsumgebung (Shells) Entwicklung (Integrated Development Environment, IDE).

Eine "gute" integrierte Umgebung erlaubt es in der Regel, die verfügbaren Debugging-Tools (In-Circuit-Emulator, Software-Simulator, Programmierer) unter einem Flügel zu vereinen und gleichzeitig sicherzustellen, dass der Programmierer mit den Texten von Programmen im "Turbo" -Stil arbeitet.

Arbeiten in einer integrierten Umgebung gibt dem Programmierer:

  • Die Möglichkeit, den integrierten Multi-File-Texteditor zu verwenden, der speziell auf die Arbeit mit dem Quellcode von Programmen ausgerichtet ist.
  • Die Diagnose von Fehlern, die während des Kompilierens erkannt wurden, und der Quellcode des Programms, der zur Bearbeitung zur Verfügung steht, werden gleichzeitig im Mehrfenstermodus angezeigt.
  • Fähigkeit, parallele Arbeit an mehreren Projekten zu organisieren und durchzuführen. Mit dem Projektmanager können Sie jedes Projekt als Vorlage für ein neu erstelltes Projekt verwenden. Die Optionen, die von den Compilern verwendet werden, und die Liste der Projektquelldateien werden in den Dialogmenüs festgelegt und im Projekt gespeichert, so dass Sie nicht mit unbequemen Stapeldateien arbeiten müssen.
  • Nur die bearbeiteten Module werden neu kompiliert.
  • Möglichkeit, das zu debuggende Programm in die verfügbaren Debugging-Tools zu laden und mit ihnen zu arbeiten, ohne die Shell zu verlassen.
  • Fähigkeit zur Verbindung mit der Shell von fast jeder Software.

In jüngster Zeit werden die Funktionen integrierter Entwicklungsumgebungen Teil der Software-Schnittstellen der modernsten Emulatoren und Debugger-Simulatoren. Eine solche Funktionalität in Kombination mit einer benutzerfreundlichen Oberfläche kann das Leben des Entwicklers erheblich erleichtern und seine Arbeit beschleunigen.