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

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

Zu den wichtigsten Debugging-Tools gehören:

  • In-Circuit-Emulatoren.
  • Software-Simulatoren.
  • Entwicklungsgebühren (Bewertungsgebühren).
  • Debugging-Monitore.
  • Emulatoren ROM.

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

In-Circuit-Emulatoren.

In-Circuit-Emulator - Software-Hardware, die in der Lage ist, einen emulierten Prozessor in einem realen Schema zu ersetzen. In-Circuit-Emulator ist das leistungsstärkste und universellste Debugging-Tool.

In der Tat macht ein "guter" In-Circuit-Emulator den Prozess des fehlerhaften Controllers transparent; leicht zu kontrollieren, beliebig zu verwalten und nach dem Willen des Entwicklers zu modifizieren.

Funktionell sind In-Circuit-Emulatoren in Schnittstellen mit einem externen Computer (normalerweise IBM PC) unterteilt und funktionieren autonom. Stand-alone-In-Circuit-Emulatoren haben individuelle Rechenressourcen, Input-Output-Einrichtungen, benötigen für ihren normalen Betrieb kein Andocken an irgendwelche externen Computereinrichtungen, aber dafür muss der Benutzer entweder einen wesentlich höheren Preis oder reduzierte Funktions- und Servicefähigkeiten im Vergleich zu ähnlichen bezahlen Modelle, die mit dem IBM PC verbunden sind.

Normalerweise erfolgt das Andocken des In-Circuit-Emulators an das getestete System mit einem Emulationskabel mit einem speziellen Emulationskopf. Der Emulationskopf wird anstelle des Mikrocontrollers in das zu debuggende System eingefügt. Wenn der Mikrocontroller nicht aus dem debugged System entfernt werden kann, ist die Verwendung des Emulators nur möglich, wenn dieser Mikrocontroller einen Debugging-Modus hat, in dem alle seine Anschlüsse in dem dritten Zustand sind. In diesem Fall wird ein spezieller Adapter-Clip verwendet, um den Emulator zu verbinden, der direkt mit den Ausgängen des emulierten Mikrocontrollers verbunden ist.

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

  • Debugger.
  • Mikrocontroller-Emulationsknoten;
  • Emulationsspeicher;
  • Teilsystem der Haltepunkte;

Fortgeschrittenere Modelle können zusätzlich enthalten:

  • Haltepunktprozessor;
  • der Indikator;
  • Profiler (Code-Effizienz-Analysator);
  • ein Echtzeit-Timer;
  • Software und Hardware, die die Möglichkeit bietet, die Ressourcen des emulierten Prozessors "on the fly" zu lesen und zu ändern, d. h. im Prozess der Ausführung des Benutzerprogramms in Echtzeit;
  • Software und Hardware, 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 Debugger. Die Zusammensetzung und das Volumen der Information, die durch die Eingabe-Ausgabe-Mittel läuft, ihre Zugänglichkeit 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 Debug-Programm in den Systemspeicher.
  • Ausgabe des Status und des Inhalts aller Register und des Speichers an den Monitor und, falls erforderlich, Modifikation dieser.
  • Management des Emulationsprozesses.

Leistungsfähigere Debugger, meist High-Level (Debugger) genannt, erlauben außerdem:

  • um symbolisches Debugging durchzuführen, weil der Debugger die Adressen aller Zeichenvariablen, Arrays und Strukturen "kennt" (unter Verwendung spezieller Informationen, die vom Compiler bereitgestellt werden). Gleichzeitig kann der Benutzer mit geeigneteren symbolischen Namen für die Person arbeiten, ohne sich die Adressen merken zu müssen.
  • Steuern und analysieren Sie nicht nur den disassemblierten Text, sondern auch den Quellcode des Programms in einer höheren Sprache und sogar mit Ihren eigenen Kommentaren.

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

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

Emulationsspeicher

Das Vorhandensein von Emulationsspeicher macht es möglich, ihn im Debugging-Prozess anstelle von ROM im debugged-System zu verwenden und darüber hinaus das Programm zu debuggen, ohne ein reales System oder sein Layout zu verwenden. Wenn Sie Änderungen am zu debuggenden Programm vornehmen müssen, 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, die es dem Benutzer ermöglichen, das ROM für Emulationsspeicher nicht nur vollständig, sondern auch in Blöcken (in einigen Modellen kann die minimale Blockgröße ein Byte erreichen) in der vom Benutzer definierten Reihenfolge zu "ersetzen". Um dies zu tun, muss der Benutzer lediglich die Verteilung von Datenspeicher und Programmspeicher einstellen, gemäß denen der Prozessor sowohl auf den Inhalt des ROMs in dem zu testenden 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 logischer Analysator, der synchron mit dem Prozessor arbeitet und den Fluss ausführbarer Anweisungen und den Zustand der ausgewählten externen Signale festlegt. Es gibt Modelle von In-Circuit-Emulatoren, die es ermöglichen, nicht nur externe Signale zu verfolgen, sondern auch die internen Ressourcen des Mikrocontrollers, beispielsweise Register. Solche Emulatoren verwenden spezielle Versionen von Mikrocontrollern (Emulationskristallen).

