Einführung von On Chip Debugging

 

Wie funktioniert das On-Chip-Debugging?

Das Folgende ist eine Vereinfachung, um neuen Benutzern mit den Konzepten zu helfen..........

Jeder einzelne Chip einer Familie ( z.B. ARM oder NXP/Freescale ColdFire ) weist einige Pins für die Kommunikation zwischen einem speziellen Steuermodul innerhalb des Mikroprozessor-Chips und einem Anwendungsprogramm, das normalerweise auf einem PC läuft, zu. Um die Anzahl der auf dem Chip verwendeten Pins und Schaltkreise zu minimieren, verwendet diese Kommunikation typischerweise eine nicht standardisierte Kommunikationsverbindung, so dass wir eine spezielle Schnittstelle auf der PC-Seite benötigen.

Wenn der Microcontroller eingeschaltet wird, werden diese Pins geprüft und wenn sie auf eine bestimmte Weise eingestellt sind, übernimmt das Steuermodul die Kontrolle und der Microcontroller wird als im On-Chip-Debug-Modus betrieben (wir werden die Abkürzung BDM für Background Debug Mode synonym verwenden).  Wenn nicht für den BDM eingestellt, startet das Steuermodul den Microcontroller einfach an der Einschaltposition und hat nichts weiter zu tun --- den Pins werden ihren Standard-I/O-Funktionen zugewiesen. 

Wenn BDM eingestellt ist, entscheidet das Steuermodul und nicht die CPU, was als nächstes passiert. Das Steuermodul hat Zugriff auf alle Speicherbusse und kann im BDM-Modus z. B. alle Speicher und Register lesen und schreiben und deren Inhalte an den PC senden, damit der Ingenieur sie sich ansehen kann. Der Techniker kann entscheiden, neuen Code vom PC zu senden, der in das RAM des Targets geladen werden soll. Das Steuermodul kann den Mikroprozessor auch zwingen, eine einzelne Anweisung auszuführen oder so lange zu laufen, bis der Mikroprozessor eine vordefinierte Stelle erreicht, deren Adresse dem Inhalt der "Haltepunkt-Register" des Steuermoduls entspricht. Mit diesen wenigen Funktionen hat der Ingenieur, der den PC bedient, alle Möglichkeiten, das Zielsystem zu kontrollieren und Code auf dem Mikrocontroller zu debuggen.

Kurz gesagt, BDM bietet 90% der Funktionalität eines In Circuit Emulators (ICE) zu <1% der Kosten. 

Hinweis: Wenn JTAG zur Steuerung des On-Chip-Debugging verwendet wird, werden die von der Joint Test Action Group (JTAG ist der allgemeine Name für IEEE 1149.1) spezifizierten Signalstandards für die Kommunikation verwendet, was jedoch nicht automatisch bedeutet, dass der Chip mit Boundary-Scan-Techniken und -Tools getestet werden kann.

 

BDM zum Programmieren von Flash verwenden ?

Das Geheimnis ist, dass über die BDM-Schnittstelle eine kleine Anwendung in den RAM geladen wird plus so viele der in den Flash zu ladenden Daten, wie in den Rest des RAMs passen.  Das BDM startet dann diese Anwendung, die den Flash "brennt" und dann zurück zum PC geht, um weitere Daten zu holen, bis die Aufgabe beendet ist.

 

 

 

 

 

Im Folgenden wird das BDM- & JTAG-Produktangebot von PEmicro beschrieben


PEmicro ist führend auf diesem Gebiet und ihre Produkte sind in vielen NXP/Freescale EVB-Paketen enthalten.  Die Tools von PEmicro, einschließlich Schnittstellen, Software wie Programmierer (PROG), In-Circuit-Debugger (ICD), Assembler/Editoren und Register-File-Displays (REGxx) sind alle ab Lager verfügbar. Sie arbeiten über die Schnittstellen von PEmicro, die den PC mit dem Target verbinden, per USB oder Ethernet. Diese Produkte sind als vollständige 32/64 Bit Windows-Applikation für W95/98/2K/NT/XP/W7 und W8 für die folgenden Zielprozessorfamilien verfügbar:
 
 
ARM Cortex M0-4 All Freescale Devices NXP (LPC TI / Stellaris) Devices Renesas & Hitachi Devices ST Microelectronics Devices

 

 

BDM-, JTAG- und SWD-Schnittstellen
pemicro_Multilink-fx

PEmicros neueste USB-Multilink-Universalkabel sind die Hardware-Schnittstellen zwischen einem Standard-PC und dem Header auf einem beliebigen der zahlreichen Zielsysteme. Je nach Chip bieten sie Zugriff auf die Background Debug Mode (BDM), JTAG und SWD Schnittstellen des Mikrocontrollers. Durch den Einsatz des BDM/JTAG/SWD-Kabels kann der

 kann der Anwender die Vorteile des "On-Chip-Debugging" nutzen, um interne oder externe FLASH-Speicherbausteine zu programmieren und den Applikationscode im Mikro zu testen.

Mit dem preisgünstigen Multilink ACP für den ARM-Bereich, dem Multilink Universal für eine breite Palette von CPUs von Motorola, NXP bis ARM oder dem hochleistungsfähigen Multilink Universal FX und für die Produktion der Cyclone-Reihe als Alternativen sind verschiedene Preis-/Leistungspunkte verfügbar.

Flash-Speicher-Programmierwerkzeuge sind sowohl für die Entwicklungs- als auch für die Produktionsumgebung verfügbar.  Details zu deren Funktionsweise finden Sie unten.

howbdm

 

Eigenschaften

  • Volle Kontrolle über die On-Chip-Ressourcen über BDM/JTAG/SWD
  • In-Circuit-Emulation mit voller Geschwindigkeit zu einem günstigen Preis
  • Programmierung für interne oder externe EEPROM/FLASH-Speicherbausteine
  • Ausführen bis zum Hardware-Breakpoint
  • Arbeitet mit PROG-Programmier-Softwarepaketen sowie mit einer Vielzahl von
  • Compiler-Debug-Umgebungen wie CodeWarrior, KDS, Keil, IAR, Atollic, GDB
  • 1,8- bis 5-Volt-Versionen sind verfügbar, siehe chip-spezifische Informationen
  • Sehr schnelle Downloads und Stepping
  • Schnittstellenbibliothek und Demo für eigene Tester und Software

 

Bei Verwendung der synchronen Zielarchitekturen des Universal FX-Modells, wie z. B. Kinetis, Qorivva, Coldfire V2-V4, 683xx, HC16, Power Architecture PX-Serie und DSC, kann die Kommunikation 4 bis 10 Mal schneller ablaufen als bei den älteren Multilink-Schnittstellen.

 

 

Download-speed-universal-fx

 

 

Cyclone Serie

Diese Boxen verbinden einen PC über Seriell, USB oder Ethernet, um ein superschnelles, interaktives Flash-Programmiergerät unter manueller oder automatischer Steuerung bereitzustellen. Sie können sogar vom PC getrennt und als eigenständiges Flash-Programmiergerät verwendet werden. Wenn Sie Anwendungen für einen der NXP / Freescale Bausteine entwickeln, sind sie das einzige CPU-spezifische Hardware-Entwicklungstool, das Sie jemals kaufen müssen. Sie arbeiten mit allen unten aufgeführten Softwarepaketen:

 

Cyclone_Bild

 

 

Cyclone Universal LC Zur Verwendung mit den Familien 68HC08, HCS08, HC12, HCS12. Schnittstellen zu PEmicro, CodeWarrior und Cosmic Debug-Umgebungen.  Sowie Für den Einsatz mit Arm cortex, Kinetis, 55xx/56xx/57xx Qorivva, ColdFire, PPC 5xx/8xx, STM32, STM8, SPC56 und MAC 71xx,72xx (ARM) Familien. Schnittstelle zum ARM GDB-Server. Diese programmieren auch die folgenden Geräte

Cyclone für ARM® Cortex Bausteine Zur Programmierung von ARM Cortex M0-4 basierten Bausteinen von STMicro, NXP, TI Stellaris und NXP/Freescale Kinetis.


Cyclone Universal FX, die höchste Spezifikation in der Familie, wurde für den Einsatz in der Produktion entwickelt und zeichnet sich durch eine extrem hohe Downloadgeschwindigkeit aus: Bis zu 75Mb/s. Er hat einen Gbyte-Speicher, um 200+ Bilder aufzunehmen und kann die Programmierung über einen Barcode-Scanner auswählen und starten. Es programmiert alle oben aufgeführten Chips von HC08 - ARM dann mit Adaptern STM32, STM8 und SPC56 Familien sowie Renesas M32C, M16C, M16C/80, R8C, H8 und H8S/Tiny Familien.  Eine kostengünstigere Version ist ausschließlich für die ARM-Familie vorgesehen.

Die Cyclones sind mit einem vollständigen Satz von Flash-Programmieralgorithmen ausgestattet und sind besonders in Produktionsumgebungen beliebt, wo sie mit einer Reihe von Automatisierungsoptionen eingesetzt werden können, die für die Programmierung in der Fertigungslinie in vollem Umfang ausgelegt sind.

 

 

