embedded power for your project embedded power for your project

| Home | Software | Services | Product Manager | Contact |

 Embedded Prozessor
   8-Bit Prozessoren
   16-Bit Prozessoren
   32-Bit Prozessoren
   64-Bit Prozessoren
   ARM
   DSPs
   FPGA
   Intel
   MIPS
   PowerPC
 Tool Information
   BDM/JTAG tool
   Hardware design
   Logikanalysator
   Eval Boards
   Simulator
   Compiler
   Real Time OS
   Software Tools
   Debugger
 Services
   Consulting
   Productmanager
   Systemdesign
   Links
   Literatur

 embedded BDM - JTAG
    Debug Entwicklungswerkzeuge

Hardware gestütztes Entwicklungswerkzeug

Mit den ersten leistungsfähigen Prozessoren zum Ende der siebziger Jahre erschienen auch vielfältige Entwicklungswerkzeuge, um Hard- und Softwerkern die Arbeit zu erleichtern. Denn neben Oszilloskop gab es nichts um einen damaligen Mikroprozessor wie i8080, Z80 oder 6502 für eine spezielle Hardware fit zu machen und den Prozessor dann auch noch zu programmieren, grenzte an ein Buch mit sieben Siegeln.

Also entstand der sogenannte "Emulator", eine spezielle Version des jeweiligen Microprocessor mit sogenanntem "Bond Out", der sich von zusätzlicher Hardware steuern läßt. Dies ging solange gut, wie die Prozessoren weniger als 100 Gehäusepins hatten und die Taktfrequenzen unter 30 MHz blieben. Mit schnellerem Takt und breiterem Bus, der wiederum mehr Pins und kleinere Gehäuse-Bauform erfordert, ging es auch mit diesen traditionellen Emulatoren bergab. Heutzutage sind sie kaum noch für 32-bit Prozessoren und Mikrokontroller im Einsatz.

Schon Anfang der 90er Jahre entstanden die ersten intelligenten Tool-Lösungen, bei denen der Prozessor eingelötet auf der Platine bleiben konnte. Motorola entwickelte das BDM - Background Debug Mode - Interface für die 68k3xx Serie mit populären 32-bit Mikrokontroller, wie 68332, der 68360 für netzwerkanwendungen und 68336/376 für industrielle Steuerungen. Bei Texas Instruments hatte man für die 32-bit DSP 320C30 ebenfalls die Zeichen der Zeit erkannt und diese Prozessoren hatten eine Vorläufer-Version des JTAG Debug Interface. Die Debug-fähige Version JTAG eroberte dann mit PowerPC, Hitachi SH, und ARM Prozessoren mehr als ein Entwicklungslabor der Internet Boom Jahre 1996..2000.

Einige Tool Anbieter gingen sogar soweit, ihre BDM/JTAG Tools über das Internet anzubieten, bei techonline.com findet sich heute noch ein sogenanntes "virtualab", auf dem jedermann eine Runde mit Motorola PowerPC 8260 oder IBM 405 debuggen kann.

Software Debugger

Das BDM / JTAG Entwicklungswerkzeug hat den Prozessor im Griff hat, nun brauchen wir ein Software Tool, das den Sourcecode und das BDM/JTAG Tool im Griff hat. Eben das macht ein Software Debugger. Idealerweise fügt er sich in ein IDE (Integrated Development Environment - Integrierte Entwicklungsumgebung) ein, dort kann Programmcode editiert, compiliert, auf die Zielhardware übertragen und zum Laufen gebracht werden. In den 90er Jahren mußte man von verschiedenen Herstellern all diese Funktionen zusammenkaufen, ein beliebter Software Debugger war zum Beispiel der Singlestep von SDS - Singlestep Development Solutions. Andere Debugger kamen zusammen mit BDM / JTAG Entwicklungswerkzeugen und versuchten, die Funktionen eines traditionellen Emulators nachzubilden. Die Anforderungen moderner Softwareentwicklung gehen aber weg von den Hardwareemulatoren der 80er Jahre zu mehr Prozessorientierten Vorgehensweisen, in denen das Tool unter einer Oberfläche seine Arbeit macht, ohne dem Ingenieur seine Eigenheiten aufzuzwingen. Neuere IDE gibt es von Greenhills und Wind River Systems.