Prozessor von Haltepunkten

Der Prozessor von Haltepunkten ermöglicht es Ihnen, die Ausführung des Programms zu stoppen oder andere Aktionen auszuführen, zum Beispiel den Tracer zu starten oder zu stoppen, wenn die benutzerdefinierten Bedingungen erfüllt sind. Im Gegensatz zum Mechanismus regulärer Breakpoints ermöglicht der Breakpoint-Prozessor das Erstellen und Überwachen von Bedingungen nahezu beliebiger Komplexität, und der emulierte Prozess wird nicht von der Echtzeitskala ausgegeben.

Profiler

Der Profiler (andernfalls der Programmcode-Effizienzanalysator) ermöglicht Ihnen, die folgenden Informationen aus dem Lauf des debugged-Programms zu erhalten:

  • Anzahl der Aufrufe an verschiedene Programmteile;
  • Zeitaufwand für die Ausführung verschiedener Teile des Programms.

Die Analyse der vom Profiler bereitgestellten statistischen Informationen macht es einfach, "tote" oder überlastete Programmabschnitte zu identifizieren und als Ergebnis die Struktur des zu debuggenden Programms zu optimieren.

Integrierte Entwicklungsumgebung

Eine Software-Suite, die alle Phasen der Softwareentwicklung vom Schreiben des Quellcodes des Programms bis zum Kompilieren und Debuggen unterstützt und eine einfache und schnelle Interaktion mit anderen Tools (Software-Debugger-Simulator und Programmierer) ermöglicht.

Die Anwesenheit des eingebauten Editors, des eingebauten Projektmanagers und des Kontrollsystems in der Programm-Shell macht es möglich, die Arbeit des Entwicklers wesentlich zu vereinfachen und ihn vor einer Menge routinemäßiger Aktionen zu bewahren. Für den Entwickler ist die Grenze zwischen dem Schreiben eines Programms, dem Editieren und dem Debuggen verschwommen. Der Übergang von der Bearbeitung des Quelltextes zum Debugging und umgekehrt erfolgt "transparent" und synchron mit der Aktivierung der entsprechenden Fenster startet der Projektmanager bei Bedarf automatisch die Übersetzung und aktiviert die entsprechenden Fenster der Programmoberfläche.

Genauso einfach ist der Übergang zum Debugging eines Projekts mit Hilfe eines vorhandenen Debugger-Simulators oder zur Weiterführung der Firmware eines gut funktionierenden Programms.

Einige Modelle von In-Circuit-Emulatoren können Benutzern weitere zusätzliche Funktionen bieten. Unter ihnen bemerken wir einen, obwohl ziemlich spezifisch, aber in einer Anzahl von Fällen von grundlegender Bedeutung: die Möglichkeit, Multi-Emulator-Komplexe zu konstruieren, die für das Debugging von Multiprozessorsystemen notwendig sind. Ein besonderes Merkmal eines solchen Komplexes ist die Möglichkeit der synchronen Steuerung (von einem Computer) durch mehrere Emulatoren.

Im Allgemeinen können verschiedene Modelle von In-Circuit-Emulatoren dem Benutzer die Möglichkeit bieten, den Betrieb der zu debuggenden Geräte mit verschiedenen Einschränkungen zu überwachen und zu steuern. Zum Beispiel kann es eine inkorrekte Verarbeitung von Interrupts in einem Schritt-für-Schritt-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 beschränken, was in erster Linie 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 werden am Beispiel des PICE-51-Modells erläutert.

PICE-51

In-Circuit-Emulator von 8-Bit-Mikrocontrollern der Familie 8051

PICE-51 - ein Emulator der neuen Generation, der mithilfe neuer Technologien für die Entwicklung von Hardware und Software entwickelt wurde.

Die Verwendung von programmierbaren Arrays hoher Kapazität hat es ermöglicht, die Größe des Emulators ohne Beeinträchtigung seiner Funktionalität drastisch zu reduzieren, Abweichungen in den elektrischen und Frequenzeigenschaften des Emulators von den Eigenschaften des emulierten Prozessors zu minimieren und dadurch eine maximale Emulationsgenauigkeit bei Frequenzen bis zu 30 MHz bei Versorgungsspannungen von 3,3 V zu erreichen bis zu 5V.

