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 (Evaluierungsgebühren).
  • Debugging-Monitore.
  • Emulatoren ROM.

Diese Liste erschöpft nicht alle Arten vorhandener Debugging-Tools. Darüber hinaus gibt es auch kombinierte Geräte und Kits, die die Mängel der separat genutzten Anlagen ausgleichen 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 leistungsfähigste und universellste Debugging-Tool.

Tatsächlich macht ein "guter" In-Circuit-Emulator den Funktionsablauf des debugged Controller transparent; einfach gesteuert, willkürlich verwaltet und durch den Willen des Entwicklers modifiziert.

Funktionale In-Circuit-Emulatoren sind in Schnittstellen mit einem externen Computer (in der Regel IBM PC) unterteilt und funktionieren autonom. Unabhängige In-Circuit-Emulatoren besitzen individuelle Rechenressourcen, Input-Output-Einrichtungen, die für ihren normalen Betrieb des Andockens mit externen Recheneinrichtungen nicht erforderlich sind, dafür muss der Benutzer entweder einen wesentlich höheren Preis oder reduzierte Funktions- und Servicefähigkeiten im Vergleich zu ähnlichen Modelle, die mit dem IBM PC verbunden sind.

In der Regel erfolgt das Andocken des In-Circuit-Emulators an das Debugged-System über ein Emulationskabel mit einem speziellen Emulationskopf. Der Emulationskopf wird anstelle des Mikrocontrollers in das zu testende 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, bei dem sich alle seine Terminals im dritten Zustand befinden. In diesem Fall wird ein spezieller Adapter-Clip verwendet, um den Emulator zu verbinden, der direkt an die Ausgänge des emulierten Mikrocontrollers angeschlossen ist.

Der Emulator enthält mindestens folgende Funktionsbausteine:

  • Debugger.
  • Mikrocontroller-Emulationsknoten;
  • Emulationsspeicher;
  • Subsystem von Haltepunkten;

Fortgeschrittenere Modelle können zusätzlich enthalten:

  • Breakpoint-Prozessor;
  • der Tracer;
  • Profiler (Code-Effizienz-Analysator);
  • ein Echtzeit-Timer;
  • Software und Hardware, die die Fähigkeit bereitstellt, die Ressourcen des emulierten Prozessors "on the fly" zu lesen und zu modifizieren, 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 Informationen, die durch die Eingabe-Ausgabe-Einrichtung hindurchgehen, ihre Zugänglichkeit für die Wahrnehmung, Kontrolle und, falls notwendig, 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 Debugged-Programm in den Systemspeicher.
  • Ausgabe des Status und des Inhalts aller Register und des Speichers an den Monitor aus und ändert diese gegebenenfalls.
  • Verwaltung des Emulationsprozesses.

Leistungsfähigere Debugger, die normalerweise als High-Level (Debugger) bezeichnet werden, ermöglichen außerdem:

  • um das symbolische Debugging durchzuführen, da der Debugger die Adressen aller Zeichenvariablen, Arrays und Strukturen "kennt" (unter Verwendung von speziellen Informationen, die vom Compiler geliefert werden). Zur gleichen Zeit kann der Benutzer mit geeigneteren symbolischen Namen für die Person arbeiten, ohne sich an ihre Adressen zu erinnern.
  • steuern und analysieren nicht nur den disassemblierten Text, sondern auch den Quellcode des Programms, das in einer Hochsprache geschrieben wurde, und sogar mit eigenen Kommentaren.

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

Es sollte beachtet werden, dass ein hochrangiger Debugger sicherstellt, dass alle seine Funktionen nur dann ausgeführt werden, wenn ein Kreuzkompilierer, der vollständige und korrekte Debugging-Informationen bereitstellt, verwendet wird (nicht alle Compiler und insbesondere ihre Raubkopien liefern solche Informationen) Zeichen "an den Debugger.

Emulationsspeicher

