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. Darüber hinaus gibt es auch kombinierte Geräte und Kits, mit denen Sie die Mängel des separat verwendeten Anlagevermögens ausgleichen können.

In-Circuit-Emulatoren.

In-Circuit-Emulator - Software-Hardware, die einen emulierten Prozessor in einer realen Schaltung ersetzen kann. Der In-Circuit-Emulator ist das leistungsstärkste und universellste Debugging-Tool.

Tatsächlich macht ein "guter" In-Circuit-Emulator den Funktionsprozess des debuggten Controllers transparent, d.h. leicht zu kontrollieren, willkürlich zu kontrollieren und nach dem Willen des Entwicklers zu modifizieren.

Funktionell sind In-Circuit-Emulatoren so unterteilt, dass sie an eine externe Rechenmaschine (normalerweise einen IBM-PC) andockbar sind und autonom funktionieren. Autonome In-Circuit-Emulatoren verfügen über individuelle Rechenressourcen. Die Eingabe- / Ausgabe-Mittel müssen für ihre normale Arbeit nicht an externe Rechenmittel angedockt werden, aber der Benutzer muss dafür entweder mit einem erheblich höheren Preis oder im Vergleich zu ähnlichen Funktionen und Servicefähigkeiten zahlen Modelle, die an den IBM PC angedockt sind.

Normalerweise wird der In-Circuit-Emulator mit einem Emulationskabel mit einem speziellen Emulationskopf an das zu debuggende System angedockt. Der Emulationskopf wird anstelle des Mikrocontrollers in das zu debuggende System eingesetzt. Wenn der Mikrocontroller nicht aus dem zu debuggenden System entfernt werden kann, ist die Verwendung des Emulators nur möglich, wenn dieser Mikrocontroller über einen Debugging-Modus verfügt, in dem sich alle seine Ausgänge im dritten Zustand befinden. In diesem Fall wird ein spezieller Clip-Adapter verwendet, um den Emulator anzuschließen, der direkt mit den Pins des emulierten Mikrocontrollers verbunden ist.

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

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

Weiterentwickelte Modelle können zusätzlich enthalten:

  • Haltepunktprozessor;
  • Tracer;
  • Profiler (Software Code Efficiency Analyzer);
  • Echtzeit-Timer;
  • Software und Hardware, die die Fähigkeit bietet, die Ressourcen des emulierten Prozessors im laufenden Betrieb zu lesen und zu modifizieren, d.h. während der Ausführung des Anwenderprogramms in Echtzeit;
  • Software- und Hardwaretools, die die für die Emulation in Multiprozessorsystemen erforderliche synchrone Steuerung bereitstellen;
  • integrierte Entwicklungsumgebung

Debugger

Der Debugger ist eine Art Brücke zwischen dem Entwickler und dem Debugging-Tool. Die Zusammensetzung und Menge der Informationen, die durch die Eingabe-Ausgabe-Mittel fließen, ihre Verfügbarkeit für die Wahrnehmung, Steuerung und, falls erforderlich, für die Korrektur und Änderung hängen direkt von den Eigenschaften und der Qualität des Debuggers ab.

Mit einem guten Debugger können Sie:

  • Laden des zu debuggenden Programms in den Systemspeicher.
  • Ausgabe des Status und des Inhalts aller Register und des Speichers an den Monitor und, falls erforderlich, deren Änderung.
  • Verwaltung des Emulationsprozesses.

Leistungsstärkere Debugger, die normalerweise als High-Level-Debugger bezeichnet werden, ermöglichen Ihnen außerdem Folgendes:

  • symbolisches Debuggen durchführen, da der Debugger die Adressen aller symbolischen Variablen, Arrays und Strukturen "kennt" (aufgrund der Verwendung spezieller Informationen, die vom Compiler bereitgestellt werden). Gleichzeitig kann der Benutzer mit symbolischen Namen arbeiten, die für eine Person akzeptabler sind, ohne sich die Adresse merken zu müssen.
  • nicht nur den disassemblierten Text, sondern auch den Quellcode 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 Entsprechung zwischen dem Quelltext, dem Bild des Programms in Maschinencodes und dem Zustand aller Ressourcen des emulierten Mikrocontrollers zu sehen.

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

Emulationsspeicher