Neustartfähige Hardware-Struktur des Emulators bietet Emulation von fast allen Mikrocontrollern der Familie 8051 als inländische Produktion und Firmen: Intel, Philips, Siemens, Atmel, Dallas, Temic, OKI, AMD, MHS und andere.

Eine leistungsfähige Programmierschnittstelle in der Windows- Umgebung ist eine integrierte Entwicklungsumgebung, die alle Phasen der Softwareentwicklung vom Schreiben des Quellcodes des Programms bis zum Kompilieren und Debuggen unterstützt. Das Emulator-Unterstützungsprogramm zielt darauf ab, Programme in einer Hochsprache mit dem Quelltext zu debuggen.

Der Emulator besteht aus einer Hauptplatine mit einer Größe von 80x76mm, einem Ersatzadapter für einen bestimmten Prozessor und einem austauschbaren Emulationskopf für eine bestimmte Art von Gehäuse. Auf dem Mainboard implementiert: ein Tracer, ein Prozessor Breakpoints . Die Adapterplatine 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. Power-Emulator wird von der Stromversorgung + 5V, 0,5A oder direkt von dem Gerät durchgeführt, das debugged wird. Kommunikation mit dem Computer - auf einem galvanisch getrennten RS-232C- Kanal mit einer Geschwindigkeit von 115 kb ..

GERÄTE-MERKMALE

  • Präzise Emulation - keine Einschränkungen bei der Nutzung der Ressourcen des Mikrocontrollers durch das Anwenderprogramm.
  • Bis zu 256K emulierten Programmspeicher und Daten. Unterstützung für ein banked Speichermodell. Die Zuweisung von Speicher zwischen dem Emulator und dem Gerät des Benutzers mit einer Genauigkeit von 1 Byte.
  • Bis zu 512K Hardware Breakpoints beim Zugriff auf Programm- und Datenspeicher.
  • Hardware-Unterstützung für das Debuggen von Programmen in Hochsprachen.
  • Verfolgen Sie 8 beliebige externe Signale.
  • 4 Synchronisationsausgaben des Benutzergeräts.
  • Ein Echtzeit-Tracer mit einem Puffer von 16K bis 64K in 64-Bit-Frames mit On-the-Fly-Zugriff. Trace-Adresse, Daten, Steuersignale, Echtzeituhr und 8 externe Benutzersignale.
  • Programmierbare Ablaufverfolgung.
  • Ein Hardware-Haltepunktprozessor mit der Fähigkeit, eine komplexe Emulationsstoppbedingung für eine Kombination aus Adresse, Daten, Steuersignalen, 8 externen Signalen, einem Echtzeittimer, Ereigniszählern und einem Verzögerungszeitgeber anzugeben.
  • Vier komplexe Breakpoints, die unabhängig voneinander oder in Kombinationen von AND / OR / IF-THEN-Bedingungen verwendet werden können.
  • 48-Bit-Echtzeit-Timer
  • Transparente Emulation - Zugriff auf den emulierten Speicher, Breakpoints, den Prozessor von Breakpoints, den Trace-Buffer, den Echtzeit-Timer.
  • Der gesteuerte Taktgenerator für den emulierten Prozessor. Die Fähigkeit, die Taktfrequenz stufenlos von 500 kHz auf 40 MHz zu ändern.
  • Galvanisch vom Computer-Kommunikationskanal RS-232C mit einem Wechselkurs von 115 KBod isoliert.
  • Eingebautes Selbstdiagnosesystem des Emulators.

EIGENSCHAFTEN DER SOFTWARE

  • Die Software ist für den Betrieb in einer Windows-Umgebung auf IBM-kompatiblen Computern mit 386/486 / Pentium-Prozessoren ausgelegt.
  • Der eingebaute Multifenster- Editor ist zum Schreiben von Programmquellcode gedacht. Der Editor unterstützt Operationen mit Textblöcken, Suchen / Ersetzen, Farbauswahl von Assembler und C-Syntax;
  • Der integrierte Projektmanager bietet eine automatische Kompilierung von Programmen. Alle Optionen werden in einem Dialogfeld festgelegt. Der Übergang vom Bearbeiten des Quellcodes zum Debuggen und umgekehrt erfolgt "transparent", d.h. Der Projektmanager startet bei Bedarf automatisch die Kompilierung des Projekts;
  • PICE-51 bietet symbolisches Debugging und Debugging für den Quelltext von Programmen, die mit Hilfe der folgenden Compiler erstellt wurden:
    • Assembler ASM51 von Intel ;
    • Assembler MCA-51 Firma Fiton / MicroCosm ;
    • der PL / M- Compiler von Intel ;
    • Assembler und C-Compiler von IAR Systems ;
    • Assembler und C-Compiler von Avocet Systems Inc./HiTech ;
    • Keith Assembler und Compiler der Firma Keil Software Inc. ;
  • Automatisches Speichern und Laden von Hardware-Konfigurationsdateien, Interface- und Debug-Optionen. Die Konfigurationsdateien sind mit dem Simulator PDS-51 kompatibel. Die Portabilität von Projekten zwischen dem Emulator PICE-51 und dem Simulator PDS-51 wird bereitgestellt;
  • Möglichkeit, Farben, Schriftarten und andere Einstellungen für alle Fenster gleichzeitig und für jedes Fenster separat anzupassen;

