web-dev-qa-db-fra.com

STM32F0, ST-Link v2, OpenOCD 0.9.0: échec de l'ouverture

J'utilise Launchpad gcc-arm-none-eabi 4.9-2015q2 pour compiler un STM32F0 et j'aimerais maintenant déboguer à l'aide de arm-none-eabi-gdb de cette collection. Mon ST-Link v2 fait partie d'une carte Nucleo F411RE, avec du matériel externe (cible STM32F0) connecté. Faire clignoter le F0 fonctionne bien, alors je conclus que mes connexions SWD sont bonnes.

Maintenant, je veux démarrer OpenOCD , mais cela échoue:

$ openocd -f interface/stlink-v2.cfg -f target/stm32f0x.cfg
Open On-Chip Debugger 0.9.0 (2015-07-26-16:02)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
none separate
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : clock speed 950 kHz
Error: open failed
in procedure 'init'
in procedure 'ocd_bouncer'

Qu'est-ce qui ne va pas ici?

Je ne pouvais pas non plus établir une connexion à l'aide de st-util, qui signalait des délais d'attente et finissait toujours par planter avec un erreur de segmentation .

9
Christoph

Nucleo F411RE a intégré un stlink v2-1 et non stlink v2

alors changez le fichier script comme ceci:

source [find interface/stlink-v2-1.cfg]

transport select hla_swd

source [find target/stm32f4x.cfg]

reset_config srst_only
10
sprhawk

Le fichier stlink-v2.cfg pourrait être correct. Vous devriez probablement utiliser le fichier stlink-v2-1.cfg (à l'intérieur de ce fichier se trouve le hla_vid_pid 0x0483 0x3748).

1
user

J'ai trouvé un correctif. La paire VID/PID dans stlink-v2.cfg était incorrecte. Ils avaient ceci:

hla_vid_pid 0x0483 0x3748

mais ça devrait être ça:

hla_vid_pid 0x0483 0x374B

lettre "B", pas le chiffre "8".

0
Chris