Das Vorhandensein eines Emulationsspeichers ermöglicht es, diesen beim Debugging-Vorgang anstelle des ROMs im zu debuggenden System zu verwenden und darüber hinaus das Programm zu debuggen, ohne ein reales System oder dessen Layout zu verwenden. Wenn Änderungen am zu debuggenden Programm erforderlich sind, reicht es aus, ein neues oder geändertes Programm in den Speicher des Emulators zu laden, anstatt das ROM neu zu programmieren. Es gibt Emulatormodelle, mit denen der Benutzer den Emulationsspeicher anstelle des ROM nicht nur vollständig, sondern blockweise (in einigen Modellen kann die minimale Blockgröße bis zu einem Byte betragen) in der vom Benutzer festgelegten Reihenfolge "ersetzen" kann. Dazu genügt es, wenn der Benutzer die Verteilung von Datenspeicher und Programmspeicher festlegt, nach der der Prozessor sowohl auf den Inhalt des ROM im zu debuggenden System als auch auf den Inhalt des Emulationsspeichers des In-Circuit-Emulators zugreift. Ein solcher Speicher wird üblicherweise als Speicher 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 Anweisungen und den Zustand der ausgewählten externen Signale erfasst. Es gibt Modelle von In-Circuit-Emulatoren, mit denen Sie nicht nur externe Signale, sondern auch den Status der internen Ressourcen des Mikrocontrollers verfolgen können, z. B. Register. Solche Emulatoren verwenden spezielle Versionen von Mikrocontrollern (Emulationskristalle).

Haltepunktprozessor

Mit dem Prozessor für Haltepunkte können Sie die Ausführung des Programms anhalten oder andere Aktionen ausführen, z. B. den Tracer starten oder stoppen, wenn die vom Benutzer festgelegten Bedingungen erfüllt sind. Im Gegensatz zum Mechanismus üblicher Haltepunkte ermöglicht der Prozessor von Haltepunkten die Bildung und Verfolgung von Bedingungen mit nahezu beliebiger Komplexität, und gleichzeitig wird der emulierte Prozess nicht von der Echtzeitskala abgeleitet.

Profiler

Der Profiler (ansonsten der Code Efficiency Analyzer) 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;
  • Zeitaufwand für die Durchführung verschiedener Programmabschnitte.

Die Analyse der vom Profiler gelieferten statistischen Informationen macht es einfach, "tote" oder überlastete Teile des Programms zu identifizieren und dadurch 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 über das Kompilieren und Debuggen bis hin zur einfachen und schnellen Interaktion mit anderen Tools (Software-Debugger-Simulator und Programmierer).

Das Vorhandensein des in den Emulator eingebauten Editors, des eingebauten Projektmanagers und des Managementsystems in der Programmhülle kann die Arbeit des Entwicklers erheblich erleichtern und ihn vor vielen Routinearbeiten bewahren. Für den Entwickler wird die Grenze zwischen dem Schreiben des Programms, dessen Bearbeitung und dem Debuggen gelöscht. Der Übergang von der Quellcodebearbeitung zum Debugging und zurück ist "transparent" und synchron zur Aktivierung der entsprechenden Fenster, der Projektmanager kompiliert automatisch nach Bedarf und aktiviert die entsprechenden Fenster der Programmoberfläche.

Ebenso einfach ist der Übergang zum Debuggen eines Projekts mit Hilfe des vorhandenen Simulator-Debuggers, oder fahren Sie mit einem debuggten Programm mit der „Firmware“ des ROM fort.

Einige Modelle von In-Circuit-Emulatoren bieten Benutzern möglicherweise weitere zusätzliche Funktionen. Unter diesen ist eines zwar sehr spezifisch, aber in einigen Fällen von grundlegender Bedeutung: die Fähigkeit, Multi-Emulator-Komplexe zu erstellen, die zum Debuggen von Multiprozessorsystemen erforderlich sind. Ein charakteristisches 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 geben, den Betrieb von debuggten Geräten mit allen möglichen Einschränkungen zu steuern und zu steuern. Dies kann beispielsweise eine falsche Interrupt-Behandlung im schrittweisen Modus oder ein Verbot der Verwendung einer seriellen Schnittstelle usw. sein. Außerdem muss beachtet werden, dass jedes reale Modell des Emulators über einen eigenen Satz unterstützter Compiler verfügt. Einige Hersteller von Emulatoren beschränken bewusst die Anzahl der unterstützten Compiler, was vor allem typisch für westliche Hersteller ist. In diesen Fällen kann der Emulator nur ein Zeichenformat verwenden.