Lange Download-Zeiten sind ein heikles Thema für BDM/JTAG Tools, denn die serielle Verbindung zum Zielsystem läßt keine hohen Übertragungsraten zu. Beim BDM geht es bei schnellen PowerPC immerhin mit einigen Mbit zur Sache, Flash wird meist so schnell programmiert, wie es der Baustein zulässt. Beim JTAG dagegen helfen auch hohe Taktfrequenzen wenig, wenn lange JTAG Kommandoketten übertragen werden müssen, um ein wenig Code auf das Target zu laden. Abhilfe bringen hier zwei Methoden, zum Einen das differentielle Herunterladen von nur den Code-Teilen, die sich momentan im Debug befinden und die per compile-link geändert wurden, dies setzt modulare und verschiebbare Programmblöcke voraus; oder zum Anderen ein schnelles Paralleles Interface auf dem Target, über das direkt in den Hauptspeicher geladen wird, hier sind allerdings Änderungen an der Hardware notwendig und die Anschaffung des Tools ist aufwendiger, dafür können in Sekunden viele MByte geladen werden, die nur über JTAG schon mal einige Minuten dauern können.

vom Embedded Spezialist für Tools und Computer

[Ende der 90er Jahre galt es noch, Überzeugungsarbeit zum Kauf von JTAG/BDM Tools zu leisten!]

Entwicklungswerkzeuge für 32-bit Mikrokontroller und Hochleistungsprozessoren ARM MIPS PowerPC Hitachi SH. Enwicklungslösungen für die Prozessorfamilien Motorola CPU32 68332..68360..68376, PowerPC 4xx, 5xx/8xx, 603, 7xx, 74xx, 970 und MPC 8240,8245,8260,8264,8265 sowie alle Motorola Coldfire, wie auch ARM7 TDMI, MIPS 4k!

Embeddedexpert hat die Nase vorn mit Entwicklungserfahrung bei Systemintegration und Kundensupport.

Das eingesetzte Produktspektrum in embedded Entwicklungen reicht vom Simulator über Single-Board-Computer über Emulatoren die entweder stand-alone oder in einer Echtzeit-Entwicklungsumgebung eingebunden sind bis hin zu BDM / JTAG-Controllern für die Fertigung und Wartung.

Diese Tools gestatten Ihnen, ein PowerPC Project bis in die tiefsten Details zu testen und zu verifizieren. Wir zeigen Ihnen Prozessor-Cache in Echtzeit, mit Timestamp und wichtigen Details. Sie können, während der Prozessor läuft, den Cache ein- oder ausschalten und sehen sofort im Echtzeit-Trace das Resultat.

Perfekte Unterstützung neuester PowerPC Prozessoren, die kompletten MPC 8xx/5xx Familie mit MPC855T, MPC857, MPC860, und MPC862, sowie MPC555 und neueste Automotive Derivate Spanish Oak, Silver und Green Oak MPC561, MPC563, MPC565!!

Aus der klassischen PowerPC Familie werden MPC603, MPC740, MPC750, MPC755 und ALTIVEC Prozessoren MPC7400, MPC7410, und MPC7450 unterstützt.

Nicht zu vergessen die komplette MPC 82xx Prozessorfamilie: MPC8240, MPC8245, MPC8260 MPC8261 MPC8264 MPC8265.

Skalierbarer, hochwertiger Background Debug Mode Controller

Das Basisgerät verkörpert einen voll ausgestatteten BDM / JTAG Controller, der zu einem hochwertigen Emulator ausgebaut werden kann. Die BDM / JTAG Lösung nutzt die gesamte Leistung des BDM / JTAG Protokols und kann zum effizienten Hardware-Debugging verwendet werden. Die Ausstattungsmerkmale von Debugging-Tools beinhalten:

