mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik GDB load schlägt fehl


Autor: A. F. (elagil)
Datum:

Bewertung
0 lesenswert
nicht 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:
$ arm-none-eabi-gdb
target extended-remote <COM-port>
monitor swdp_scan
attach 1
file flash.elf    // lädt Symbole
load    // auf Prozessor laden

Leider schlägt "load" fehl. Ich bekomme nur angezeigt:
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
mon erase_mass

funktioniert zum Beispiel ohne Probleme.

Vielen Dank im Voraus!

Autor: Trckanbua (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Jim M. (turboj)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: A. F. (elagil)
Datum:

Bewertung
0 lesenswert
nicht 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:

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.

: Bearbeitet durch User
Autor: Trckanbua (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wenn ich mir den Speicherinhalt vom Prozessor anzeigen lassen will

Und

$ info reg

geht wahrscheintz auch nicht?!

Autor: pegel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du keinen ST-Link, oder ein Disco, Nucleo usw. wo eins drauf ist?
Damit könntest du testen ob die Hardware des Boards i.O. ist.

Autor: pegel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit dem ST-Link Utility. Das sollte immer funktionieren.

Autor: Adrian (Gast)
Datum:

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

Doch, das geht. Es zeigt an:
(gdb) info reg
r0             0x0      0
r1             0x0      0
r2             0x0      0
r3             0x0      0
r4             0x0      0
r5             0x0      0
r6             0x0      0
r7             0x0      0
r8             0x0      0
r9             0x0      0
r10            0x0      0
r11            0x0      0
r12            0x0      0
sp             0x0      0x0
lr             0x0      0x0
pc             0x0      0x0
xpsr           0x0      0
msp            0x0      0x0
psp            0x0      0x0
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!

Autor: Adrian (Gast)
Datum:

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

Autor: Adrian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.