Forum: Mikrocontroller und Digitale Elektronik OpenOCD ARM9 programmieren über Debug Communication Channel


von MicroMann (Gast)


Lesenswert?

Hallo,

Ich möchte meinen AT91RM9200 über OpenOCD und Amontec JTAGKey
programmieren.
Dazu schiebe ich einen Bootloader in das interne SRAM, was die
Initialisierung des Controllers vornimmt und anschließend das Comms
data register pollt (gemäß ARM Appnote 38) , um dort das binary file zu
empfangen.
Die Daten werden dann direkt ins BootFlash geschrieben.

Soweit zur Theorie.

Nun bin ich mir aber unschlüssig, wie ich mit OpenOCD ein binary nicht
an eine bestimmte Adresse schiebe, sondern nur an das Comms data
register übergebe.
1. Ist das überhaupt möglich ?
2. Wenn ja, wie bewerkstellige ich das ? Die Doku von OpenOCD schien
mir kein passendes Kommando anzubieten.
3. Fällt das schon in die Kategorie des (nicht implementierten)
semihostings ?
4. Und falls Dominic auf diesen Post antwortet : Gibt es schon
Bestrebungen für Semihosting ? (Und nochmal 1024 dank für dein geniales
Programm !)

von Dominic R. (dominic)


Lesenswert?

1. Jein. OpenOCD verwendet den DCC selbst, um die Downloads zu
beschleunigen. Ich erreiche damit ~120kb/s beim Download via JTAGkey
auf ein LPC2294 board (ext. SRAM).
2. arm7_9 dcc_downloads enable, anschliessend verwenden load_binary und
'flash write' DCC downloads. Dazu muss eine working_area für das
Target definiert sein, die sich nicht mit dem Bereich überlappen darf,
in den Daten geschrieben werden. Z.B. internes SRAM des LPC2000, und
nur "flash write" verwenden, oder obere 4k des int. SRAM, und nur in
den Bereich darunter schreiben.
3. Jein. DCC würde man für Semihosting benutzen, aber das ist eben
nicht implementiert.
4. Im Moment nicht. Zur Zeit (bzw. wenn ich wieder Zeit habe) arbeite
ich an der Integration eines Patches für MinGW, was allerdings etwas
aufwendiger ist, da ich nicht zig Hacks für jede mögliche Plattform
habe will. Ausserdem steht die Unterstützung für Intel XScale zur Zeit
ziemlich hoch auf meiner Liste.

Gruss,

Dominic

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.