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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.