Die Möglichkeiten des "echten" In-Circuit-Emulators veranschaulichen 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 mithilfe neuer Hardware- und Softwareentwicklungstechnologien erstellt wurde.

Durch die Verwendung programmierbarer Hochleistungsmatrizen kann die Größe des Emulators drastisch reduziert werden, ohne dass seine Funktionalität beeinträchtigt wird. Die Abweichungen der elektrischen Eigenschaften und der Frequenzeigenschaften des Emulators von den Eigenschaften des emulierten Prozessors werden minimiert, und es wird eine maximale Emulationsgenauigkeit bei Frequenzen von bis zu 30 MHz bei Versorgungsspannungen von 3,3 V erzielt bis 5V.

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

Eine leistungsstarke Softwareoberfläche 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 höheren Sprache unter Verwendung von Quellcode .

Der Emulator besteht aus einer Hauptplatine mit einer Größe von 80 x 76 mm, einem entfernbaren Adapter für einen bestimmten Prozessor und einem entfernbaren Emulationskopf für einen bestimmten Gehäusetyp. Auf der Hauptplatine sind implementiert: der Tracer, die Prozessor-Breakpoints . 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 Benutzerkarte. Der Emulator wird 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.

MERKMALE DER AUSRÜSTUNG

  • Genaue Emulation - Keine Einschränkungen bei der Verwendung von Mikrocontroller-Ressourcen durch das Anwenderprogramm.
  • Bis zu 256K emulierter Programmspeicher und Daten. Unterstützung für das Bankspeichermodell. Die Verteilung des Speichers zwischen dem Emulator und dem Benutzergerät mit einer Genauigkeit von 1 Byte.
  • Bis zu 512K Hardware-Haltepunkte 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 Ausgänge für die Synchronisierung von Benutzergeräten.
  • Echtzeit-Tracer mit Pufferspeicher von 16K bis 64K Frames mit jeweils 64 Bit und Direktzugriff. Verfolgung von Adresse, Daten, Steuersignalen, Echtzeituhr und 8 externen Benutzersignalen.
  • Programmierbarer Trace-Filter.
  • Hardware-Prozessor für Haltepunkte mit der Möglichkeit, eine komplexe Emulationsstoppbedingung durch eine Kombination aus Adresse, Daten, Steuerung, 8 externen Signalen, Echtzeit-Timer, Ereigniszählern und Verzögerungs-Timer festzulegen.
  • Vier komplexe Haltepunkte, die unabhängig oder in Kombination entsprechend den Bedingungen AND / OR / IF-THEN verwendet werden können.
  • 48-Bit-Echtzeituhr.
  • Transparente Emulation - Direkter Zugriff auf den emulierten Speicher, Haltepunkte, Haltepunktprozessor, Ablaufverfolgungspuffer und Echtzeit-Timer.
  • Managed Clock Generator für den emulierten Prozessor. Die Möglichkeit, die Taktfrequenz stufenlos von 500 kHz auf 40 MHz zu ändern.
  • RS-232C-Kommunikationskanal galvanisch getrennt von einem Computer mit einer Wechselrate von 115 kBaud.
  • Eingebauter Emulator für Selbsttestgeräte.

EIGENSCHAFTEN DER SOFTWARE

  • Die Software konzentriert sich auf die Arbeit in der Windows-Umgebung auf IBM-kompatiblen Computern mit Prozessoren des Typs 386/486 / Pentium.
  • Der eingebaute Multi-Window- Editor ist zum Schreiben von Quellprogrammen vorgesehen. Der Editor unterstützt Textblockoperationen, Suchen / Ersetzen, Hervorheben von Farben bei Syntaxkonstruktionen in Assemblersprache und C;
  • Eingebauter Projektmanager bietet automatische Kompilierung von Programmen. Alle Optionen werden im Dialogfeld 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 Debugging auf Quellenebene 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 ;
    • C Assembler und Compiler von Keil Software Inc. ;
  • Automatisches Speichern und Laden von Hardware-Konfigurationsdateien, Schnittstellen- und Debug-Optionen. Konfigurationsdateien sind mit dem PDS-51-Simulator 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 wird mit einer gedruckten Bedienungsanleitung und einem kontextbezogenen elektronischen Handbuch geliefert, in denen die Funktionsprinzipien, Befehle, Menüs und Tastenkombinationen ausführlich beschrieben werden.

