STM32 Debugger meldet No source available

Gast #4342217
Lesenswert?

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!
Angehängte Dateien:
Gast #4343142
Lesenswert?

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...
Gast #4343156
Lesenswert?

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!
Gast #4343313
Lesenswert?

>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.
Gast #4343554
Lesenswert?

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...
Gast #4343656
Lesenswert?

>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)
Gast #4344196
Lesenswert?

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!?!
Gast #5954729
Lesenswert?

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...
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren