GDB load schlägt fehl

OP #5021592
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
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?
#5021689
Adrian F. schrieb:
> und weiter nichts. Ich bekomme keine Fehlermeldung und kann auch keine
> weiteren Kommandos mehr eingeben. Der Programmierer scheint abzustürzen.

Wie lange hast Du gewartet? Nicht das der ein paar Minuten braucht, weil 
die SWD oder serielle Geschwindigkeit recht niedrig eingestellt ist.
OP #5021789
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
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
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
Gast #5024941
Noch einmal!

Wenn ich NRST durchtrenne von Blackmagic nach STM32F7, dann geht das 
Flashen! Ich weiß nicht, woran das liegt. Bei dem STM32F1 war das nicht 
notwendig.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.