Blockdiagramm des Emulators PICE-51

Optionen zur Vervollständigung 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С31 / 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

Vergleichende Eigenschaften einiger Emulatoren für die Mikrocontroller-Familie 8051

Modell, Lieferant EMUL-51 Nohau Corporation USP-51 Signum Systems iceMASTER-8051 MetaLink PICE-5 Fiton1
8051 Emulierte Mikrocontroller Alle bekannten Arten Alle wichtigen Sorten Alle wichtigen Sorten Alle wichtigen Sorten
Maximale Emulationsfrequenz 42 MHz 40 MHz 24 MHz 33 MHz
Maximaler emulierter Speicher 320K 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 Genau auf das 1. Byte
Trace-Puffer Bis zu 16.000 48-Bit-Frames Bis zu 32K 80bit Frames Bis zu 4K 48bit Frames Bis zu 64K-Frames mit 64 Bit
Direkter Zugriff auf den emulierten Speicher und den Tracer Ja Ja Ja Ja
Computerschnittstelle ISA-Kartensteckplatz RS-232C, bis zu 115 Kbaude RS-232C, bis zu 115 Kbaude 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 Körper 178x140x25 mm, Kabel, POD Der gesamte Emulator hat die Emulationskopfgröße 80x76x50 mm
Preis für eine vergleichbare Auslieferungskonfiguration: Unterstützung von 80С51, 25 MHz, 128K RAM, Trace Buffer mit einem Volumen von 16K Frames $ 5200 (Nohau Preisliste) $ 5300 (Signum-Preisliste) 4000 US-Dollar (MetaLink-Preisliste) 990 US-Dollar

Ausführlichere Informationen sowie eine Demoversion des Emulators finden Sie auf der Website: http://www.phyton.ru

Natürlich macht ein derart breites Spektrum an Funktionen In-Circuit-Emulatoren zum leistungsstärksten und vielseitigsten Debugging-Tool.

Simulatoren

Ein Simulator ist ein Software-Tool, das den Betrieb eines Mikrocontrollers und seines Speichers simulieren kann. Der Simulator enthält in der Regel:

  • Debugger;
  • CPU- und Speichermodell.

Weiterentwickelte 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 zum Status der Ressourcen des simulierten Mikrocontrollers so vollständig wie möglich anzuzeigen und die Ausführung des geladenen Programms in verschiedenen Modi zu simulieren. Während des Debugging-Vorgangs "führt" das Modell das Programm aus und der aktuelle Status des Modells wird auf dem Computerbildschirm angezeigt.

Nachdem das Programm in den Simulator geladen wurde, kann der Benutzer es schrittweise oder kontinuierlich starten, bedingte oder unbedingte Haltepunkte festlegen, 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 und die Richtigkeit der Rechenoperationen überprüfen.

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

Einige Modelle von Simulatoren enthalten möglicherweise eine Reihe zusätzlicher Software, z. B. die Schnittstelle für die externe Umgebung und die integrierte Entwicklungsumgebung.

In einem realen System liest ein Mikrocontroller normalerweise Informationen von angeschlossenen externen Geräten (Sensoren), verarbeitet diese Informationen und gibt Steueraktionen an Aktoren aus. Um den Betrieb eines Sensors in einem Simulator ohne externe Schnittstelle zu simulieren, müssen Sie den aktuellen Status des Modells des Peripheriegeräts, an das der Sensor in einem realen System angeschlossen ist, manuell ändern. Wenn zum Beispiel beim Empfang eines Bytes über den seriellen Port ein bestimmtes Flag gesetzt wird und das Byte selbst in ein bestimmtes Register fällt, müssen diese beiden Aktionen in einem solchen Simulator manuell ausgeführt werden. Das Vorhandensein der externen Schnittstelle ermöglicht es dem Benutzer, das Modell der externen Umgebung des Mikrocontrollers zu erstellen und flexibel zu verwenden, das nach einem bestimmten Algorithmus funktioniert und mit dem zu debuggenden Programm interagiert. Die Möglichkeiten des "echten" Debuggersimulators werden am Beispiel des PDS-PIC-Modells veranschaulicht.

PDS-PIC

Ein Debugger-Simulator zum Entwickeln und Debuggen von Programmen auf der Basis von PIC16 / PIC17-Mikrocontrollern.