Das Vorhandensein eines Emulationsspeichers ermöglicht es, diese im Debugging-Prozess anstelle von ROM im debugged System zu verwenden und außerdem 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, den ROM für den Emulationsspeicher nicht nur vollständig, sondern auch in Blöcken zu ersetzen (in manchen Modellen kann die minimale Blockgröße ein Byte erreichen) in der vom Benutzer definierten Reihenfolge. Um dies zu tun, muss der Benutzer lediglich die Verteilung des Datenspeichers und des Programmspeichers einstellen, gemäß dem 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 solcher Speicher wird normalerweise als Speicher mit der Möglichkeit der Abbildung bezeichnet.

Indikator

Im Wesentlichen ist der Tracer ein logischer Analysator, der synchron mit dem Prozessor arbeitet und den Ablauf der ausführbaren Anweisungen und den Zustand der ausgewählten externen Signale fixiert. Es gibt Modelle von In-Circuit-Emulatoren, die es ermöglichen, nicht nur externe Signale zu tracken, sondern auch die internen Ressourcen des Mikrocontrollers zu registrieren. Solche Emulatoren verwenden spezielle Versionen von Mikrocontrollern (Emulationskristallen).

Prozessor von Haltepunkten

Der Prozessor von Breakpoints ermöglicht es Ihnen, die Ausführung des Programms zu stoppen oder andere Aktionen auszuführen, z. B. den Tracer zu starten oder zu stoppen, wenn die vom Benutzer festgelegten Bedingungen erfüllt sind. Im Gegensatz zum Mechanismus der normalen Breakpoints können Sie mit dem Breakpoint-Prozessor Bedingungen nahezu beliebiger Komplexität erstellen und überwachen. Der emulierte Prozess wird nicht von der Echtzeitskala ausgegeben.

Profiler

Der Profiler (ansonsten der Programmcode-Effizienzanalysator) ermöglicht es Ihnen, die folgenden Informationen aus dem Programm des debuggen Programms zu erhalten:

  • Anzahl der Aufrufe an verschiedene Abschnitte des Programms;
  • Zeit für die Ausführung verschiedener Teile des Programms verbracht.

Die Analyse der statistischen Informationen, die vom Profiler bereitgestellt werden, erleichtert die Identifizierung von "toten" oder überbeanspruchten Programmteilen und optimiert dadurch die Struktur des zu debuggenden Programms.

Integrierte Entwicklungsumgebung

Eine Software, die alle Stufen der Softwareentwicklung vom Schreiben des Quellcodes des Programms bis zu dessen Kompilierung und Debugging unterstützt und eine einfache und schnelle Interaktion mit anderen Tools (Software-Debugger-Simulator und Programmierer) ermöglicht.

Das Vorhandensein des eingebauten Editors, des eingebauten Projektmanagers und des Kontrollsystems in der Programm-Shell ermöglicht es, die Arbeit des Entwicklers erheblich zu vereinfachen und ihn von vielen Routinetätigkeiten zu retten. Für den Entwickler ist die Grenze zwischen dem Schreiben eines Programms, dem Bearbeiten und dem Debuggen unscharf. Der Übergang von der Bearbeitung des Quelltexts in das Debugging und umgekehrt erfolgt "transparent" und synchron mit der Aktivierung der entsprechenden Fenster startet der Projektmanager automatisch die Kompilierung nach Bedarf und aktiviert die entsprechenden Fenster der Programmoberfläche.

Ebenso einfach ist der Übergang zum Debuggen eines Projekts mit Hilfe eines vorhandenen Debugger-Simulators oder zum Fortfahren mit der Firmware eines gut funktionierenden Programms.

Einige Modelle von In-Circuit-Emulatoren können Benutzern zusätzliche Funktionen bieten. Unter ihnen stellen wir einen fest, obwohl er sehr spezifisch ist, aber in einer Reihe von Fällen von grundlegender Bedeutung: die Möglichkeit, Multi-Emulator-Komplexe zu konstruieren, die zum Debuggen 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 geben, den Betrieb der zu debuggenden Geräte mit verschiedenen Einschränkungen zu überwachen und zu steuern. Beispielsweise kann es sein, dass Interrupts in einem Schritt-für-Schritt-Modus falsch verarbeitet werden oder ein serieller Port nicht verwendet wird. Es ist auch notwendig zu beachten, dass jedes reale Modell des Emulators einen eigenen Satz unterstützter Compiler besitzt. Manche Hersteller von Emulatoren, die Hersteller von Emulatoren beabsichtigen, beschränken sich bewusst auf die Anzahl der unterstützten Compiler, in erster Linie typisch für westliche Hersteller. In diesen Fällen kann der Emulator nur ein Zeichenformat verwenden.

Die Möglichkeiten eines "echten" In-Circuit Emulators werden am Beispiel des Modells PICE-51 dargestellt.

PICE-51

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

PICE-51 - Emulator einer neuen Generation, der unter Verwendung neuer Technologien für die Entwicklung von Hard- und Software entwickelt wurde.

Die Verwendung von programmierbaren Arrays mit hoher Kapazität hat es möglich gemacht, die Größe des Emulators drastisch zu reduzieren, ohne seine Funktionalität zu beschädigen, um Abweichungen in den elektrischen und Frequenzcharakteristiken des Emulators von den Eigenschaften des emulierten Prozessors zu minimieren und dadurch eine maximale Emulationsgenauigkeit bei Frequenzen von bis zu 30 MHz bei Versorgungsspannungen von 3,3 V bis zu 5V.

Die wiederaufladbare Hardware-Struktur des Emulators ermöglicht die 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 leistungsstarke Programmierschnittstelle in der Windows- Umgebung ist eine integrierte Entwicklungsumgebung, die alle Stufen 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 einen bestimmten Gehäusetyp. Auf der Hauptplatine implementiert: ein Tracer, ein Prozessor Breakpoints . Die Adapterplatine enthält einen Emulationsprozessor für eine bestimmte Art von Mikrocontroller. Emulationsköpfe ermöglichen die Installation des Emulators in den DIP- und PLCC-Pads auf der Benutzerplatine. Der Power-Emulator wird aus der Spannungsversorgung + 5V, 0,5A oder direkt vom zu prüfenden Gerät ausgeführt. Kommunikation mit dem Computer - auf einem galvanisch getrennten RS-232C- Kanal mit einer Geschwindigkeit von 115 kb.

GERÄTEEIGENSCHAFTEN

  • Exakte 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-Memory-Modell. Die Zuweisung von Speicher zwischen dem Emulator und dem Gerät des Benutzers mit einer Genauigkeit von 1 Byte.
  • Bis zu 512 KByte Hardware-Breakpoints beim Zugriff auf Programm- und Datenspeicher.
  • Hardware-Unterstützung für Debugging-Programme in Hochsprachen.
  • Trace 8 beliebige externe Signale.
  • 4 Synchronisationsausgänge 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 Anwendersignale.
  • Programmierbarer Spurfilter.
  • Ein Hardware-Breakpoint-Prozessor mit der Fähigkeit, eine komplexe Emulationsstoppbedingung für eine Kombination aus Adresse, Daten, Steuersignalen, 8 externen Signalen, einem Echtzeit-Timer, Ereigniszählern und einem Verzögerungs-Timer 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 "on the fly" auf emulierten Speicher, Breakpoints, Prozessor von Breakpoints, Tracepuffer, Echtzeituhr.
  • Der gesteuerte Taktgenerator für den emulierten Prozessor. Die Fähigkeit, die Taktfrequenz von 500 kHz auf 40 MHz gleichmäßig zu ändern.
  • Galvanisch getrennt vom Computer-Kommunikationskanal RS-232C mit einem Wechselkurs von 115 KBod.
  • Eingebautes Selbstdiagnosesystem des Emulators.

MERKMALE 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 Multi-Window- Editor dient zum Schreiben von Programm-Quellcode. Der Editor unterstützt Operationen mit Textblöcken, Suchen / Ersetzen, Farbauswahl von Assembler- und C-Sprache-Syntax;
  • Der eingebaute Projektmanager bietet eine automatische Zusammenstellung von Programmen. Alle Optionen werden in einer Dialogmaske festgelegt. Der Übergang vom Editieren des Quellcodes zum Debuggen und umgekehrt erfolgt "transparent", d. H. Der Projektmanager startet bei Bedarf automatisch die Zusammenstellung des Projekts.
  • PICE-51 bietet symbolisches Debugging und Debugging für den Quelltext für Programme, 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. ;
  • Hardware-Konfigurationsdateien, Schnittstellen- und Debug-Optionen automatisch speichern und laden. Die Konfigurationsdateien sind mit dem PDS-51-Simulator kompatibel. Die Portabilität von Projekten zwischen dem Emulator PICE-51 und dem Simulator PDS-51 ist gegeben;
  • Fähigkeit, 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 kontextuellen elektronischen Handbuch ausgestattet , in dem die Bedienprinzipien, 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-D 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 Mikrocontroller der Familie 8051

Modell, Lieferant EMUL-51 Nohau Corporation USP-51 Signum Systems 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 Anzahl emulierter Speicher 320K 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 Innerhalb eines Bytes
Spurenpuffer Bis zu 16K 48-Bit-Frames Bis zu 32K Frames mit 80 Bits Bis zu 4K 48-Bit-Frames Bis zu 64K 64-Bit-Frames
Zugriff "on the fly" auf den emulierten Speicher und Tracer Ja. Ja. Ja. Ja.
Schnittstelle zum Computer Die Karte im ISA-Steckplatz RS-232C, bis zu 115 Kbaude RS-232C, bis zu 115 Kbaude Isoliert RS-232C, bis zu 115 Kbaude
Design und Maße Zwei Karten im ISA-Format, Kabel 2 Meter, PODs Gehäuse 260x260x64 mm, Kabel, POD Gehäuse 178x140x25 mm, Kabel, POD Der gesamte Emulator ist im Emulationskopf mit der Größe von 80x76x50 mm
Der Preis für eine vergleichbare Konfiguration der Lieferung: Unterstützung 80С51, 25 MHz, 128K RAM, das Tracer-Puffer-Volumen 16K Frames $ 5200 (Nohau Preisliste) $ 5300 (Signum Preisliste) $ 4000 (MetaLink Preisliste) $ 990

Ausführlichere Informationen sowie eine Demoversion des Emulators sind auf der Website verfügbar: http://www.phyton.ru

Natürlich macht ein derart breiter Funktionsumfang In-Circuit-Emulatoren zum leistungsstärksten 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 fortschrittlicheren Simulatoren gehören Modelle integrierter 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 auch 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.

Nach dem Laden des Programms in den Simulator hat der Benutzer die Möglichkeit, es schrittweise oder kontinuierlich zu betreiben, bedingte oder unbedingte Haltepunkte zu setzen, 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, die Korrektheit der Durchführung arithmetischer Operationen überprüfen.

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

Einige Simulationsmodelle können eine Reihe 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 Steuerungsaktionen an die Aktuatoren aus. Um die Arbeit des Sensors in einem Simulator zu simulieren, der keine Schnittstelle der externen Umgebung aufweist, muss der aktuelle Zustand des Modells des Peripheriegeräts, mit dem der Sensor verbunden ist, im realen System manuell geändert werden. Wenn zum Beispiel beim Empfang eines Bytes über einen seriellen Port ein bestimmtes Flag gespannt wird und das Byte selbst in ein bestimmtes Register fällt, müssen diese beiden Aktionen in einem solchen Simulator manuell durchgefü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, der mit dem zu testenden Programm in Übereinstimmung mit einem gegebenen Algorithmus arbeitet und mit diesem interagiert. Die Möglichkeiten des "echten" Debugger-Simulators werden am Beispiel des PDS-PIC-Modells veranschaulicht.

