Moin,
ich habe hier ein kleines Problem, an dem ich mir die Zähne ausbeiße:
Ich habe hier ein von mir entworfenes Board, welches im Wesentlichen ein
Nachbau der Grundschaltung des STM32F4-Disovery von ST ist. Das Ganze
habe ich mit einem BlackMagicProbe mit meinem GDB verbunden und versuche
nun ein elf-File da drauf zu flashen und auszuführen.
Es klappt mit der Werkzeugkette mit dem Discovery, aber nicht mit meinem
Entwurf.
Mit meinem Target sieht GDB das Board, aber ich kann offensichtlich
nichts damit machen.
1
(gdb) mon jtag_scan
2
Target voltage: 3.3V
3
Device IR Len IDCODE Description
4
0 4 0x4BA00477 ARM Limited: ADIv5 JTAG-DP port.
5
1 5 0x06413041 ST Microelectronics: STM32F4xx.
6
7
Available Targets:
8
No. Att Driver
9
1 STM32F4xx
10
(gdb)
Das mit dem "ich kann nichts damit machen" begründe ich damit, dass ich
z.B. ein zuvor mit "file" geladenes Programm nicht mit "load" laden
kann:
1
(gdb) load
2
Error erasing flash with vFlashErase packet
3
(gdb)
Man liest viel etwas von mit "monitor reset halt" das Target zuvor
zurücksetzen. Geht aber nicht:
1
(gdb) monitor reset halt
2
Target does not support this command.
Überhaupt scheint das Target nichts zu supporten. Außer den jtag_scan
habe ich nichts gefunden, was geht.
Da stimmt doch was nicht! Ich habe die Verkabelung überprüft, die
stimmt. Könnte es an den BOOT-Pins liegen? - Die sind wie beim Discovery
(IMO) BOOT0 - High; BOOT1 - Low.
So langsam fällt mir nichts mehr ein und ich hoffe auf Ideen von Euch.
Vielen Dank!
Christoph
Hallo,
vielen Dank für die Antwort. An das attach 1 hatte ich schon gedacht, es
nur nicht hingeschrieben :-( Sorry.
Hier noch mal komplett wenn es nicht geht (mit meiner Hardware):
1
GNU gdb (GNU Tools for ARM Embedded Processors) 7.8.1.20141128-cvs
2
Copyright (C) 2014 Free Software Foundation, Inc.
3
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
4
This is free software: you are free to change and redistribute it.
5
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
6
and "show warranty" for details.
7
This GDB was configured as "--host=i686-pc-linux-gnu --target=arm-none-eabi".
8
Type "show configuration" for configuration details.
9
For bug reporting instructions, please see:
10
<http://www.gnu.org/software/gdb/bugs/>.
11
Find the GDB manual and other documentation resources online at:
12
<http://www.gnu.org/software/gdb/documentation/>.
13
For help, type "help".
14
Type "apropos word" to search for commands related to "word".
15
(gdb) target extended-remote /dev/ttyACM0
16
Remote debugging using /dev/ttyACM0
17
(gdb) monitor version
18
Black Magic Probe (Firmware 1.5-00284-gd162e75, build 20141225)
19
Copyright (C) 2011 Black Sphere Technologies Ltd.
20
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
Der BMP ist extern und mit Kabeln verbunden? Dann ist eine gute
Masseverbindung wichtig. Haeufig klappt es erst, wenn mann mehrere
Massekabel zwischen Debugger und Target benutzt.
Ansonstsen:
- Ist das Target schreibgeschuetzt?
- Ist das Target evt. im Tiefschlaf?
(gdb) monitor reset halt ist ein OpenOCD Befehl...
Hallo Uwe,
vielen Dank für die Antwort.
Uwe Bonnes schrieb:> Der BMP ist extern und mit Kabeln verbunden? Dann ist eine gute> Masseverbindung wichtig. Haeufig klappt es erst, wenn mann mehrere> Massekabel zwischen Debugger und Target benutzt.>
Ja. Er ist ein Debugger, der extern ist, und der im wesentlichen aus
einem F1043 besteht auf dem ein eingebetteter GDB läuft. die
JTAG-Verbindung ist über Molex Picoblades realisiert. Ich habe eben mal
noch eine extra Steckbrücke für Masse als redundanz gelegt, geht aber
nicht.
> Ansonstsen:> - Ist das Target schreibgeschuetzt?> - Ist das Target evt. im Tiefschlaf?
CPU sollte im Werszustand sein.
>> (gdb) monitor reset halt ist ein OpenOCD Befehl...
... Deswegemn geht das nicht :-) Mir ist das noch etwas neu...
Uwe Bonnes schrieb:> Der BMP ist extern und mit Kabeln verbunden? Dann ist eine gute> Masseverbindung wichtig.
Bist Du sicher, dass die Masse nochmal separat verbunden werden muss
beim externen Anschluss? Ich habe damit keine Probleme.
Hannes schrieb:> Uwe Bonnes schrieb:>> Der BMP ist extern und mit Kabeln verbunden? Dann ist eine gute>> Masseverbindung wichtig.>> Bist Du sicher, dass die Masse nochmal separat verbunden werden muss> beim externen Anschluss? Ich habe damit sehr viele Probleme.
Worin liegen deine vielen Probleme?
Die Masse ist sehr wichtig. Wenn es bei Dir mit einer Masseverbindung
geht, gut. Aber ich hatte schon oefters erst stabile Verbindung falls
ich weitere Masseverbindungen hergestellt hatte. Schaden tut es auf
jeden Fall nichts, auch wenn es schon mit nur einer Masseverbindung
funktionieren wuerde.
>
Geht es mit SWD, also "mon swd", "att 1". Kannst Du den Flash lesen (x
/32x 0x08000000) ? Passen die Option Bits "mon option" -> "0x1FFFF800:
0x55AA
0x1FFFF802: 0xFFFF ..." ? Passt "stm32_f407_test.hex" oder will es
vielleicht an eine falsche Adresse schreiben? Geht ein "mon erase_mass"?