PDS-PIC ist ein praktisches und flexibles Tool zum Schreiben und Debuggen von Programmen, die sich auf PICmicro Microchip-Mikrocontroller konzentrieren.

Der Simulator hat:

  • Eingebauter Mehrfenster-Editor zum Schreiben von Quellprogrammen. Der Editor unterstützt Textblockoperationen, Suchen / Ersetzen und farbliche Hervorhebung der Assemblersyntax.
  • Eingebauter Projektmanager, der die automatische Kompilierung von Programmen unterstützt, die für den Makro-Assembler PASM-PIC der Firma Fiton und für den Makro-Assembler MPASM der Firma Microchip geschrieben wurden.
  • Alle Assembler-Optionen werden in Form von praktischen Dialogen festgelegt. 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, integrierter Effizienzanalysator für den Programmcode, Haltepunkte nach Bedingung und Zugriff auf Speicherzellen, Anzeigen des Unterprogrammaufrufstapels, integrierter Assembler, genaue Berechnung von Zeitintervallen und vieles andere;
  • Möglichkeit, das Programm in einer großen Anzahl von Schritten sowie im kontinuierlichen Modus "zurück" auszuführen. In diesem Fall wird der Status des Mikrocontrollermodells vollständig wiederhergestellt.
  • Das genaue Modell des Verhaltens von Mikrocontrollern. Simuliert die Arbeit aller im Mikrocontroller eingebauten Peripheriegeräte: Timer, ADC, Interrupt - System, Ports usw .;
  • Entwickelte Werkzeuge zur Modellierung der "externen Umgebung", d.h. an den Mikrocontroller angeschlossene Geräte. Sie können auf einfache Weise verschiedene periodische und nichtperiodische externe Signale an den Beinen des Mikrocontrollers einstellen und den Betrieb externer Logik simulieren. Mithilfe der integrierten grafischen Anzeigetools können Sie verschiedene Indikatoren visuell anzeigen, Diagramme erstellen und eine Tastatur simulieren.
  • System speichern Konfigurationsfenster und Einstellungen. Sie können eine unbegrenzte Anzahl von Konfigurationsdateien speichern und wiederherstellen.
  • Möglichkeit, Farben und Schriftarten sowie andere Parameter für alle Fenster gleichzeitig und für jedes Fenster separat anzupassen;
  • Kontext-Hilfesystem. In jedem Menü, Fenster oder Dialogfeld können Sie Hilfe zu diesem Menü, Fenster oder Dialogfeld erhalten.
  • PDS-PIC funktioniert in der Windows-Umgebung.

Die Eigenschaften des Simulators werden in der Tabelle detaillierter dargestellt, die aus den Ergebnissen einer vergleichenden Analyse von zwei Simulatoren zusammengestellt wurde: MPlabSIM- Firmen Microchip und PDS-PIC- Firmen Fiton. Die Hauptmerkmale und Unterschiede von MPlabSIM und PDS-PIC beruhen auf der Tatsache, dass bei der Entwicklung konzeptionell unterschiedliche Benutzeroberflächen und Simulationsumgebungen verwendet wurden.

MPlabSIM PDS-PIC
Geschäftsleitung *
Maus
Menüsystem
Hotkeys
durch das Umgebungsmodell
ja
ja
ja
Nein
ja
ja
ja
ja
Haltepunkte
an der Adresse des ausführbaren Codes
durch Registerinhalt
wenn Sie den Wert des Ausdrucks ändern
unter einer logischen Bedingung
ja
ja
Nein
Nein
ja
ja
ja
ja
Simulierte Ereignisse
synchron
asynchron
zeitliche Auflösung
ja
Nein
4 Befehlszyklen
Ja
Ja
1 Befehlszyklus
Prozessorressourcen
Zurücksetzen
Unterbrechen Sie
Timer0
Timer1
Timer2
CCP1
CCP2
PWM1 / 2
PSP
Ssp
I2C
SCI (USART)
Eeprom
ADC
Vergleicher
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 Sicherheitssequenz
nur Verzögerungen und Register
registriert nur
registriert nur
Frequenzkonstante
nur Verspätungen
Völlig
Völlig
synchron / asynchron
synchron / asynchron
Völlig
vollständig
vollständig
vollständig
synchron / asynchron
Nur Register und Interrupt-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 äußerer Einflüsse
Einstellen der Eingangs-E / A-Port-Sollwerte
direkter eintrag in register
zyklische Effekte
asynchrone Effekte
Beschreibung (Einstellen der Auswirkungen) der Umgebung algorithmisch
externe analoge Signale
nur synchron (entsprechend der Befehlszyklusnummer)
ja
ja
die Beziehung zwischen der Eingabe und der Schaltfläche im entsprechenden Dialogfeld
Nein
Nein
synchron / asynchron
ja
ja
ja
ja
ja
Zusätzliche Funktionen
zurücklaufen (backtrace)
Programmcode-Leistungsanalyse (Profiler)
Grafikdisplay-Funktionen
Geschwindigkeit **
Nein