Hardware- und Firmware-Entwicklung

  • Der BDM / JTAG -Controller identifiziert schnell und einfach Hardwareprobleme wie Kurzschlüsse und offene Verbindungen auf den Prozessorbussen.
  • Die Tools unterstützen die Register-Utilities eines Software Debugger auf PCs und Workstations. Sie können vereinfacht die komplexen internen Register und Chip Selects der PowerPC CPUs einzustellen und generieren auf Knopfdruck den entsprechenden Assembler-Initialisierungscode.
  • Wenn Ihr Boot-Programm einmal steht, programmiert der BDM / JTAG -Controller alle Standard FLASH-Speicher in Geschwindigkeiten bis zu 150 kbyte/sec - abhängig vom Flash- und Prozessortyp.

Software Entwicklung

  • BDM / JTAG Tool bietet dynamische Testmöglichkeiten einschliesslich Performance Analyse und Code Profiling.
  • ermöglicht Ihnen eine bessere Target-Steuerung mittels BDM / JTAG. Debug-Werkzeuge unterstützen die Möglichkeit, auf die Schnelle Targetinformation durch den Target Snapshot zu erhalten.
  • Entwicklungs-Werkzeuge sind modular ausbaubar. Zum Beispiel ein Event-Trigger System mit 64 Hardware Komparatoren auf acht Logik-Ebenen, fünf unabhängigen Zählern, 48 bit Zeitauflösung und individueller Bit-Maskierung. Speziell zugeschnitten auf moderne PowerPC-Busprotokolle kann das Tool korrekt zeitversetzte Buszyklen lesen in Situationen wo Logikanalysatoren versagen.

Produktion / Test

  • BDM/JTAG Tool ermöglicht die automatische Programmierung von On-board FLASH Speichern in der Produktion.

Software Debugger Third Party Integration

Debugger wurden für vielfältige Platformen, wie Windows 98, Windows 2000, XP und NT 4.0, Solaris, SunOS, HP-UX, sogar AIX und Apple MacIntosh angeboten, schon heute fallen oft die UNIX-Derivate unter den Tisch und oft gibt es nicht einmal eine Unterstützung von Linux auf PCs oder Workstation

Zur BDM / JTAG -Steuerung und Echtzeitanalyse auf SUN und HP UNIX- und LINUX-Workstations gab es Softwaredebugger. Diese beinhalten selektives Trace und mit C / C++ Code kompatible Trace-Anzeige sowie eine reiche Auswahl an Debugging-Features.

Flexibilität und Funktionen wie Task abhängiges Debugging mit Berücksichtigung des Echtzeitbetriebssystems RTOS Kernel. Emulatoren sind 100% kompatibel mit den Standardversionen gängiger Debugger. Wichtige Punkte zur Software-Integration sind:

  • Kompatibilität zu Standard Debuggern. Sie brauchen keine verschiedenen Debugger-Interfaces zu verwenden, welche die Kosten der Entwicklungswerkzeuge erhöhen und ersparen damit Ihren Entwicklern das Erlernen weiterer Grafischer Benutzeroberflächen.
  • Task-abhängige Fehlersuche ist in komplexen Echtzeitsystemen auch mit BDM / JTAG Tools möglich!
  • Neben GUI graphischen Benutzerinterface oft ein ASCII Command Line Interface, um mit dem Target in einer Startup-Phase zu kommunizieren oder mit selbstprogrammierten Debug-Skripten schnell Fehler zu isolieren.
  • Manche Tools haben ein serielle RS232-Schnittstelle auf der Frontseite des Gehäuses, die Ihnen ermöglicht, eine serielle Schnittstelle des Targets über ein Netzwerk zu nutzen. So können Sie zum Beispiel auf Workstations in einem separaten Telnet-Fenster die Ausgaben ihres Targets erscheinen lassen. Sie haben drei Sichtmöglichkeiten auf Ihr Target : Auf hohem Niveau mit integrierter Software, auf ASCII-Niveau in einem Telnet Fenster mit Tool und in einem weiteren Telnet-Fenster die Aktivität der seriellen Schnittstelle des Targets.

Echtzeit-Trace und Target Control

Führende Debugging-Lösungen verwenden Hochleistungsemulation und BDM/JTAG zur Targetsteuerung und eine Echtzeit-Logikanalyse für Trace Break Event in einem integriertem Package.