Der Emulator ist mit einer gedruckten Bedienungsanleitung und einem kontextabhängigen elektronischen Handbuch ausgestattet , in dem die Funktionsweise, Befehle, Menüs und Hotkeys beschrieben sind.

Die Struktur des Emulators PICE-51

Optionen für den PICE-51 Emulator

Emulierter Mikrocontroller Emulation des internen Programmspeichers Packungsinhalt
Baseboard Austauschbarer Adapter Emulationskopf
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;
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 : 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 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 Mikrocontroller der Familie 8051

Modell, Lieferant EMUL-51 Nohau Corporation USP-51 Signum Systeme iceMASTER-8051 MetaLink PICE-5 Phyton1
8051 Familie von emulierten Mikrocontrollern Alle bekannten Sorten Alle wichtigen Sorten Alle wichtigen Sorten Alle wichtigen Sorten
Maximale Emulationsfrequenz 42 MHz 40 MHz 24 MHz 33 MHz
Maximale Menge an emuliertem Speicher 320 K 256K 128K 512K
Die Möglichkeit, Speicher zwischen dem Emulator und dem Benutzergerät neu zuzuweisen 4K Blöcke Blöcke von 256 Bytes Blöcke von 16 Bytes Bis zu einem Byte
Trace-Puffer Bis zu 16K 48-Bit-Frames Bis zu 32K Frames mit 80 Bit Bis zu 4K 48-Bit-Frames Bis 64K 64-Bit-Frames
Greifen Sie "on the fly" auf den emulierten Speicher und Tracer zu Ja. Ja. Ja. Ja.
Schnittstelle zum Computer Die Karte im ISA-Steckplatz 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, Kabel 2 Meter, PODs Gehäuse 260x260x64 mm, Kabel, POD Gehäuse 178x140x25 mm, Kabel, POD Der gesamte Emulator befindet sich im Emulationskopf mit der Größe 80x76x50 mm
Der Preis für eine vergleichbare Konfiguration der Lieferung: Unterstützung 80С51, 25 MHz, 128K RAM, die Tracer-Puffer Volumen 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

Simulator - ein Software-Tool, das den Betrieb des Mikrocontrollers und seines Speichers simulieren kann. Typischerweise enthält der Simulator in seiner Zusammensetzung:

  • Debugger;
  • Modell von CPU und Speicher.

Zu den fortgeschritteneren Simulatoren gehören Modelle eingebauter Peripheriegeräte wie Timer, Ports, ADCs und Interrupt-Systeme.

Der Simulator sollte in der Lage sein, Programmdateien in allen gängigen Formaten zu laden, Informationen über den Status der Ressourcen des simulierten Mikrocontrollers vollständig anzuzeigen und Möglichkeiten zur Simulation der Ausführung des heruntergeladenen 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, hat der Benutzer die Möglichkeit, es in schrittweisen oder kontinuierlichen Modi auszuführen, bedingte oder unbedingte Haltepunkte einzustellen, den Inhalt der Speicherzellen und Register des simulierten Mikroprozessors zu steuern und frei zu modifizieren. Mit Hilfe des Simulators können Sie schnell die Logik der Programmausführung und die Korrektheit arithmetischer 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 Simulationsmodelle können eine Anzahl von zusätzlichen Softwaretools enthalten, wie zum Beispiel: eine externe Umgebungsschnittstelle, eine integrierte integrierte Entwicklungsumgebung.

In einem realen System liest der Mikrocontroller normalerweise Informationen von den angeschlossenen externen Vorrichtungen (Sensoren), verarbeitet diese Informationen und gibt Steueraktionen an die Aktuatoren aus. Um den Betrieb des Sensors in einem Simulator zu simulieren, der keine Schnittstelle der externen Umgebung aufweist, ist es erforderlich, den aktuellen Zustand des Modells des Peripheriegeräts, mit dem der Sensor verbunden ist, in dem realen System manuell zu ändern. Wenn zum Beispiel beim Empfangen eines Bytes über eine serielle Schnittstelle ein bestimmtes Flag gespannt wird und das Byte selbst in ein spezifisches Register fällt, müssen beide dieser 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 erzeugen 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 veranschaulicht.