PDS-PIC

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

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

Der Simulator hat:

  • Eingebauter Editor für mehrere Fenster zum Schreiben von Programm-Quellcode. 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 Makro-Assembler PASM-PIC von Fiton und für den Macassembler MPASM von Microchip geschrieben wurden.
  • Alle Assembler-Optionen sind in praktischen Dialogen eingestellt. Der Übergang vom Editieren des Quellcodes zum Debuggen und umgekehrt erfolgt "transparent", d. H. Der Projektmanager startet den Assembler bei Bedarf automatisch.
  • Umfangreiche Möglichkeiten zum Debuggen von Programmen: Verfolgen der Ausführung des Programms anhand des Quelltextes, Anzeigen und Ändern der Werte beliebiger Variablen, integrierter Code-Effizienzanalysator, Bedingungsunterbrechungen und Zugriff auf Speicherzellen, Anzeigen des Stapels von Unterroutinenaufrufen, integrierter Assembler, genaues Timing und vieles andere;
  • Die Fähigkeit, das Programm auf eine große Anzahl von Schritten zurück zu führen, sowie im kontinuierlichen Modus. In diesem Fall wird der Zustand des Mikrocontrollermodells vollständig wiederhergestellt;
  • Genaues Modell des Verhaltens von Mikrocontrollern. Es simuliert den Betrieb aller in den Mikrocontroller eingebauten Peripheriegeräte: Timer, ADCs, Interrupt-Systeme, Ports, usw .;
  • Entwickelte Werkzeuge zum Modellieren 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 zu setzen, um den Betrieb der externen Logik zu simulieren. Mit Hilfe der eingebauten grafischen Anzeige können Sie verschiedene Indikatoren visuell anzeigen, Grafiken erstellen, die Tastatur simulieren;
  • System, das Konfigurationsfenster und -einstellungen speichert. Es ist möglich, eine unbegrenzte Anzahl von Konfigurationsdateien zu speichern und wiederherzustellen.
  • Fähigkeit, Farben und Schriftarten und andere Parameter für alle Fenster gleichzeitig und für jedes Fenster separat anzupassen;
  • Das kontextbezogene 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.

In der Tabelle sind weitere Details des Simulators dargestellt, die aus den Ergebnissen einer vergleichenden Analyse zweier Simulatoren zusammengestellt wurden: MPlabSIM- Firma Microchip und PDS-PIC- Firma Fiton. Die Hauptmerkmale und Unterschiede von MPlabSIM und PDS-PIC sind darauf zurückzuführen, dass sie konzeptionell verschiedene Benutzeroberflächen und Umgebungen für die Simulation verwendeten.

MPlabSIM PDS-PIC
Management *
Maus
Menüsystem
"Hot Keys"
durch das Modell der äußeren Umgebung
ja
ja
ja
Nein
ja
ja
ja
ja
Haltepunkte
an die Adresse des ausführbaren Codes
nach Registerinhalten
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
Reset
Unterbrechen
Timer0
Timer1
Timer2
CCP1
CCP2
PWM1 / 2
PSP
SSP
I2C
SCI (USART)
EEPROM
ADC
Komparatoren
Vref
RC Generator
ADC-Modul
ohne Verzögerung
vollständig
nur synchron
nur synchron
vollständig
vollständig
vollständig
ohne hohe Auflösung
nur synchron
vollständig
nur Register
Zeitverzögerungen
ohne Schutzsequenz
nur Verzögerungen und Register
nur Register
nur Register
d ist eine konstante Frequenz
nur Verzögerungen
Vollständig
Vollständig
synchron / asynchron
synchron / asynchron
Vollständig
vollständig
vollständig
vollständig
synchron / asynchron
registriert nur und unterbricht Flaggen
nur Register
nur Register
vollständig
vollständig
vollständig
vollständig
die Frequenz wird unabhängig von der Frequenz der Uhr eingestellt
Register für Analogeingänge
Modellierung von äußeren Einflüssen
Eingabe von Eingabewerten am I / O-Port
Direktes Schreiben in Register
zyklische Effekte
asynchrone Effekte
Beschreibung (Zuordnung von Einflüssen) der externen Umgebung algorithmisch
externe Analogsignale
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 zur grafischen Darstellung von Prozessen
Geschwindigkeit **
Nein

