Forum: Mikrocontroller und Digitale Elektronik STM32 Debugger meldet No source available


von T.Baumbach (Gast)



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!

von Marius W. (mw1987)


Lesenswert?

Ist das Programm mit Debug-Infos compiliert worden? Prüf mal auf "-g" in 
den gcc-Aufrufen.

Gruß
Marius

von Jim M. (turboj)


Lesenswert?

Stack overflow oder Kommunikationsproblem. Auf Addressen bei 0xF0000000 
liegt kein ausführbarer Speicherbereich im Cortex M3.

von T.Baumbach (Gast)


Lesenswert?

Hallo,

danke schonmal.

@Marius Wensing: Wo in Eclipse prüfe ich das bitte?

von T.Baumbach (Gast)


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...

von T.Baumbach (Gast)


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!

von erst lesen, dann posten (Gast)


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.

von T.Baumbach (Gast)


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...

von T.Baumbach (Gast)


Lesenswert?

Hallo nochmal...

>Sinnvoll wäre es auch, den Linker ein Mapfile erzeugen zu lassen...

wie mache ich das bitte?

von erst lesen, dann posten (Gast)


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)

von T.Baumbach (Gast)


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!?!

von ruphy (Gast)


Angehängte Dateien:

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...

von Dr. Sommer (Gast)


Lesenswert?

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