Hallo, ich bin absoluter Neuling im Bereich ARM-Cortex Programmierung und für jede Hilfe dankbar. Für den Einstieg habe ich mir ein STM Nucleo-Board zugelegt (Nucleo-STM32F103 mit MCU STM32F103RBT6). Als IDE habe ich Eclipse genommen und bin nach folgendem Tutorial vorgegangen: http://klaus4.blogspot.de/2014/05/stm32f4-discovery-mit-opensource.html Am Ende dieses Tutorials wird gezeigt, wie man den OpenOCD-Debugger einrichtet. Compilieren funktioniert ohne Fehlermeldungen, jedoch meldet der Debugger: 'No source available' (Siehe angehängte Screenshots). Habe hier im Forum und auch über Google versucht mir selbst zu helfen, leider ohne Erfolg. Was mache ich falsch, wie kann ich das Problem eingrenzen? Vielen Dank!
Ist das Programm mit Debug-Infos compiliert worden? Prüf mal auf "-g" in den gcc-Aufrufen. Gruß Marius
Stack overflow oder Kommunikationsproblem. Auf Addressen bei 0xF0000000 liegt kein ausführbarer Speicherbereich im Cortex M3.
Hallo, danke schonmal. @Marius Wensing: Wo in Eclipse prüfe ich das bitte?
Hallo, auf der Karte, die in der Verpackung des Nucleo lag steht drauf: Cortex-M4 72 MHz, im Datenblatt steht aber Cortex-M3. Habe nun unter Project-Properties-->C/C++ Build-->Settings-->Tool Settings-->Target Processor den cortex-m3 ausgewählt und das Projekt neu compiliert. Jedoch kommen exakt dieselben Fehler. Meine Main-Routine sieht wie folgt aus:
1 | while (1) |
2 | {
|
3 | HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); |
4 | HAL_Delay(1000); |
5 | |
6 | /* USER CODE END WHILE */
|
7 | |
8 | /* USER CODE BEGIN 3 */
|
9 | |
10 | }
|
11 | /* USER CODE END 3 */
|
12 | |
13 | }
|
Aber die LED blinkt nicht, debuggen geht auch nicht, da immer noch 'No source available for "0x0"' angezeigt wird. Wie komme ich da nun weiter? Danke für jede Art von Hilfe...
Hallo, hier mal der Inhalt der Console:
1 | Open On-Chip Debugger 0.9.0 (2015-05-19-12:06) |
2 | Licensed under GNU GPL v2 |
3 | For bug reports, read |
4 | http://openocd.org/doc/doxygen/bugs.html |
5 | Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD |
6 | adapter speed: 1000 kHz |
7 | adapter_nsrst_delay: 100 |
8 | none separate |
9 | srst_only separate srst_nogate srst_open_drain connect_deassert_srst |
10 | Started by GNU ARM Eclipse |
11 | Info : Unable to match requested speed 1000 kHz, using 950 kHz |
12 | Info : Unable to match requested speed 1000 kHz, using 950 kHz |
13 | Info : clock speed 950 kHz |
14 | Info : STLINK v2 JTAG v24 API v2 SWIM v11 VID 0x0483 PID 0x374B |
15 | Info : using stlink api v2 |
16 | Info : Target voltage: 3.270138 |
17 | Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints |
18 | Info : accepting 'gdb' connection on tcp/3333 |
19 | Info : device id = 0x20036410 |
20 | Info : flash size = 128kbytes |
21 | target state: halted |
22 | target halted due to debug-request, current mode: Thread |
23 | xPSR: 0x01000000 pc: 0xb9337822 msp: 0x4c05b510 |
24 | semihosting is enabled |
25 | target state: halted |
26 | target halted due to debug-request, current mode: Thread |
27 | xPSR: 0x01000000 pc: 0xb9337822 msp: 0x4c05b510, semihosting |
28 | target state: halted |
29 | target halted due to breakpoint, current mode: Thread |
30 | xPSR: 0x61000000 pc: 0x2000003a msp: 0x4c05b510, semihosting |
31 | target state: halted |
32 | target halted due to debug-request, current mode: Thread |
33 | xPSR: 0x01000000 pc: 0xb9337822 msp: 0x4c05b510, semihosting |
34 | target state: halted |
35 | target halted due to debug-request, current mode: Thread |
36 | xPSR: 0x01000000 pc: 0xb9337822 msp: 0x4c05b510, semihosting |
37 | ===== arm v7m registers |
38 | (0) r0 (/32): 0x00000020 |
39 | (1) r1 (/32): 0x00000000 |
40 | (2) r2 (/32): 0x2000003C |
41 | (3) r3 (/32): 0x2000083C |
42 | (4) r4 (/32): 0x080005A0 |
43 | (5) r5 (/32): 0x200005E4 |
44 | (6) r6 (/32): 0x00000020 |
45 | (7) r7 (/32): 0x00000014 |
46 | (8) r8 (/32): 0xBF76FFDD |
47 | (9) r9 (/32): 0xFFBFBFFC |
48 | (10) r10 (/32): 0x304C7B31 |
49 | (11) r11 (/32): 0x9C473FE3 |
50 | (12) r12 (/32): 0xFF9FEFFF |
51 | (13) sp (/32): 0x4C05B510 |
52 | (14) lr (/32): 0xFFFFFFFF |
53 | (15) pc (/32): 0xB9337822 |
54 | (16) xPSR (/32): 0x01000000 |
55 | (17) msp (/32): 0x4C05B510 |
56 | (18) psp (/32): 0x34621B6C |
57 | (19) primask (/1): 0x00 |
58 | (20) basepri (/8): 0x00 |
59 | (21) faultmask (/1): 0x00 |
60 | (22) control (/2): 0x00 |
61 | ===== Cortex-M DWT registers |
62 | (23) dwt_ctrl (/32) |
63 | (24) dwt_cyccnt (/32) |
64 | (25) dwt_0_comp (/32) |
65 | (26) dwt_0_mask (/4) |
66 | (27) dwt_0_function (/32) |
67 | (28) dwt_1_comp (/32) |
68 | (29) dwt_1_mask (/4) |
69 | (30) dwt_1_function (/32) |
70 | (31) dwt_2_comp (/32) |
71 | (32) dwt_2_mask (/4) |
72 | (33) dwt_2_function (/32) |
73 | (34) dwt_3_comp (/32) |
74 | (35) dwt_3_mask (/4) |
75 | (36) dwt_3_function (/32) |
vielleicht kann mir damit jemand erklrären, warum immer 'No source available' angezeigt wird? Danke!
>vielleicht kann mir damit jemand erklrären, warum immer 'No source >available' angezeigt wird? Hat Dir "Jim Meba" bereits um 9.25Uhr erklärt. Hier: >xPSR: 0x01000000 pc: 0xb9337822 msp: 0x4c05b510, semihosting stimmen weder der pc noch der msp. Beide zeigen in's Nichts... Du kannst 'mal in der Konsole ein (gdb) mon reset init probieren. Müsste den PC auf den Initialwert setzen und damit Dein Prog neu starten. Dann ein paar Single Steps.... Sinnvoll wäre es auch, den Linker ein Mapfile erzeugen zu lassen, damit Du siehst, was überhapt sinnvolle Adressen sind und was nicht... Und: Besorg' Dir ein gdb (GNU Debugger) und ein OpenOCD Manual. Selbst wenn Du nicht per Kommando debuggen willst, solltest Du verstehen, wie die Maschinerie zusammenhängt und funktioniert.
Hallo Gast, dnake für Deine Antwort. Natürlich ich habe den Post von Jim Meba gelesen, der hat mir aber überhaupt nichts gesagt weil ich wie gesagt absoluter Neuling im Bereich ARM Cortex bin. 'Auf Addressen bei 0xF0000000 liegt kein ausführbarer Speicherbereich im Cortex M3.' Woran hat Jim Meba denn gesehen, dass Code im Bereich 0xF0000000 liegt? >xPSR: 0x01000000 pc: 0xb9337822 msp: 0x4c05b510, semihosting Was heißt das nun? Ist da etwas mit meinen Eclipse Einstellungen nicht korrekt? Ich habe wie gesagt 'nur' das Tutorial durchgearbeitet um überhaupt mal starten zu können. Und die Probleme, die ich beschrieben habe sind jetzt nun mal da. Vielen Dank für weitere Hilfe...
Hallo nochmal...
>Sinnvoll wäre es auch, den Linker ein Mapfile erzeugen zu lassen...
wie mache ich das bitte?
>Woran hat Jim Meba denn gesehen, dass Code im Bereich 0xF0000000 liegt? An Deinem 3. Screenshot im 1. Post. Schau' genau. Die Fehlermeldung bzw. das Dissassembly Window verraten's. >>xPSR: 0x01000000 pc: 0xb9337822 msp: 0x4c05b510, semihosting > >Was heißt das nun? Ist da etwas mit meinen Eclipse Einstellungen nicht >korrekt? Das sind die Registerwerte im aktuellen Programmzustand Wiederholt sich auch noch mal da: >(15) pc (/32): 0xB9337822 >(16) xPSR (/32): 0x01000000 >(17) msp (/32): 0x4C05B510 >(18) psp (/32): 0x34621B6C Wie bist Du da überhaupt hingekommen? >>Sinnvoll wäre es auch, den Linker ein Mapfile erzeugen zu lassen... > >wie mache ich das bitte? Schau' beim Klaus, Abschnitt "Toolchain konfig" Linker Option: -Map=<mapfilename> eintragen (bei "Cross ARM C Linker"). (Dazu GNU Linker Manual lesen)
Hallo Gast, danke nochmal, >An Deinem 3. Screenshot im 1. Post. Du meinst 0xf3af4804? >Wie bist Du da überhaupt hingekommen? Keine Ahnung, ich habe halt das Tutorial durchgearbeitet und dann kam das so!?!
Ich hatte aktuell einen sehr ähnlichen Fehler und möchte meinen Fehler + Lösung erläutern: in dem Projektordner gibt es eine .cproject Datei. In dieser haben sich in der gesamten Datei Leerzeichen eingeschlichen. Dank SVN hab ich die Datei wieder in den Ursprung zurück versetzen können. Warum das passiert ist, weiß ich nicht...
ruphy schrieb: > In dieser haben sich > in der gesamten Datei Leerzeichen eingeschlichen. Die aber keinerlei Auswirkung haben, weil das XML ist und die außerhalb der Daten sind.
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.



