www.wikidata.de-de.nina.az
Ein In Circuit Emulator ICE ist ein Hilfsmittel um die Software fur ein eingebettetes System zu entwickeln Fur die Entwicklung der Software wird der normalerweise im System vorhandene Controller durch eine spezielle Variante ersetzt der direkt mit dem ICE verbunden ist Inhaltsverzeichnis 1 SW Entwicklung mit Logikanalysator 2 SW Entwicklung mit In Circuit Emulator 3 Analysemoglichkeiten mit In Circuit Emulatoren 3 1 Bedingte Programmunterbrechung Breakpoint 3 2 Einzelschrittausfuhrung Single Step 3 3 Ereignisaufzeichnung Tracebuffer 4 Grenzen von In Circuit Emulatoren 5 In System Programmer In System Debugger 6 WeblinksSW Entwicklung mit Logikanalysator BearbeitenEine Methode die Software fur ein eingebettetes System zu testen sind Logikanalysatoren Sie werden an den Kontroll Adress und Datenbus angeschlossen und zeichnen deren Signale auf Die Software des Logikanalysators kann damit nachvollziehen was der Controller auf der Zielhardware macht Mittels eines sog Tracespeichers kann damit der Programmablauf des Controllers uber mehrere hundert oder tausend Programmschritte nachvollzogen werden Die Nachteile der Methode sind eine hohe Zahl von Signalen die auf dem Zielsystem abgegriffen werden mussen schon ein 16 Bit Controller bringt es leicht auf uber 60 Signale das Fehlen der Kontrolle uber den Programmablauf keine Moglichkeit den Inhalt von Registern festzustellen und der Programmcode kann nur als Assemblercode dargestellt werden Zudem haben moderne Controller haufig ihren Speicher integriert wodurch keine externen Leitungen fur Kontroll Adress und Datenbus zur Verfugung stehen Aus diesen Grunden ist die Verwendung von Logikanalysatoren fur die Softwareentwicklung heute kaum noch in Gebrauch SW Entwicklung mit In Circuit Emulator Bearbeiten nbsp Ein ICE mit Pod fur die Renesas M16C FamilieAbhilfe fur diese Probleme bringen die In Circuit Emulatoren Diese Gerate ersetzen den eigentlichen Controller auf dem Zielsystem durch eine Hardware die die notwendigen Analysefunktionen eingebaut hat Fur die Realisierung der In Circuit Emulatoren gibt es mehrere Moglichkeiten In vielen Fallen wird eine spezielle Version des zu emulierenden Chips verwendet die zusatzliche Signale herausfuhrt um den Programmablauf verfolgen zu konnen sog Bond Out Chips Dieser Bond Out Chip so genannt weil der Prozess des Verbindens der Signale eines Chips mit den Anschlussen des Gehauses Bonding genannt wird und hier Signale herausgefuhrt werden die sonst nur intern existieren sitzt dann entweder auf einem sogenannten Pod einem Adapter der anstelle des normalen Controllers im Zielsystem angebracht wird oder direkt im Emulator und nur die Signale werden zum Pod gefuhrt Gibt es einen solchen Bond Out Chip nicht so kann auch der Controller durch FPGA oder andere Logikschaltungen komplett nachgebildet werden Dies ist dann aber moglicherweise mit einem deutlich hoheren Aufwand verbunden und garantiert auch nicht eine 100 prozentig getreue Nachbildung Der ICE ist in der Regel in die Entwicklungssoftware fur den Controller direkt integriert Dadurch kann nicht nur der aufgezeichnete Befehlscode angezeigt werden sondern im Quellcode nachvollzogen werden was der Controller gerade tut Debugging in Hochsprache und sogar das Auflosen von Betriebssystem Daten ist damit moglich Normalerweise kommt der ICE beim Debugging zum Einsatz Da er praktisch auch auf das Innenleben des Controllers einblicken und Einfluss nehmen kann beispielsweise Programcounter Stackpointer Statusregister ist der Programmablauf nun kontrollierbar Da die Zugriffe auch in wahrer Echtzeit moglich sind lassen sich damit auch Probleme analysieren die mit sogenannten In System Programmern nicht mehr erfassbar sind da diese ihre Daten uber verhaltnismassig langsame Schnittstellen bekommen Der auch schon bei den Logikanalysatoren zum Einsatz gekommene Tracespeicher ist dabei ein ausschlaggebendes Element Je tiefer dieser Speicher ist je mehr er also aufzeichnen kann desto langer zuruck kann man den Programmablauf verfolgen Dies hilft beim Debugging von komplexen Systemen enorm Vor allem Probleme mit Interrupts sind auf diese Art vergleichsweise leicht aufspurbar Analysemoglichkeiten mit In Circuit Emulatoren Bearbeiten nbsp Links Cypress ICE Cube aktueller Emulator fur PSoC und EnCoRe II III Mikrocontroller verwendet die On Chip Debugging Funktionen der Chips Rechts Cypress CY3654 Emulator fur M8 basierte Mikrocontroller mit dem Personality Modul fur EnCoRe I dieser Emulator verwendet FPGAs um den Mikrocontroller nachzubilden Die Ausstattung mit Analysefunktionen ist zwischen verschiedenen Emulatoren sehr unterschiedlich Als Mindestfunktion konnen eigentlich alle Emulatoren auf Anwenderbefehl die Programmausfuhrung unterbrechen die Programmausfuhrung bei Erreichen einer bestimmten Stelle im Programm unterbrechen und das Programm in Einzelschritten ausfuhren Dazu kommt die Moglichkeit den Inhalt der Register und des Speichers auslesen zu konnen Nachfolgend werden die Analysefunktionen aufgefuhrt die ein Emulator bieten kann Bedingte Programmunterbrechung Breakpoint Bearbeiten Im einfachsten Falle wird die Programmausfuhrung bei Erreichen einer bestimmten Stelle also einer bestimmten Adresse im Programmspeicher des Programms unterbrochen Damit lasst sich leicht feststellen ob ein bestimmter Teil des Programms ausgefuhrt wird oder es kann uberpruft werden wie der Zustand am Ende der Ausfuhrung eines bestimmten Programmteiles ist Es konnen aber auch detailliertere Bedingungen fur eine Programmunterbrechung moglich sein wie zum Beispiel Unterbrechung nach n mal Erreichen der Speicherstelle Schreib oder Lesezugriffe auf bestimmte Datenspeicheradressen oder sogar bei bestimmten Datenwerten die an eine Speicheradresse geschrieben oder von dort gelesen werden Sehr komfortabel ausgerustete Emulatoren erlauben die Verknupfung solcher Bedingungen um dann z B eine Unterbrechung zu erzeugen wenn zuerst ein bestimmter Punkt im Programm erreicht wurde und danach ein Zugriff auf eine bestimmte Adresse erfolgt Einzelschrittausfuhrung Single Step Bearbeiten Bei der Analyse von nicht zeitkritischem Code ist die Einzelschrittausfuhrung oft hilfreich Hier fuhrt der Prozessor jeweils nur einen Befehl aus und der Anwender kann dann den aktuellen Zustand uberprufen bevor er den nachsten Befehl ausfuhren lasst Damit ist es moglich dem Prozessor bei der Arbeit im Detail zuzusehen Ereignisaufzeichnung Tracebuffer Bearbeiten Kommt es in einem Programmabschnitt der auf externe Signale reagieren muss zu Problemen so sind weder Breakpoints noch Single Step adaquate Mittel da dann das Zeitverhalten des Programms verandert wird so dass die gewunschte Funktion nicht moglich ist oder der Fehler nicht auftritt In solchen Situationen ist ein Tracebuffer sehr hilfreich jedoch bei weitem nicht in jedem Emulator vorhanden und nicht unbedingt mit allen wunschenswerten Optionen versehen Der Tracebuffer zeichnet die ausgefuhrten Programmschritte auf abhangig von der jeweiligen Realisierung konnen dabei auch Registerinhalte und weitere Signale mit aufgezeichnet werden Wird das Programm unterbrochen so konnen die letzten ausgefuhrten Programmschritte nachvollzogen werden Wie viele Programmschritte aufgezeichnet werden hangt wiederum vom Emulator ab meist stehen mindestens 500 Programmschritte zur Verfugung Auch der Tracebuffer kann wieder in unterschiedlichsten Ausfuhrungen auftreten Im Optimalfall lasst sich der Tracebuffer auf Pre Post und Center Trigger konfigurieren so dass er die vor nach oder um also vor und nach einen Breakpoint ausgefuhrten Programmschritte aufzeichnet Einige Emulatoren bieten dazu noch ein bedingtes Aufzeichnen so dass z B nur Programmschritte die in einem bestimmten Speicherabschnitt liegen aufgezeichnet werden um so den knappen Tracebuffer fur die wirklich interessanten Daten zu reservieren Grenzen von In Circuit Emulatoren BearbeitenDas grosse Problem der ICE ist die hohe Taktgeschwindigkeit der heutigen High End Controller und deren manchmal extrem kurze Produktlebenszeit Fur den Hersteller des Controllers bedeutet ein Bond Out Chip fast eine Neuentwicklung desselben Damit wird er eigentlich nur dann interessant wenn er in hohen Stuckzahlen produziert werden kann Dies ist bei Entwicklungssystemen regelmassig aber nicht der Fall So haben einige Chiphersteller kein Interesse daran einen Bond Out Chip zu entwickeln andere Chiphersteller versehen aber mittlerweile praktisch alle neuen Controller mit einer ICE Schnittstelle Die hohe Taktgeschwindigkeit ist eine weitere Hurde Bei mehreren hundert Megahertz Prozessortakt ist der technische Aufwand die Signale vom Bond Out Chip zum Emulator zu leiten entsprechend hoch Je nach Ausstattung und der Komplexitat und Geschwindigkeit des zu emulierenden Controllers konnen ICE recht teure Produkte sein mehrere tausend Euro sind durchaus ublich der Rolls Royce der ICE liegt im sechsstelligen Bereich Auch ein Bond Out Chip ist oft nicht billig hier sind Preise im vierstelligen Bereich moglich Und durch eine kleine Unachtsamkeit sind diese Chips leicht zu zerstoren Im Bereich der professionellen Entwicklung steht dem Kostenaufwand aber eine erhebliche Zeitersparnis gegenuber In System Programmer In System Debugger Bearbeiten nbsp Ein ISP fur Atmel MikrocontrollerEinen Ausweg aus dieser wirtschaftlichen und technischen Zwangslage liefern die In System Programmer ISP und In System Debugger Teilweise bieten diese nicht die Tiefe der Kontrolle uber den Zielcontroller wie ein ICE so fehlt haufig der Tracebuffer wodurch komplexe zeitliche Fehler nicht so leicht zu klaren sind Jedoch sind sie um Grossenordnungen billiger die Preise liegen zum Teil im zweistelligen Bereich und kommen ohne Bond Out Chip aus In der Regel muss aber zumindest beim Entwicklungsmuster ein zusatzlicher Stecker fur ihre Schnittstelle auf der Leiterplatte integriert werden Die Hardware fur den Zugriff auf die internen Register etwa um Haltepunkte zu setzen ist dabei nicht mehr im Pod bzw Emulator untergebracht sondern auf jedem Mikrocontroller Chip bereits enthalten Der ISP stellt also lediglich die Schnittstelle zu den chipinternen Debugmoglichkeiten her Neben proprietaren Schnittstellen z B dem BDM Interface von Freescale gehen mehr und mehr Hersteller von Mikrocontrollern dazu uber die genormte aber eigentlich fur Boundary Scan entwickelte JTAG Schnittstelle zu nutzen Das Protokoll auf hoherer Ebene also mit welchen JTAG Scan Chains auf die Debug Moglichkeiten des jeweiligen Controllers zugegriffen werden kann ist aber bei jedem Hersteller und jedem Produkt unterschiedlich und meist geheim Die verwendeten Stecker sind ebenfalls von Hersteller zu Hersteller unterschiedlich Die Norm IEEE 1149 7 versucht ein einheitliches Protokoll zu etablieren Bei den PSoC Mikrocontrollern von Cypress wird uber eine solche Schnittstelle die komplette Funktion eines ICE inklusive Tracebuffer und bedingter Breakpoints realisiert Zu diesem Zweck bietet Cypress von jeder Unterfamilie der Controller mindestens den am besten ausgestatteten Chip mit dieser In System Debug Schnittstelle an der dann sowohl als Bond Out Chip fur den Emulator dient als auch fur die Produktion eingesetzt werden kann Weblinks BearbeitenEinige Chip Hersteller bieten zwar eigene ICE oder ISP an es gibt aber auch unabhangige Anbieter bei denen meist dieselbe Programm Oberflache fur unterschiedlichste Prozessoren verwendet wird was die Einarbeitungszeit bei Wechsel des Prozessors verringert iSYSTEM stellt ICEs und Debugger fur viele Mikrocontrollerarchitekturen her Hitex stellt ICEs und Debugger fur unterschiedlichste Prozessoren her Lauterbach stellt ICEs Debugger und Logic Analyzer fur nahezu alle Architekturen her Signum bietet ICEs mit und ohne Trace fur verschiedene Architekturen an Wind River bietet ICEs mit und ohne Trace fur verschiedene Architekturen an SEGGER J Link und SEGGER J Trace unterstutzen ARM und andere Architekturen in Verbindung mit Software Debuggern von IAR Keil oder auch YAGARTO Abgerufen von https de wikipedia org w index php title In Circuit Emulator amp oldid 203634443