Nein


Nein

400 Mannschaften / Sekunde
ja

ja


ja

100.000 Mannschaften / Sekunde

* MPlabSIM verwendet das Menü als Add-on zur Linieneingabe 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 im Menü "WINDOWS" - wählen Sie im Untermenü die Option "MODIFY" - wählen Sie "what" (STACK, DATA oder CODE) (hier "DATA") - geben Sie die Adresse ein - geben Sie einen neuen Wert ein - bestätigen Sie die Eingabe Im Register Speicherauszug 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 durch Drücken von zwei Tasten ändern. Es ist genauso einfach, alle anderen Debugging-Aktivitäten auszuführen.

** Am Beispiel des MPLAB-sim-Pakets für 16c54, wenn es in 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 einer Zeitskala stattfindet, die sich von der realen unterscheidet. Der niedrige Preis, die Möglichkeit des Debuggens, selbst wenn kein Modell eines Debugger-Geräts zur Verfügung steht, macht Software-Simulatoren jedoch zu einem sehr effektiven Debugging-Verfahren. Getrennt davon ist hervorzuheben, 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. Er zwingt den Prozessor des Benutzers, zusätzlich zur Anwendungsaufgabe auch Debugging-Funktionen zu erstellen:

  • Laden von Anwendungscodes des Benutzers in den Speicher vom Monitor frei
  • Breakpoints setzen
  • Starten und stoppen Sie das heruntergeladene Programm in Echtzeit
  • Benutzerprogramm schrittweise übergeben
  • Anzeigen, Bearbeiten der Inhalte von Speicher- und Steuerregistern.

Das Monitorprogramm muss in Verbindung mit einem externen Computer oder einem passiven Terminal arbeiten, auf dem die Visualisierung und Steuerung des Debugging-Prozesses stattfindet. Wiederholen wir, dass Debug-Monitore diesen Prozessor verwenden, der bereits auf der Benutzertafel steht. Der Vorteil dieses Ansatzes besteht in sehr geringen Kosten, während gleichzeitig die Möglichkeit zum Debuggen in Echtzeit erhalten bleibt. Der Hauptnachteil ist die Umleitung von Mikrocontroller-Ressourcen zu Debug- und kohärenten Prozeduren, zum Beispiel: der Monitor nimmt Speicher, Interrupts und seriellen Kanal auf. Die Menge der abstrahierten Ressourcen hängt von der Kunst des Monitorentwicklers ab. In jüngerer Zeit sind Produkte erschienen, die die Hardware-Ressourcen des Prozessors praktisch nicht beanspruchen, sie werden im Abschnitt "Emulators ROM" weiter unten beschrieben.

Entwicklungsboards