BDM Flash Programmer

Ein interaktives Flash-EEPROM-Programmier-Softwarepaket, mit dem Sie sowohl interne als auch externe Flash-Bausteine in-circuit über ein PEmicro-Schnittstellenkabel programmieren/umprogrammieren können. Perfekt für die Entwicklung, Produktionslinienprogrammierung oder Firmware-Upgrades im Feld. PEmicros Produkte enthalten unsere gesamte Bibliothek von Setup-Dateien für einen bestimmten Prozessor und umfassen sowohl interaktive als auch Befehlszeilen-Versionen für den Einsatz in Entwicklung und Produktion. 

Um zu erfahren welche Microcontroller Serien & Architekturen unterstützt werden, folgen Sie bitte diesem Link .

Die Funktionen für Flash-Speicher sind: 

Programmieren, Verifizieren, Blank Check, Hochladen, Anzeigen & Löschen.

 

prog32w

 

In-Circuit Debugger

Die In-Circuit-Debugger-Software von PEmicro - ICD für Windows ist ein leistungsfähiges Werkzeug zum Debuggen. Sie nutzt den Hintergrund-Code-Debug-Modus des Prozessors über ein Schnittstellenkabel, um dem Anwender direkten Zugriff auf alle On-Chip-Ressourcen zu ermöglichen.

 

icd32w

  • C-Source-Level-Debugging-Unterstützung für IEEE695 & GNU
  • In-Circuit-Emulator mit voller Geschwindigkeit
  • Haltepunkte mit Zählern zum Unterbrechen bei der nächsten Ausführung
  • Variablenfenster mit Anzeige von Bytes, Wörtern, Strings und langen Wörtern
  • Echtzeit-Ausführung sowie mehrere Tracing-Modi
  • Startup- und Makro-Dateien zur Automatisierung des Debug-Prozesses
  • Kontextsensitive Hilfe für alle Befehle
  • Timing-Messung und Ausführungszählfunktionen
  • Hotkeys zum Setzen von Haltepunkten und Zählern
  • Unterstützung für symbolische Registerdateien

 

Register File

Mit REGxx kann der Benutzer über den BDM die Registerfelder des Prozessors sowohl im symbolischen als auch im numerischen Format anzeigen und ändern, wodurch das mühsame Durchsuchen von Handbuchseiten nach Registerbeschreibungen entfällt. Wenn der Benutzer ein Register auswählt, wird der tatsächliche Speicher des Prozessors gelesen und angezeigt. Die Registerdateien arbeiten mit der In-Circuit-Debugger-Software von PEmicro.

 

reg32w

 

PACKAGE mit Assembler  

Ein komplettes 32-Bit-Windows-Softwarepaket, bestehend aus integrierter Entwicklungsumgebung, In-Circuit-Debugger, Assembler, Programmierer, Registerdatei, ist jetzt für alle CPUs verfügbar -- fügen Sie einfach das Kabel Ihrer Wahl hinzu. 

 

 

PACKAGE Pro mit C 

Das PEmicro-Paket "Pros" bietet alles, was der Ingenieur benötigt, um mit der Verwendung des Gnu Cross Compilers zu beginnen.  Es enthält eine von PEmicro vorkompilierte Version des GNU/GCC-Compiler-Toolsets, die direkt unter der Windows-Umgebung arbeitet, ohne dass eine Unix-Shell installiert werden muss. Der Compiler ist in WinIDE integriert und ermöglicht eine One-Touch-Kompilierung eines C-Level-Projekts. Das Paket enthält Startup-Code und Linker-Skripte für die gängigsten Geräte. Der Compiler erzeugt sowohl das Elf/Dwarf 2.0- als auch das S19-Ausgabeformat; das Elf/Dwarf-Format ist mit dem In-Circuit-Debugger von PEmicro ladbar und das S19-Format ist mit dem In-Circuit-Flash-Programmierer von PEmicro ladbar, die alle zusammen mit einer geeigneten BDM/JTAG-Schnittstelle enthalten sind.   Die Pro-Versionen des Pakets sind jetzt für ColdFire und Power PC Qorivva 55xx/56xx/57xx (AKA NEXUS) verfügbar. 

 

 

Unit Library

Eine Bibliothek mit Aufrufen, mit denen der PC das BDM-Kabel direkt ansteuern kann.  Ideal, wenn Sie Ihre eigenen Testprogramme für die Produktionslinie erstellen möchten.  Hier ein Beispiel für die C- und Pascal-API. Zwei Versionen sind verfügbar Windows und Linux x86 (nicht ARM).