GDB load schlägt fehl

OP #5021592
Lesenswert?

Hallo,

ich verwende zum Programmieren eines STM32F746 einen Blackmagic Probe 
Adapter: https://github.com/blacksphere/blackmagic/wiki .

Verbunden wird der STM32 über SWD. Der Programmierer stellt einen GDB 
Server bereit, mit dem man sich über einen virtuellen COM-Port verbinden 
kann.

Dann kann man mit ein paar einfachen GDB Befehlen den Prozessor 
programmieren und debuggen:
1
$ arm-none-eabi-gdb
2
target extended-remote <COM-port>
3
monitor swdp_scan
4
attach 1
5
file flash.elf    // lädt Symbole
6
load    // auf Prozessor laden

Leider schlägt "load" fehl. Ich bekomme nur angezeigt:
1
Loading section .isr_vector, size 0x10c lma 0x8000000

und weiter nichts. Ich bekomme keine Fehlermeldung und kann auch keine 
weiteren Kommandos mehr eingeben. Der Programmierer scheint abzustürzen.

Einen STM32F1 kann ich problemlos flashen und debuggen. Kann das ein 
Hardwareproblem mit dem STM32F7 board sein?

Ein
1
mon erase_mass

funktioniert zum Beispiel ohne Probleme.

Vielen Dank im Voraus!
Gast #5021634
Lesenswert?

Hallo,

man kann sich im gdb die Kommunikation mit dem gdb Server anzeigen 
lassen.
Wie das geht, müsstest Du im GDB Manual nachlesen.
Vielleicht wirst Du daraus schlauer.

Ansonsten vielleicht einen Logic-Analyzer auf den SWD Port hängen.
Oder den gdb Prozess 'strace'n....

>Ein
>mon erase_mass
>
>funktioniert zum Beispiel ohne Probleme.

Woraus schliesst Du das?
OP #5021789
Lesenswert?

Trckanbua schrieb:
> man kann sich im gdb die Kommunikation mit dem gdb Server anzeigen
> lassen.

Das werde ich mal machen.

Trckanbua schrieb:
> Woraus schliesst Du das?

Das Kommando wird ohne Fehler abgeschlossen. Es kann aber sein, dass 
nichts getan wird.

Noch etwas wichtiges:
Wenn ich mir den Speicherinhalt vom Prozessor anzeigen lassen will 
(Befehl: x 0x8000000), bekomme ich:

1
Cannot access memory at address 0x8000000

Jim M. schrieb:
> Wie lange hast Du gewartet?

Bis zu eine Minute bestimmt. So lange sollte es aber wirklich nicht 
dauern.
Gast #5024932
Lesenswert?

Trckanbua schrieb:
> Und
>
> $ info reg
>
> geht wahrscheintz auch nicht?!

Doch, das geht. Es zeigt an:
1
(gdb) info reg
2
r0             0x0      0
3
r1             0x0      0
4
r2             0x0      0
5
r3             0x0      0
6
r4             0x0      0
7
r5             0x0      0
8
r6             0x0      0
9
r7             0x0      0
10
r8             0x0      0
11
r9             0x0      0
12
r10            0x0      0
13
r11            0x0      0
14
r12            0x0      0
15
sp             0x0      0x0
16
lr             0x0      0x0
17
pc             0x0      0x0
18
xpsr           0x0      0
19
msp            0x0      0x0
20
psp            0x0      0x0
21
special        0x0      0

pegel schrieb:
> Hast du keinen ST-Link, oder ein Disco, Nucleo usw. wo eins drauf ist?

pegel schrieb:
> Mit dem ST-Link Utility.

Das teste ich mal!
Gast #5024934
Lesenswert?

Programmieren mit dem ST-Link Utility und dem ST-LINK V2 funktioniert 
scheinbar einwandfrei.
1
08:19:56 : Connected via SWD.
2
08:19:56 : SWD Frequency = 4,0 MHz.
3
08:19:56 : Connection mode : Normal.
4
08:19:56 : Debug in Low Power mode enabled.
5
08:19:56 : Device ID:0x449 
6
08:19:56 : Device flash Size : 1MBytes
7
08:19:56 : Device family :STM32F74x/F75x
8
08:20:21 : [ETH_test.bin] opened successfully.
9
08:20:21 : [ETH_test.bin] checksum : 0x002924BA 
10
08:20:24 : Memory programmed in 0s and 734ms.
11
08:20:25 : Flash memory [0x08000000:0x08100000] Checksum: 0x0FB861DE

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