Nein


Nein

400 Teams / Sek
ja

ja


ja

100.000 Teams / Sek

* MPlabSIM verwendet das Menü als zusätzliche Eingabe von Steuerbefehlen für den Simulationsprozess über die Leitung, mit der Möglichkeit, lineare Befehlssequenzen zu speichern und auszuführen. Um beispielsweise den Inhalt des Registers zu ändern, müssen Sie die folgenden Aktionen ausführen:

- Wählen Sie im Menü den Bereich "WINDOWS". - Wählen Sie im Untermenü die Option "MODIFY". - Wählen Sie "what" (STACK, DATA oder CODE) (in diesem Fall "DATA"), das geändert werden soll. - Geben Sie die Adresse an. - Geben Sie den neuen Wert ein. - Bestätigen Sie die Eingabe In der Dump-Datei der Register-Datei 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 durch Drücken von zwei Tasten ändern. Es ist genauso einfach, alle anderen Aktionen zum Debuggen des Programms auszuführen.

** Verwenden Sie das Beispiel aus dem MPLAB-sim-Paket für 16c54 für die von MICROCHIP empfohlene P90 / 16RAM-Konfiguration.

Ein offensichtliches Merkmal von Software-Simulatoren ist die Tatsache, dass die Ausführung von Programmen, die in den Simulator geladen werden, auf einer Zeitskala erfolgt, die sich von der tatsächlichen unterscheidet. Der niedrige Preis und die Möglichkeit zum Debuggen, auch ohne ein Debugging-Gerätelayout, machen Software-Simulatoren jedoch zu einem sehr effektiven Debugging-Tool. Unabhängig davon 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 Debugging-Funktionen zu erstellen:

  • 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 Monitorprogramm muss mit einem externen Computer oder einem passiven Terminal zusammenarbeiten, auf dem der Debugging-Prozess visualisiert und gesteuert wird. Wir wiederholen, dass Debug-Monitore denselben Prozessor verwenden, der sich bereits auf dem Board des Benutzers befindet. Der Vorteil dieses Ansatzes liegt in den 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 belegt eine bestimmte Menge an Speicher, unterbricht den seriellen Kanal. Die Menge der umgeleiteten Ressourcen hängt von den Fähigkeiten des Monitorentwicklers ab. In letzter Zeit sind Produkte auf den Markt gekommen, die praktisch keine Hardwareressourcen des Prozessors belegen. Sie werden weiter unten im Abschnitt "ROM-Emulatoren" beschrieben.

Entwicklungsboards

Entwicklungsplatinen oder Evaluierungsplatinen (Evaluation Boards), wie sie in der ausländischen Literatur allgemein genannt werden, sind die ursprünglichen Designer für das Prototyping von Anwendungssystemen. Kürzlich hat der Hersteller mit der Veröffentlichung eines neuen Modells des Kristall-Mikrocontrollers zwangsläufig die entsprechende Entwicklungsgebühr freigegeben. Hierbei handelt es sich normalerweise um eine Leiterplatte mit einem darauf installierten Mikrocontroller und allen erforderlichen Standardbändern. Auf dieser Karte stellen sie auch Kommunikationsverbindungen mit einem externen Computer her. In der Regel gibt es auch ein freies Feld zum Mounten von Benutzeranwendungsschemata. Manchmal gibt es ein fertiges Layout für die Installation zusätzlicher Geräte, die vom Unternehmen empfohlen werden. Zum Beispiel ROM, RAM, LCD-Display, Tastatur, ADC usw. Zusätzlich zu Schulungen oder Mockups wurde es vorteilhaft (Zeitersparnis), solche benutzermodifizierten Karten als Einzelkarten-Controller zu verwenden, die in einige Serienprodukte eingebettet sind (5..20 Stk.). ).