Entwicklungsboards oder wie sie in der ausländischen Literatur genannt werden - Evaluationsboards (Evaluation Boards), sind originelle Designer für Prototyping-Anwendungssysteme. In letzter Zeit stellt der Hersteller mit der Veröffentlichung eines neuen Modells eines Mikrocontroller-Chips notwendigerweise eine angemessene Entwicklungsgebühr her. Normalerweise ist dies eine Leiterplatte mit einem Mikrocontroller und allen notwendigen Standardrohren. Stellen Sie auf diesem Board außerdem Kommunikationsschemata mit einem externen Computer her. In der Regel gibt es auch ein freies Feld für die Installation von Benutzeranwendungen. Manchmal ist bereits eine Verdrahtung zur Installation zusätzlicher Geräte, die vom Unternehmen empfohlen werden, vorhanden. B. ROM, RAM, LCD-Display, Tastatur, ADC usw. Zusätzlich zu Bildungs- oder Mock-up-Anwendungen wurden solche modifizierten Boards für die Verwendung als Single-Board-Controller in einigen Serienprodukten (5,20 Stck. ).

Zur besseren Bequemlichkeit sind Entwicklungsboards außerdem mit dem einfachsten Debugging-Tool ausgestattet, das auf dem Debug-Monitor basiert. Es entstanden 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 Debug-Monitor von der Firma in Form eines ROM-Chips geliefert, der in eine spezielle Steckdose auf der Entwicklungsplatine eingesteckt wird. Die Karte hat auch RAM für Benutzerprogramme und einen Kommunikationskanal mit einem externen Computer oder Terminal. Ein Beispiel ist die Intel-Entwicklungsplatine für den Mikrocontroller 8051.

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

Es ist wichtig, dass Plus auf den Monitor zu beachten, manchmal Entwicklungsplatinen sind auch mit Debugging-Programme ausgestattet, die auf einem externen Computer in Verbindung mit einem Monitor ausgeführt werden. Diese Programme sind in letzter Zeit merklich komplexer geworden und verfügen oft über hochprofessionelle Debugging-Funktionen, wie zum Beispiel einen Debugger-Simulator oder verschiedene Elemente, die der reinen Form integrierter Entwicklungsumgebungen eigen sind. Die mitgelieferten Kits können Programme angewandter Art enthalten, die in der Praxis am häufigsten anzutreffen sind.

Die vom "development plus monitor" -Bündel bereitgestellten Debugging-Fähigkeiten sind sicherlich nicht so vielseitig wie die Fähigkeiten des In-Circuit-Emulators und einige der Mikroprozessor-Ressourcen werden während des Debugging für den Monitor ausgewählt. Dennoch ist die Verfügbarkeit eines kompletten Satzes an vorgefertigter Software und Hardware, die es Ihnen erlaubt, das Anwendungssystem zu installieren und zu debuggen, ohne Zeit zu verschwenden, in vielen Fällen ein entscheidender Faktor. Vor allem, wenn man bedenkt, dass die Kosten eines solchen Sets etwas geringer sind als die Kosten eines vielseitigeren Emulators.

Emulatoren ROM.

Emulator-ROM - Firmware, mit der Sie das ROM auf der Debugged-Karte austauschen und anstelle von RAM, das über einen Computer über einen der Standardkommunikationskanäle vom Computer heruntergeladen werden kann, ersetzt werden kann. Dieses Gerät erlaubt es dem Benutzer, mehrere Neuprogrammierungszyklen 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 mit Entwicklungsplatinen vergleichbar. Es hat eine große Tugend: Universalität. Emulator-ROM kann mit jeder Art von Mikrocontroller arbeiten.

Frühere ROM-Emulatoren dürfen nur das Programm laden, starten und aufhören, einen gemeinsamen Reset zu verwenden. Hinzu kamen anspruchsvolle Modelle mit Hardware-Generierung von Trace-Signalen nach Erreichen einer bestimmten Adresse am Oszilloskop. Der emulierte Speicher in solchen Produkten war zum Anzeigen und Modifizieren verfügbar, aber eine sehr wichtige Kontrolle über die internen Steuerregister des Mikrocontrollers war bis vor kurzem nicht möglich.