PDS-PIC

Debugger-Simulator für die Entwicklung und das Debugging von Programmen auf Basis von Mikrocontrollern PIC16 / PIC17.

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

Der Simulator hat:

  • Eingebauter Multifenster-Editor zum Schreiben von Programmquellcode. Der Editor unterstützt Operationen mit Textblöcken, Suchen / Ersetzen, Farbauswahl von Syntaxen der Assemblersprache;
  • Ein integrierter Projektmanager, der die automatische Kompilierung von Programmen unterstützt, die für den Makroassembler PASM-PIC von Fiton und für den Makroassembler MPASM von Microchip geschrieben wurden.
  • Alle Assembler-Optionen sind in komfortablen Dialogen eingestellt. Der Übergang vom Bearbeiten des Quellcodes zum Debuggen und umgekehrt erfolgt "transparent", d.h. Der Projektmanager startet den Assembler bei Bedarf automatisch;
  • Breite Möglichkeiten zum Debuggen von Programmen: Verfolgen der Ausführung des Programms anhand seines Quelltextes, Anzeigen und Ändern der Werte beliebiger Variablen, integrierter Code-Effizienz-Analysator, Bedingungsbruchpunkte und Zugriff auf Speicherzellen, Anzeigen des Stapels von Unterprogrammaufrufen, eingebauter Assembler, genaues Timing und vieles andere;
  • Die Fähigkeit, das Programm auf eine große Anzahl von Schritten sowie im kontinuierlichen Modus "zurück" auszuführen. In diesem Fall wird der Zustand des Mikrocontrollermodells vollständig wiederhergestellt;
  • Genaues Modell des Verhaltens von Mikrocontrollern. Es simuliert den Betrieb aller im Mikrocontroller eingebauten Peripheriegeräte: Timer, ADCs, Interrupt - Systeme, Ports usw .;
  • Entwickelte Tools zur Modellierung der "externen Umgebung", d. H. Geräte an den Mikrocontroller angeschlossen. Es ist einfach, verschiedene periodische und nichtperiodische externe Signale an den Füßen des Mikrocontrollers einzustellen, um den Betrieb externer Logik zu simulieren. Mit Hilfe des eingebauten grafischen Displays können Sie verschiedene Indikatoren visuell anzeigen, Grafiken erstellen, die Tastatur simulieren;
  • System speichern Konfigurationsfenster und Einstellungen. Es ist möglich, eine unbegrenzte Anzahl von Konfigurationsdateien zu speichern und wiederherzustellen.
  • Möglichkeit, Farben und Schriftarten und andere Parameter für alle Fenster gleichzeitig und für jedes Fenster getrennt anzupassen;
  • Das kontextabhängige Hilfesystem In jedem Menü, Fenster oder Dialog können Sie Hilfe zu diesem Menü, Fenster oder Dialog erhalten;
  • PDS-PIC funktioniert in einer Windows-Umgebung.

Weitere Details des Simulators sind in der Tabelle dargestellt, die aus den Ergebnissen einer vergleichenden Analyse zweier Simulatoren zusammengestellt wurde: MPlabSIM - Firma Microchip und PDS-PIC - Firma Fiton. Die Hauptmerkmale und Unterschiede von MPlabSIM und PDS-PIC beruhen auf der Tatsache, dass sie konzeptionell unterschiedliche Benutzeroberflächen und Umgebungen für die Simulation verwendeten.