Für mehr Komfort sind Entwicklungsboards auch mit dem einfachsten Debugging-Tool ausgestattet, das auf einem Debug-Monitor basiert. Hierbei haben sich jedoch zwei unterschiedliche Ansätze herauskristallisiert: Der eine wird für Mikrocontroller mit externem Bus und der zweite für Mikrocontroller ohne externen Bus verwendet.

Im ersten Fall wird der Debug-Monitor von der Firma in Form eines ROM-Chips geliefert, der in einen speziellen Sockel auf der Entwicklungsplatine gesteckt wird. Die Karte verfügt auch über RAM für Benutzerprogramme und einen Kommunikationskanal mit einem externen Computer oder Terminal. Ein Beispiel hierfür ist die Intel-Entwicklungsplatine für den 8051-Mikrocontroller.

Im zweiten Fall verfügt die Entwicklungsplatine ü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 Debugging-Unterprogramme des Monitors werden an den richtigen Stellen eingefügt. Dann wird ein Probelauf durchgeführt. Um Korrekturen am Programm vorzunehmen, muss der Benutzer das ROM löschen und neu aufzeichnen. Das fertige Anwendungsprogramm wird aus dem Debugging erhalten, indem alle Aufrufe der Monitorfunktionen und des Debugging-Monitors selbst entfernt werden. Beispiele hierfür sind Microchips Entwicklungsboards für ihre PIC-Controller. Das gleiche Prinzip gilt für die Debugging-Karten des Philips-Mikrocontrollers 80С750 oder des Atmel 89C2051.

Es ist wichtig zu beachten, dass ein Plus für den Monitor, manchmal werden Entwicklungsboards auch mit Debugging-Programmen vervollständigt, die auf einem externen Computer in Verbindung mit dem Monitor ausgeführt werden. Diese Programme sind in letzter Zeit erheblich komplexer geworden und verfügen häufig über hochprofessionelle Debugging-Funktionen, z. B. einen Debugger-Simulator oder verschiedene Elemente einer rein integrierten Entwicklungsumgebung. Die mitgelieferten Kits können auch angewandte Programme enthalten, die in der Praxis am häufigsten vorkommen.

Die vom Development Board plus Monitor-Kit bereitgestellten Debugging-Funktionen sind sicherlich nicht so vielseitig wie die Funktionen des In-Circuit-Emulators, und einige der Mikroprozessor-Ressourcen im Debugging-Prozess sind so ausgewählt, dass der Monitor funktioniert. In vielen Fällen ist jedoch die Verfügbarkeit eines vollständigen Satzes vorgefertigter Software- und Hardwaretools entscheidend, mit denen Sie ein Anwendungssystem ohne Zeitverlust installieren und debuggen können. Besonders 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 Hardware-Tool, das das Ersetzen des ROM auf der debuggten Karte und das Ersetzen des RAM an seiner Stelle ermöglicht, in das das Programm über einen der Standardkommunikationskanäle vom Computer heruntergeladen werden kann. Dieses Gerät ermöglicht es dem Benutzer, wiederholte Zyklen der Neuprogrammierung des ROM zu vermeiden. Das Emulator-ROM ist nur für Mikrocontroller sinnvoll, die auf externen Programmspeicher zugreifen können. Dieses Gerät ist in Komplexität und Kosten mit den Entwicklungsgebühren vergleichbar. Es hat einen großen Vorteil: Vielseitigkeit. Der ROM-Emulator kann mit allen Arten von Mikrocontrollern arbeiten.

Frühe ROM-Emulatoren durften das Programm nur mit einem allgemeinen Reset laden, starten und stoppen. Dann kamen anspruchsvolle Modelle mit hardwarebasierter Trace-Generierung, wenn eine bestimmte Adresse für das Oszilloskop erreicht wurde. Emulierter Speicher in solchen Produkten war zum Anzeigen und Ändern verfügbar, aber eine sehr wichtige Steuerung der internen Steuerregister des Mikrocontrollers war bis vor kurzem unmöglich.