Es gab jedoch Modelle von intelligenten ROM-Emulatoren, die es ermöglichen, in den Mikrocontroller auf der Benutzerplatine zu "schauen", und im Allgemeinen, um das Debugging zu steuern, ähnlich dem In-Circuit-Emulator geworden sind. Firm Cactus stellt sogar seinen virtuell intelligenten Emulator-ROM dar, als In-Circuit-Emulator einer Anzahl von Mikroprozessoren. Es ist so unmöglich, zwischen Arbeit mit beiden zu unterscheiden. Tatsächlich wird der Prozessor hier nicht ersetzt, aber derjenige, der sich auf der Benutzertafel befindet, wird verwendet.

Intelligente ROM-Emulatoren sind ein Hybrid aus einem herkömmlichen ROM-Emulator, einem Debug-Monitor und Schnellwechsel-Schaltkreisen von einem zum anderen. Dies erzeugt einen Effekt, als ob der Debugmonitor auf der Benutzerplatine installiert wäre und gleichzeitig keine Hardwareressourcen vom Mikrocontroller abgesehen von einer kleinen Zone von Programmschritten, etwa 4 KB, benötigt. So wurde ein solches Gerät von Fiton für alle existierenden und zukünftigen Mikrocontroller entwickelt, die einen Kern von 8051 aufweisen, 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 zu der Anzahl der Debugging-Tools, aber diese Klasse von Software zu ignorieren, was den Prozess der Entwicklung und Fehlersuche von Mikroprozessorsystemen erheblich erleichtert und beschleunigt, wäre es falsch.

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

  • Der Quelltext wird mit einem Texteditor eingegeben. Am Ende des Satzes wird die Arbeit mit dem Texteditor angehalten und der Cross-Compiler gestartet. Das neu geschriebene Programm enthält in der Regel syntaktische Fehler und der Compiler meldet sie an die Bedienerkonsole.
  • Der Texteditor wird neu gestartet und der Bediener 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 durch einen Texteditor belegt ist.

Und dieser Zyklus kann mehr als einmal wiederholt werden. Wenn das Programm nicht zu klein und trivial ist, aus verschiedenen Teilen zusammengestellt oder bearbeitet wird, kann selbst diese Anfangsstufe eine Menge an Programmierleistung und Zeit erfordern und die Begeisterung des Entwicklers weitgehend auslöschen.

Vermeiden Sie eine große Menge an Routine und verbessern Sie die Effizienz des Entwicklungs- und Debugging-Prozesses erheblich. Dies ermöglicht die Entstehung und schnell steigende Popularität des sogenannten. integrierte Entwicklungsumgebungen (IDE).

In der Regel erlaubt eine "gute" integrierte Umgebung, vorhandene Debugging-Tools (In-Circuit-Emulator, Software-Simulator, Programmierer) unter einem Flügel zu kombinieren und bietet gleichzeitig einem Programmierer Textprogramme im "Turbo" -Stil.

Arbeit in einer integrierten Umgebung gibt dem Programmierer:

  • Die Fähigkeit, eingebaute viel dateibasierten Texteditor zu verwenden, der speziell für den Quellcode von Programmen entwickelt wurde.
  • Während der Kompilierung von Fehlern erkannte Diagnose und der zur Bearbeitung zugängliche Quellcode des Programms werden gleichzeitig in einem Mehrfenstermodus angezeigt.
  • Möglichkeit, parallele Arbeiten an mehreren Projekten zu organisieren und durchzuführen. 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 Projektquellendateien werden in den Dialogmenüs festgelegt und im Projekt gespeichert, wodurch die Arbeit mit unpraktischen Stapeldateien entfällt.
  • Nur die bearbeiteten Module werden neu kompiliert.
  • Die Möglichkeit, ein Debugging-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 integrierter Entwicklungsumgebungen zu den Programmierschnittstellen der fortschrittlichsten Emulatoren und Debugger-Simulatoren. Diese Funktionalität in Kombination mit einer benutzerfreundlichen Oberfläche ist in der Lage, die Lebensdauer des Entwicklers erheblich zu vereinfachen und seine Arbeit zu beschleunigen.