Forum: Mikrocontroller und Digitale Elektronik ARM JTAG Problem


von Lothar (Gast)


Lesenswert?

Hallo,

ich möchte gerne abwechselnd per JTAG debuggen und per FlashMagic 
(seriell) eine HEX-Datei im Flash neu schreiben (ab 0x20000). Das 
Programm greift dann dort auf die Daten zu.

Das Problem ist, FlashMagic funktioniert nur mit ISP-Pin und seriell 
Reset. Somit muss ich für das Debuggen entweder das serielle Kabel 
abziehen, oder die Jumper ISP und RST rausmachen. Jedesmal!

Kann man vielleicht auch über JTAG eine HEX-Datei in den Flash 
schreiben? Oder gibt es eine Hardware-Lösung am JTAG? Oder muss ich 
tatsächlich einen Switch zum Umschalten von ISP und RST auf das Board 
machen?

Zum Hintergrund: das Programm ist ein Webserver, und ich optimiere das 
JavaScript im index.html. Debugging erfolgt derzeit mit IAR.

Danke!
Lothar

von Thomas W. (diddl)


Lesenswert?

Klar kann man über JTAG (auch über SWD) HEX files flashen. Ich mach das 
nur so.

von Lothar (Gast)


Lesenswert?

Und wie geht das mit IAR (C-SPY J-Link)? Bei Download gibt es die 
Optionen:
- Active Application (also das Programm)
- File
Aber File akzeptiert kein HEX-File.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Lothar schrieb:
> Aber File akzeptiert kein HEX-File.

Dann wirst Du das Format konvertieren müssen.

von Lothar (Gast)


Lesenswert?

Konvertieren des HEX-File z.B. in ein ELF-File nützt nichts, der 
Debugger macht dann zwar das File auf, erkennt aber, dass es kein 
Programm ist.

Error: This is not a file with debug information.

Wie gesagt, es geht darum, unabhängig vom Programm, das vom Debugger 
geflasht wird, Daten in einen höheren Speicherbereich zu flashen.

von TestX .. (xaos)


Lesenswert?

Lothar schrieb:
> Zum Hintergrund: das Programm ist ein Webserver, und ich optimiere das
> JavaScript im index.html. Debugging erfolgt derzeit mit IAR.

tipp zum entwicklen: nicht jedesmal neu flashen sondern die javascript 
dateien etc. auf nen webserver auf deinen entwicklungsrechner 
auslagern..

von Lothar (Gast)


Lesenswert?

Andi D. schrieb:
> tipp zum entwicklen: nicht jedesmal neu flashen sondern die javascript
> dateien etc. auf nen webserver auf deinen entwicklungsrechner
> auslagern.

Das habe ich zunächst schon so gemacht: die Webpages auf dem 
Mikrocontroller holten sich das JavaScript von einem anderen Webserver. 
Aber jetzt geht es um Optimierung, und ich muss das JavaScript auf dem 
Mikrocontroller implementieren, z.B. die Callbacks. Und damit ich nicht 
immer das ganze Programm flashen muss, möchte ich nur das Segment mit 
den Daten flashen (was mit FlashMagic ja geht, nur nicht mit dem 
Debugger).

von W.S. (Gast)


Lesenswert?

Lothar schrieb:
> abwechselnd per JTAG debuggen und per FlashMagic..

Wo ist dein Problem? Bei allen mir bekannten ARM's haben Bootlader via 
UART und JTAG keinerlei Überschneidungen.

Auch bei /ISP und /RESET sehe ich kein Problem. Die sollten ja per 
Opencollector-Treiber angesteuert werden und auf der LP per Hochzieher 
auf Hi gehen. Hast du da etwa TTL-Ausgänge gebastelt, die sich dann ins 
Gehege kommen?

W.S.

von Lothar (Gast)


Lesenswert?

W.S. schrieb:
> Lothar schrieb:
>> abwechselnd per JTAG debuggen und per FlashMagic..
>
> Wo ist dein Problem? Bei allen mir bekannten ARM's haben Bootlader via
> UART und JTAG keinerlei Überschneidungen.
>
> Auch bei /ISP und /RESET sehe ich kein Problem. Die sollten ja per
> Opencollector-Treiber angesteuert werden und auf der LP per Hochzieher
> auf Hi gehen. Hast du da etwa TTL-Ausgänge gebastelt, die sich dann ins
> Gehege kommen?
>
> W.S.

Sie gehen auf High, wenn kein serielles Kabel zwischen Board und PC 
angeschlossen ist. Das Kabel zieht dann RST auf low (wenn der RST Jumper 
gesteckt ist). Eben deswegen muss man das serielle Kabel entweder am 
Board oder am PC abziehen für den Start des Debuggers (oder den Jumper 
ziehen).

Ich denke ich mache einen 2-Pol Kippschalter für ISP und RST drauf ...

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.