Es gibt jedoch Modelle von intelligenten ROM-Emulatoren, mit denen Sie in den Mikrocontroller auf der Benutzerplatine „hineinschauen“ und im Allgemeinen für die Debugging-Steuerung einem In-Circuit-Emulator ähneln können. Firm Cactus präsentiert sogar seinen eigentlich intelligenten ROM-Emulator, als In-Circuit-Emulator mehrerer Mikroprozessoren ist es so unmöglich, die Arbeit mit beiden zu unterscheiden. Tatsächlich wird der Prozessor hier nicht ausgetauscht, sondern der auf dem Board des Benutzers wird verwendet.

Intelligente ROM-Emulatoren sind ein Hybrid aus einem herkömmlichen ROM-Emulator, einem Debug-Monitor und schnellen Bus-Switch-Schaltkreisen. Dies erzeugt einen Effekt, als ob der Debug-Monitor auf dem Board des Benutzers installiert wäre und gleichzeitig keine Hardwareressourcen vom Mikrocontroller beansprucht, mit Ausnahme eines kleinen Bereichs von Softwareschritten, etwa 4 KB. Beispielsweise wurde ein solches Gerät von der Firma Phyton für alle bestehenden und zukünftigen Mikrocontroller entwickelt, die einen Kern aus 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.

Integrierte Entwicklungsumgebungen gehören streng genommen nicht zu den Debugging-Tools, es wäre jedoch falsch, diese Klasse von Software-Tools zu ignorieren, die den Prozess der Entwicklung und des Debugs von Mikroprozessorsystemen erheblich vereinfachen und beschleunigen würden.

In der traditionellen Herangehensweise ist die Anfangsphase beim Schreiben eines Programms wie folgt aufgebaut:

  • Der Quelltext wird mit einem beliebigen Texteditor eingegeben. Nach Abschluss des Sets wird die Arbeit mit dem Texteditor gestoppt und der Cross-Compiler gestartet. Ein neu geschriebenes Programm enthält in der Regel Syntaxfehler, die der Compiler an die Operator-Konsole meldet.
  • Der Texteditor wird neu gestartet, und der Bediener muss die erkannten Fehler suchen und beseitigen, während die vom Compiler angezeigten Fehlermeldungen nicht mehr sichtbar sind, da der Bildschirm von einem Texteditor belegt 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, kann selbst diese Anfangsphase viel Zeit und Mühe des Programmierers erfordern und die Begeisterung des Entwicklers erheblich verringern.

Um viel Routine zu vermeiden und die Effizienz des Entwicklungs- und Debugging-Prozesses deutlich zu verbessern, lassen sich die sogenannten und schnell an Popularität gewinnen. Entwicklung einer integrierten Entwicklungsumgebung (Shells) (Integrated Development Environment, IDE).

In der Regel können Sie in einer "guten" integrierten Umgebung verfügbare Debugging-Tools (In-Circuit-Emulator, Software-Simulator, Programmierer) unter einem Dach zusammenfassen und gleichzeitig sicherstellen, dass der Programmierer mit den Texten von Programmen im "Turbo" -Stil arbeitet.

Das Arbeiten in einer integrierten Umgebung bietet dem Programmierer:

  • Die Möglichkeit, den integrierten Texteditor für mehrere Dateien zu verwenden, der sich speziell auf die Arbeit mit dem Quellcode von Programmen konzentriert.
  • Die Diagnose der beim Kompilieren erkannten Fehler und der zur Bearbeitung verfügbare Quellcode des Programms werden gleichzeitig in einem Mehrfenstermodus angezeigt.
  • Fähigkeit, parallele Arbeiten 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 von den Compilern verwendeten Optionen und die Liste der Projektquelldateien werden in den Dialogmenüs festgelegt und im Projekt gespeichert, sodass nicht mehr mit unbequemen Batchdateien gearbeitet werden muss.
  • Es werden nur Module neu kompiliert, die gerade bearbeitet werden.
  • Möglichkeit, das zu debuggende Programm in die vorhandenen Debugging-Tools zu laden und mit ihnen zu arbeiten, ohne die Shell zu verlassen.
  • Möglichkeit, eine Verbindung mit der Shell von fast jeder Software herzustellen.

In letzter Zeit sind die Funktionen integrierter Entwicklungsumgebungen Teil der Software-Schnittstellen der fortschrittlichsten Emulatoren und Debugger-Simulatoren geworden. Diese Funktionalität in Kombination mit einer benutzerfreundlichen Oberfläche kann das Leben des Entwicklers erheblich erleichtern und seine Arbeit beschleunigen.