Manche Tools können eigenständiger BDM Controller oder Steuerung für das gesamte System sein. Integrierbar in das Entwicklungssystem ist ein High-End-Logikanalysator mit vielen Debugging-Funktionen. Welche Vorteile hat dieses passive Trace System gegenüber herkömmlichen aktiven In-Circuit-Emulatoren?

  • Zuverlässlichkeit:
    BDM Tool ersetzt nicht den Target-Mikroprozessor und bietet dadurch verschiedene Verbindungsmöglichkeiten einschließlich einer direkten Target-Steck-verbindung. Diese Lösung erlaubt Ihnen, ihre CPU auf dem Target zu lassen und durch die Vermeidung verbogener / gebrochener Pins und unzuverlässiger Adapter-Stecker Zeit zu sparen. Die direkte Steckverbindung kann gegebenenfalls über ein 15 cm langes Bandkabel erreicht werden, auf diese Weise wird das Target selbst in Racks und an anderen schwer zugänglichen Stellen erreicht. Tool benutzt ihre Orginal-CPU und erzeugt keine künstlichen Probleme, wie dies bei herkömmlichen, aktiven Emulatoren der Fall ist (Fan-out, Timing, Kapazität, etc.).
  • Flexibilität in der Prozessorenwahl:
    Ein-und-das-selbe! BDM Tool unterstützt sämtliche Versionen des MPC860, ebenso wie 555, 823, 850 oder 821 und alle denkbaren Chip-Revisionen. Als weitere Motorola MCU-Familien mit BDM Interface werden Motorola CPU32 6833x, 6834x, 68360, ColdFire 52xx / 53xx / 54xx Prozessoren unterstützt.
  • Kosteneffizienz:
    Obwohl dieses passive Trace und Event System bessere Debug-Möglichkeiten (Event Trigger auf Logikebenen, umfangreiches Trace, detaillierte Zeitnahme) bietet, kostet es einen Bruchteil des Preises eines aktiven Emulators. Ebenso ist ein Tool universell (wiederverwendbar) darin, daß es alle Motorola Prozessoren einer Familie unterstützt : CPU32 (683xx), MPC 5xx/8xx, MPC603 und MPC740..MPC755, MPC 8240 und MPC8260 oder Coldfire MCF5206, 5206e, 5307.

High End Emulation hat kurz zusammengefasst folgende Funktionen:

  1. Code auf das Target laden,
  2. Target starten und anhalten,
  3. Target Speicher bzw. Register lesen und schreiben,
  4. Hardware Event-System unterstützen, und
  5. Echtzeit-Trace mit Zeitmaßstab.

Diese fünf Basisanforderungen an einen In-Circuit-Emulator können unterschieden werden in Target Control Funktionen (1) bis (3) und Trace und Event Funktionen (4) und (5). Historisch war eine aktive Architektur notwendig, um diese Anforderungen zu erfüllen. Normalerweise wurde an Stelle der CPU eine Sonde des Emulators in einen Sockel auf das Target gesteckt. Von dort aus wurde das Target gesteuert und Hochgeschwindigkeits-Signale von der Emulatoreinheit an das Target gepuffert. Diese Architektur war akzeptabel für einfache Prozessoren aber auch dort gab es Zuverlässigkeitsprobleme und ein Wechsel des Prozessortyps war eine teure Angelegenheit.

  • Zuverlässigkeit
    Aktive Emulatoren benutzen nicht den orginal Mikroprozessor des Targets und verlangen, daß dieser Prozessor vom Board entfernt bzw. in den hochohmigen Zustand versetzt wird. Der Emulator selbst wird über einen gebrechlichen und teuren Adapter auf das Target verbunden. Selbst bei einfachen CPUs gab es häufig Probleme mit wackligen Steckverbindungen und empfindlichen Kabeln. Diese Probleme sind bei modernen Packagetechnologien wie QFP, TQFP und BGA nicht mehr beherrschbar. Und da herkömmliche Emulatoren den Target-Mikroprozessor ersetzen, gab es oft auch Probleme geben, die eben von dieser Konfiguration erzeugt werden. Zum Beispiel schafft der Emulator mit den langen Kabeln nicht die Performance des Prozessors auf dem Board oder er weicht in seinem Verhalten vom orginal Prozessor ab.
  • Prozessor-Abhängigkeit
    Aktive In-Circuit Emulatoren (ICE) benötigen oft komplizierte Auf- bzw. Umrüstungen. Zum Beispiel bei einem Wechsel der Prozessorgeschwindigkeit von 25MHz nach 50MHz, einer neuen Revision, oder gar einem Wechsel auf einen anderen Prozessor in der selben Familie.
  • Kosten
    Aktive Emulatoren sind teurer, weil sie die bi-direktionale Pufferung von Targetsignalen benötigen. Für schnellere Mikroprozessoren wird es zunehmend schwieriger und teurer, aktive Emulatoren zu bauen.

