Forum: Mikrocontroller und Digitale Elektronik j-Link und Eclipse (LPC1788) - Cortex M3


von C. M. (chrisliebaer)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich konfigurieren nun schon den ganzen Tag rum, wälze Dokumentationen 
und frage Google, aber ich komm auf keine Lösung.

Ich habe ein Eval Board mit einem LPC 1788 (Cortex M3). Der Compiler und 
die Linkereinstellungen sind inzwischen alle auch korret. Heute ist mein 
j-Link gekommen und ich wollte nun noch den Hardware Debugger in Eclipse 
einrichten.

An der Stelle bitte keine Hinweise auf alternative IDEs ich habe mir 
inzwischen vermutlich alle kostenlosen IDEs angesehen und mir ist 
Eclipse einfach immernoch am liebsten.

Mein Problem ist nurnoch die Konfiguration des Hardware Debuggings. 
Aktuell sieht das so aus, wie auf den Screenshots. Ich hatte 
zwischenzeitlich auch eine Konfiguration, die zumindest jedes zweite mal 
lieft, solang ich mindestens einen Breakpoint gesetzt hatte. (ja ich 
weiß, das klingt mystisch :))

Ich bin mit Hardwaredebugging nicht alzusehr vertraut. Ich hatte damit 
zwar schon während der Ausbildung zu tun, nur musste ich es dort nicht 
einrichten. Die Frage ist nun als mehr oder weniger, was ich in die 
Felder "Initialization Commands" und "Run Commands" schreiben muss. 
Aktuell läuft der ARM aus dem Flash. Die Dokumentation von Segger 
schreibt:

3.4.2 Debugging in flash
When debugging in flash the stack pointer and the PC are set 
automatically when the target is reset after the flash download. Without 
reset after download, the stack pointer and the PC need to be 
initialized cor-rectly, typically in the .gdbinitfile. [..]

An der Stelle habe ich bereits das Problem, dass ich keine Dokumentation 
zum Eclipse Hardwaredebugging finde. Welche der beiden Commandofelder zu 
welche Zeitpunkt ausgeführt wird, etc..

Kann mir da vielleicht jemand entweder sagen, welche Registerwerte ich 
da für den LPC1788 setzten muss, oder (viel lieber) erklären, wo ich 
diese finde. Ich habe diesbezüglich noch das Datenblatt durchforstet und 
im startup nach initialisierungen des Stackpointers und ähnlichem 
gesucht, aber nichts gefunden, mit dem ich etwas anfangen konnte.

Für jede Hilfe wäre ich dankbar

Grüße
Chris

von C. M. (chrisliebaer)


Lesenswert?

Ich konnte das Problem nun für mich zufriedenstellend Lösen:

Ich habe gerade festgestellt, das NXP in den Libfiles vom CMSIS eine 
funktionierende Debugger Konfiguration mitliefert, die ich erfolgreich 
mehrfach übersehen habe (Schande über mich).

- gdb_ram_init.jlink
- gdb_rom_init.jlink

Diese habe ich dann noch ein klein wenig angepasst und in den Eclipse 
Dialog kopiert. Das sieht nun so aus:

Tab "Debugger"
"Use remote target" - kein Hacken, das remote Target wird manuell 
gesetzt (ich trau da Eclipse nicht so ganz)

Tab "Startup"
Initialization Commands
keine Haken
im Textfeld:
1
target remote localhost:2331
2
monitor interface jtag
3
monitor flash cpuclock = 120000000
4
monitor flash device = LPC1788
5
monitor flash download = 1
6
monitor flash breakpoints = 1
7
monitor speed auto

Dann entsprechend die Haken für das Laden der Symbole und das kopieren 
des Binaries.

Und bei Runtime Options:
keine Haken
im Freitextfeld:
1
monitor clrbp
2
monitor reset 0
3
monitor reg r13 = (0x00000000)
4
monitor reg pc = (0x00000004)
5
monitor reg r13
6
monitor reg pc
7
continue

Seltsamerweise löst in der Main immernoch ein Breakpoint aus, ich denke 
mal, das hängt damit zusammen, dass das Target nicht sofort angehalten 
wird und dann eben an der Stelle erst zum stehen kommt. Wieso genau das 
so ist, find ich sicherlich noch raus, vielleicht mag es mir auch jemand 
erklären. Jedenfalls habe ich diese Konfiguration nun mehrfach getestet 
und sie hat anstandslos funktioniert.

Grüße
Chris

von Michael X. (Gast)


Lesenswert?

Hallo Chris,
danke dass Du Deine Lösung mit uns geteilt hast. Ich stehe nämlich 
demnächst vor demselben Problem. ;-)

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.