Forum: Mikrocontroller und Digitale Elektronik ARM Echtzeit-Emulation


von Joerg F. (Firma: Rapid Devices) (e-joerg)


Lesenswert?

Hallo zusammen,

ich bin auf dem Weg in die ARM-Welt  und versuche gerade einen Überblick 
zu bekommen was an Dev-Tools so alles gut und böse ist.

Jetzt habe ich gehört das alle ARM7 keine Möglichkeit zur Echtzeit 
Emulation, d.h. Variablen in Echtzeit verfolgen und Vernküpfte 
Breakpoints haben weil ihnen das Interface fehlt. Hierfür kommen nur die 
ARM9 in Frage.

Ist das richtig so ?
Man kann aber ein Trace über einen JTAG-Trace aufzeichen ?

Danke für eure Tipps
Grüße Jörg


von Robert Teufel (Gast)


Lesenswert?

Naja, nicht so ganz,

kommt stark auf die jeweiligen Typen an. Angenommen die Chips haben ein 
ETM interface (kostet 10 Pins falls es auf dem Chip ist), dann kann in 
Echtzeit der Code verfolgt werden. Je nach Bandbreite des ETM, siehe 
Datenblatt, ist eine Verfolgung einer oder mehrerer Variablen auch 
moeglich. Bei einem 4-bit breiten ETM ist es ratsam, sich auf eine 
Variable zu beschraenken, bei 8-bit breitem ETM oder der Kombination ETM 
+ ETB lassen aich auch mehrere Variablen in Echtzeit verfolgen.

Mehrfache Breakpoints im Flash ist so ne Sache. Die ARM7 Architektur 
bietet nur 2 sogenannte Hardware Breakpoints an aber beliebig viele 
Software Breakpoints. Wenn also im SRAM Debugging stattfindet, gibt es 
Breakpoints nach Herzenslust, im Flash ist das sehr limitiert. Da hat 
allerdings die Firma Segger mit dem J-Link eine tolle Erweiterung 
gemacht, die beliebig viele Flashbreakpoints zulaesst.

Trace ueber JTAG ist nicht moeglich, nur Breakpoints, d.h. man weiss 
nachher wo man ist, z.B. in der Fehlerroutine, aber wie man dorthin 
gekommen ist bleibt ein Raetsel bei Chips die nur JTAG haben.

Tip: Im ARM7 gibt es meines Wissens nach nur NXP mit ETM, im ARM 9 
Bereich haben die anderen Hersteller das auch als notwendig angesehen. 
Im ARM7 Bereich gibt es nur das 4-bit breite ETM, im ARM9 auch das 8-bit 
breite. Flash Breakpoints von Segger gibts fuer die NXP LPC2000 Chips 
einfach zum runterladen, fuer andere muss man da schon etwas in die 
Tasche greifen.

ETM steht fuer "Embedded Trace Macrocell", ETB steht fuer "Embedded 
Trace Buffer" und fuer beides gibt es gute informationen auf der ARM 
Webseite.

Trace Optionen fangen so ca. bei 1K Euro an, z.B. J-Trace Segger, aber 
nach oben sind die Grenzen weit gesteckt. Siehe auch Hitex, Lauterbach, 
iSystems, Signum mit dem JTAGjet-Trace ... usw.
Sehr breites Angebot in Preis und Leistung.

Robert

von Joerg F. (Firma: Rapid Devices) (e-joerg)


Lesenswert?

Hi Robert

Danke für deine Antwort.

Ich bin heute nach einem ganzen Tag telefonieren ein Stück weiter 
gekommen.
Das Segger J-link mit RDI Software wird es wohl werden , weil ich von 
anderen Systemen mit Emulations-Prozessor unlimited Breakpoints gewohnt 
bin.

ETM ist verstanden , aber man kann ja Variablen mit einer begrenzten 
zeitlichen Auflösung auch mit DCC verfolgen.
Hier wird ein anderes internes Modul (DCC) und eine Monitor_Software zum 
DMA verwendet ?
Welchen Zusammenhang von IDE, JTAG und DCC es gibt ist mir derzeit aber 
noch schleierhaft.
Wird den der DCC Zugriff in das JTAG Protokoll gemappt ?

Ich hab jetzt jedenfalls ein Olinex mit LPC2148 bestellt.
Jetzt fehlt nur noch eine IDE.
Ich werde hier im Forum nochmal die anderen 100 Threads zum Thema 
studieren ,welche IDE es den sein soll.
Dann kann ich nur hoffen das der Start nicht allzu holperig wird...

Grüße Jörg




von Robert Teufel (Gast)


Lesenswert?

Hallo Joerg,

ich mag die Funktionen des J-Link auch! Welche IDE; Am besten werden die 
LPC2000 von Keil, IAR und Rowley unterstuetzt. Natuerlich ist Yagarto 
auch eine Moeglichkeit. Segger arbeitet mit all den IDEs, am meisten 
getestet mit IAR weil es da Kits gibt. Evtl. ein Starter Kit von IAR mit 
J-Link bei www.lpctools.com bestellen. Kostet zwar etwas mehr Fracht, 
die jungs sitzen naemlich in den USA aber da gibt es Board + J-Link zum 
Preis von ansonsten Board allein. Weiss nicht onb es solche Kits in 
Europa billger gibt.
Solche packages gibts auch von Keil, allerdings unterstuetzt das U-Link 
nicht die unlimited Flash Breakpoints, ansonsten aber ebenfalls sehr zu 
empfehlen.
Fuer professionelle Anwender, der auch ab und zu Untertuetzung 
benoetigt, wuerde ich ein Tool kaufen, als Hobbyanwender wahrscheinlich 
runterladen.


Gruss, Robert

von Rolf Segger (Gast)


Lesenswert?

Noch eine kleine Ergänzung zum Thema DCC:

DCC (Direct communication channel) ist eine Möglichkeit, via JTAG mit 
der CPU zu kommunizieren. Diese kann zu verschiedenen Zwecken genutzt 
werden,
z.B. Terminal I/O, Echtzeit monitoring von Variablen oder Speicher oder 
um mit einem RTOS zu kommunizieren dass über diese Fähigkeiten verfügt.

Was immer benötigt wird ist ein Stück software im Target, dass DCC 
bedient,
also die entsprechenden Infos zur Verfügung stellt.

Das ganze kann wie gesagt zum Echtzeit-Lesen von Speicher und damit 
Variablen verwendet werden. Wird bei IAR auch gemacht im "Live-Watch" 
window.

Geht aber prinzipiell auch ohne IAR. Beispiel code für's target in der
Dokumentation des J-Links.

Rolf

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.