Motorola hat Ende der 80er Jahre das Problem steigender Emulator-Kosten erkannt und ebenfalls, daß sich die Situation mit schnelleren Mikroprozessoren nicht verbessern wird. Ohne akzeptable Emulatoren bzw. Entwicklungswerkzeuge würden zukünftige Kunden kaum Motorola Prozessoren als Basis ihrer Produkte wählen. Vorausschauend hat Motorola die notwendigen Schritte unternommen, um Debug-Funktionen in den Chip zu verlagern: Background Debug Mode, kurz BDM, ist in den Mikrocontrollern CPU32 (683xx), PowerPC 8xx und Coldfire 5xxx implementiert. Bei bester Ausnutzung kann Background Mode komplettes Target debugging (#1 bis #3 der Liste oben) oder rund 70% der Funktionen eines aktiven Emulators verkörpern.

Die Einbeziehung von Debug-Funktionen in den Prozessorchip hat die Umgebung, in welcher der In-Circuit Emulator arbeitet,vereinfacht. Mit Hilfe eines integrierten Software-Debuggers kann ein herkömmlicher Emulator durch einen Bus-Status-Analysator ersetzt werden. Dieser Analysator ist passiv während ein aktiver Emulator den Prozessor im Targetsystem durch Hardware im Emulator ersetzt und sämtliche Prozessorsignale das Kabel zwischen Emulator und Targetsystem überwinden müssen.

Integrierte Emulationsmethode, BDM und Bus-Status Analyse, bietet Trace- und Event-Möglichkeiten ohne die Zuverlässigkeitsprobleme, Beschränkungen und Kosten eines aktiven Emulators.

Vielen Dank für die Zeit, die Sie sich für diese Lektüre genomen haben. Ich denke, daß skalierbare Entwicklungswerkzeuge die beste Lösung für Ihr Projekt sind.

  • Es gibt skalierbare Entwicklungswerkzeuge für die MC683xx / MPC8xx / Coldfire Microcontroller Familien, der orginal Mikroprozessor wird belassen und die mechanischen und Leistungsprobleme wie bei einem aktiven Emulator fallen fort. Ein weiterer großer Vorteil ist die Unempfindlichkeit dieses Systems gegenüber Designänderungen, wie ein Wechsel der Prozessorfrequenz, eine neue Chip-Revision, oder gar ein Wechsel der Prozessorfamilie!
  • Die Integration gängiger Software-Entwicklungswerkzeuge mit Hardwareunterstützung. Unsere Entwicklungswerkzeuge spielen mit den selben Versionen von Debuggern, die Sie vielleicht schon gekauft haben, zusammen und bieten Task-spezifische Debugging Funktionalität. Achten Sie auf die Integrationsmöglichkeiten von Debugger- und Kernel-Werkzeugen bei Produkten anderer Emulatorhersteller. Bitte kontaktieren Sie uns für eine aktuelle Liste kompatibler Debugger.

Vielen Dank für Ihr Interesse und zögern Sie nicht, uns weitere Fragen zu stellen. Wir freuen uns auf Ihr Embedded Projekt!

Mit freundlichen Grüßen vom Embedded Spezialisten

Bernhard Kockoth


Entwicklungswerkzeug Development Debug Tool BDM/JTAG Debug Echtzeittrace Source Code Debugger

| Home | Services | Product Manager | Impressum |

Embedded Expert 2006 - Alle Marken, Warenzeichen und Handelsnamen sind Eigentum der jeweiligen Inhaber.

© BK media systems 2002, 2017.

All trademarks and registered names are property of their respective owners. German law requires Impressum