MPlabSIM PDS-PIC
Führung *
Maus
Menüsystem
"Hotkeys"
durch das Modell der äußeren Umgebung
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
wenn die logische Bedingung erfüllt ist
ja
ja
Nein
Nein
ja
ja
ja
ja
Simulierte Ereignisse
synchron
asynchron
Zeitauflösung
ja
Nein
4 Befehlszyklen
Ja.
Ja.
1 Zyklus von Befehlen
CPU-Ressourcen
Zurücksetzen
Unterbrechen
Timer0
Timer1
Timer2
CCP1
CCP2
PWM1 / 2
PSP
SSP
I2C
SCI (USART)
EEPROM
ADC
Komparatoren
Vref
RC-Generator
ADC-Modul
ohne Verzögerung
voll
nur synchron
nur synchron
voll
voll
voll
ohne hohe Auflösung
nur synchron
voll
nur registriert
Zeitverzögerungen
ohne Schutzsequenz
nur Verzögerungen und Register
nur registriert
nur registriert
d ist eine konstante Frequenz
nur Verzögerungen
Komplett
Komplett
synchron / asynchron
synchron / asynchron
Komplett
voll
voll
voll
synchron / asynchron
registriert und unterbricht nur Flags
nur registriert
nur registriert
voll
voll
voll
voll
Die Frequenz wird unabhängig von der Frequenz der Uhr eingestellt
Register für analoge Eingänge
Modellierung von äußeren Einflüssen
Eingabewerte am E / A-Port einstellen
Direktes Schreiben in Register
zyklische Effekte
asynchrone Effekte
Beschreibung (Zuordnung von Einflüssen) der äußeren Umgebung algorithmisch
externe analoge Signale
nur synchron (durch die 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
Rückverfolgung
Code-Effizienz-Analysator (Profiler)
die Fähigkeit, Prozesse grafisch darzustellen
Geschwindigkeit **
Nein

Nein


Nein

400 Teams / Sekunde
ja

ja


ja

100.000 Teams / Sekunde

* MPlabSIM verwendet das Menü als Add-On zur Eingabe von Befehlen zur Steuerung des Simulationsprozesses mit der Möglichkeit, lineare Befehlssequenzen zu speichern und auszuführen. Um beispielsweise den Inhalt eines Registers zu ändern, müssen Sie Folgendes tun:

- Wählen Sie "WINDOWS" im Menü - wählen Sie die Option "MODIFY" im Untermenü - wählen Sie "what" (STACK, DATA oder CODE) (in diesem Fall "DATA") werden sich ändern - geben Sie die Adresse - geben Sie einen neuen Wert - bestätigen Sie die Eingabe In diesem Fall Im Register Dump-Fenster sehen Sie das Ergebnis der Änderung, aber im Fenster selbst können Sie nichts ändern (nur über das Menü - analoge Befehlszeile).

Mit PDS-PIC können Sie den Wert des Registers ändern, indem Sie zwei Tasten drücken. Es ist genauso einfach, alle anderen Debugging-Aktivitäten durchzuführen.

** Am Beispiel des MPLAB-SIM-Pakets für 16c54, wenn es auf der empfohlenen MICROCHIP-Konfiguration P90 / 16RAM 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 stattfindet. Der niedrige Preis, die Möglichkeit des Debuggens auch ohne ein Modell eines Debugging-Geräts, macht Software-Simulatoren zu einem sehr effektiven Mittel zum Debuggen. Unabhängig davon ist zu betonen, dass es eine ganze Klasse von Fehlern gibt, die nur mit Hilfe eines Simulators erkannt werden können.

Debug-Monitore

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

  • Laden von Anwendungscodes des Benutzers in den Speicher frei vom Monitor
  • Haltepunkte setzen
  • Starten und stoppen Sie das heruntergeladene Programm in Echtzeit
  • Übergeben Sie das Benutzerprogramm in Schritten
  • Anzeigen, Bearbeiten des Inhalts von Speicher- und Steuerregistern.

Das Überwachungsprogramm muss in Verbindung mit einem externen Computer oder einem passiven Terminal funktionieren, auf dem die Visualisierung und Steuerung des Debugging-Prozesses stattfindet. Lassen Sie uns wiederholen, dass Debug-Monitore diesen Prozessor verwenden, der bereits auf dem Board des Benutzers steht. Der Vorteil dieses Ansatzes besteht in sehr niedrigen Kosten, während gleichzeitig die Fähigkeit zum Debuggen in Echtzeit erhalten bleibt. Der Hauptnachteil ist die Umleitung von Mikrocontroller-Ressourcen zu Debug- und Kohärenzprozeduren, zum Beispiel: Der Monitor benötigt etwas Speicher, Interrupts und einen seriellen Kanal. Die Menge der abstrahierten Ressourcen hängt von der Art des Monitorentwicklers ab. In jüngster Zeit sind Produkte erschienen, die die Hardware-Ressourcen des Prozessors praktisch nicht belegen, sie werden nachstehend im Abschnitt "Emulator-ROM" beschrieben.

Entwicklungsboards

Development Boards, oder wie sie in der ausländischen Literatur heißen - Evaluation Boards (Evaluation Boards), sind Original-Designer für Prototyping-Anwendungssysteme. Vor kurzem hat der Hersteller mit der Freigabe eines neuen Modells eines Mikrocontroller-Chips eine entsprechende Entwicklungsgebühr zu zahlen. Normalerweise ist dies eine Leiterplatte mit einem Mikrocontroller und allen erforderlichen Standardverrohrungen. Stellen Sie auf dieser Karte auch Kommunikationsschemata mit einem externen Computer her. In der Regel gibt es auch ein freies Feld für die Installation von Benutzeranwendungen. Manchmal gibt es bereits eine Verdrahtung für die Installation zusätzlicher Geräte, die von der Firma empfohlen werden. Zum Beispiel, ROM, RAM, LCD-Display, Tastatur, ADC, usw. Zusätzlich zu pädagogischen oder Mock-up-Zwecke, solche benutzer-modifizierte Boards profitabel (Zeiteinsparung) als Single-Board-Controller in einigen wenigen Serienprodukten (5..20 PC integriert. ).

Entwicklungsboards sind außerdem mit dem einfachsten Debugging-Tool auf Basis des Debug-Monitors ausgestattet. Es ergaben sich jedoch zwei verschiedene Ansätze: 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 Debugging-Monitor von der Firma in Form eines ROM-Chips geliefert, der in eine spezielle Steckdose auf der Entwicklungskarte gesteckt wird. Die Karte hat auch RAM für Benutzerprogramme und einen Kommunikationskanal mit einem externen Computer oder Terminal. Ein Beispiel ist das Intel-Entwicklungsboard für den 8051-Mikrocontroller.

Im zweiten Fall hat das Entwicklungsboard eingebaute Schaltungen zum Programmieren des internen ROM des Mikrocontrollers, die von einem externen Computer gesteuert werden. In diesem Fall wird das Überwachungsprogramm zusammen mit den Anwendungscodes des Benutzers einfach in den Mikrocontroller-ROM geschrieben. Das Anwendungsprogramm sollte speziell vorbereitet sein: Die Aufrufe der Debugging-Subroutinen des Monitors werden an den notwendigen Stellen eingefügt. Dann wird ein Testlauf durchgeführt. Um Benutzer zu korrigieren, muss der Benutzer das ROM löschen und neu aufzeichnen. Ein vorgefertigtes Anwendungsprogramm wird von dem debuggten Programm erhalten, indem alle Aufrufe der Überwachungsfunktionen und des Fehlersuchmonitors selbst entfernt werden. Beispiele hierfür sind Microchip-Entwicklungskarten für ihre PIC-Controller. Das gleiche Prinzip gilt für Platinen zum Debugging von Mikrocontrollern 80S750 Philips oder 89C2051 Atmel.

Es ist wichtig zu beachten, dass zusätzlich zum Monitor, manchmal Entwicklungsboards auch mit Debugging-Programmen ausgestattet sind, die auf einem externen Computer in Verbindung mit einem Monitor laufen. Diese Programme sind in letzter Zeit merklich komplexer geworden und haben oft eine hochprofessionelle Reihe von Debugging-Funktionen, wie beispielsweise einen Debugger-Simulator oder verschiedene Elemente, die der reinen Form von integrierten Entwicklungsumgebungen eigen sind. Die mitgelieferten Kits können Programme angewandter Art enthalten, die in der Praxis am häufigsten anzutreffen sind.

Die Debugging-Funktionen, die vom Bundle "development plus monitor" bereitgestellt werden, sind sicherlich nicht so vielseitig wie die Fähigkeiten des In-Circuit-Emulators, und einige der Mikroprozessorressourcen werden während des Debuggens für den Monitor ausgewählt. Nichtsdestotrotz ist die Verfügbarkeit eines vollständigen Satzes von vorgefertigter Software und Hardware, die es Ihnen erlaubt, das Anwendungssystem ohne Zeitverlust zu installieren und zu debuggen, in vielen Fällen ein entscheidender Faktor. Vor allem, wenn man bedenkt, dass die Kosten für einen solchen Satz etwas niedriger sind als die Kosten für einen vielseitigen Emulator.

Emulatoren ROM.

Emulator-ROM - Firmware, die es Ihnen ermöglicht, das ROM auf der fehlerhaften Karte zu ersetzen und anstelle von RAM zu ersetzen, das vom Computer über einen der Standard-Kommunikationskanäle über einen Computer heruntergeladen werden kann. Diese Vorrichtung ermöglicht es dem Benutzer, mehrfache Umprogrammierungszyklen des ROM zu vermeiden. Der ROM-Emulator ist nur für Mikrocontroller sinnvoll, die auf externen Programmspeicher zugreifen können. Dieses Gerät ist in Komplexität und Kosten vergleichbar mit Entwicklungsboards. Es hat eine große Tugend: Universalität. Emulator ROM kann mit jedem Typ von Mikrocontroller arbeiten.

Frühe ROM-Emulatoren durften nur das Programm laden, es starten und aufhören, einen allgemeinen Reset zu verwenden. Dann gab es ausgeklügelte Modelle mit Hardware-Generierung von Trace-Signalen nach Erreichen einer bestimmten Adresse auf dem Oszilloskop. Emulierter Speicher in solchen Produkten war für Betrachtung und Modifikation verfügbar, aber eine sehr wichtige Kontrolle über die internen Steuerregister des Mikrocontrollers war bis vor kurzem unmöglich.

Es gab jedoch Modelle von intelligenten ROM-Emulatoren, die es ermöglichen, im Mikrocontroller auf der Platine des Benutzers zu "schauen" und im Allgemeinen, um das Debugging zu steuern, dem In-Circuit-Emulator ähnlich geworden sind. Firm Cactus stellt sogar sein virtuell intelligentes Emulator-ROM dar, als In-Circuit-Emulator einer Reihe von Mikroprozessoren ist es so unmöglich, zwischen Arbeit mit beiden zu unterscheiden. Tatsächlich wird der Prozessor hier nicht ersetzt, sondern der auf der Benutzerplatine verwendete.

Intelligente ROM-Emulatoren sind eine Mischung aus einem herkömmlichen ROM-Emulator, einem Debug-Monitor und schnell wechselnden Busschaltungen von einem zum anderen. Dies erzeugt einen Effekt, als ob der Debugging-Monitor auf der Benutzerplatine installiert wäre und gleichzeitig keine Hardware-Ressourcen vom Mikrocontroller benötigt, außer für eine kleine Zone von Programmschritten, etwa 4K. Zum Beispiel wurde ein solches Gerät von Fiton für alle existierenden 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 Entwicklungsumgebung

Streng genommen gehören integrierte Entwicklungsumgebungen nicht zur Anzahl von Debugging-Tools. Nichtsdestoweniger wäre es falsch, diese Klasse von Software zu ignorieren, was den Prozess der Entwicklung und des Debuggens von Mikroprozessorsystemen erheblich erleichtert und beschleunigt.

Mit dem traditionellen Ansatz ist die Anfangsphase des Schreibens des Programms wie folgt aufgebaut:

  • Der Quelltext wird mit einem Texteditor eingegeben. Am Ende des Sets stoppt die Arbeit mit dem Texteditor und der Cross-Compiler startet. In der Regel enthält das neu geschriebene Programm syntaktische Fehler und der Compiler meldet sie an die Operator-Konsole.
  • Der Texteditor wird neu gestartet und der Operator muss die erkannten Fehler finden und beheben, während Meldungen über die Art der vom Compiler angezeigten Fehler 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 zusammengefügt, bearbeitet oder aktualisiert wird, dann kann selbst diese Anfangsphase eine Menge Programmierleistung und -zeit erfordern und den Enthusiasmus des Entwicklers erheblich auslöschen.

Vermeiden Sie eine große Menge Routine und deutlich die Effizienz der Entwicklung und Debugging-Prozess zu verbessern, so dass aufstrebende und schnell wachsende Popularität der sogenannten. integrierte Entwicklungsumgebungen (IDE).

In der Regel ermöglicht eine "gute" integrierte Umgebung, vorhandene Debugging-Tools (einen In-Circuit-Emulator, Software-Simulator, Programmierer) unter einem Flügel zu kombinieren und gleichzeitig einem Programmierer Textprogramme im "Turbo" -Stil zur Verfügung zu stellen.

Arbeiten in einer integrierten Umgebung gibt dem Programmierer:

  • Die Fähigkeit, eine Vielzahl von dateibasierten Text-Editor zu verwenden, speziell entwickelt, um mit dem Quellcode von Programmen zu arbeiten.
  • Während der Fehlerkompilierung erkannte Diagnosen und der Quellcode des Programms, auf den zugegriffen werden kann, werden gleichzeitig in einem Mehrfachfenstermodus angezeigt.
  • Möglichkeit der Organisation und Durchführung paralleler Arbeiten an mehreren Projekten. Mit dem Projektmanager können Sie jedes Projekt als Vorlage für das neu erstellte Projekt verwenden. Die Optionen der verwendeten Compiler 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.
  • Die Fähigkeit, ein debuggtes Programm in vorhandene Debugging-Tools zu laden und mit ihnen zu arbeiten, ohne die Shell zu verlassen.
  • Fähigkeit zur Verbindung mit der Shell von praktisch jeder Software.

In letzter Zeit werden die Funktionen von integrierten Entwicklungsumgebungen zur Zugehörigkeit zu den Programmierschnittstellen der fortgeschrittensten Emulatoren und Debugger-Simulatoren. Eine solche Funktionalität in Kombination mit einer benutzerfreundlichen Schnittstelle kann das Leben des Entwicklers erheblich vereinfachen und seine Arbeit beschleunigen.