Forum: Mikrocontroller und Digitale Elektronik openOCD + ST Link V2 + OS X = usb open failed


von Stefan (Gast)


Lesenswert?

Hallo Zusammen,

ich versuche openOCD unter OS X mit einem STM32F4 via ST Link 
anzusprechen.
OpenOCD wurde wie folgt installiert:
1
brew install openocd --enable_ft2232_libftdi --enable_stlink

Konigurationsfile für STM32F401:
1
stm32f4.cfg
2
source [find interface/stlink-v2.cfg]
3
source [find target/stm32f4x_stlink.cfg]
4
reset_config srst_only srst_nogate

Programmaufruf mit Debuginfo:
1
openocd -f stm32f4.cfg -d 3
2
....
3
Debug: 178 3 stlink_usb.c:1573 stlink_usb_open(): stlink_usb_open
4
Debug: 179 3 stlink_usb.c:1588 stlink_usb_open(): transport: 1 vid: 0x0483 pid: 0x3748
5
Error: 180 73 stlink_usb.c:1601 stlink_usb_open(): open failed
6
Debug: 181 73 hla_layout.c:49 hl_layout_open(): failed
7
Debug: 182 73 command.c:628 run_command(): Command failed with error code -4
8
User : 183 73 command.c:666 command_run_line(): in procedure 'transport'
9
Debug: 184 73 command.c:628 run_command(): Command failed with error code -4
10
User : 185 73 command.c:666 command_run_line(): in procedure 'init'
11
Debug: 186 73 hla_interface.c:116 hl_interface_quit(): hl_interface_quit

Programmaufruf als user root bringt auch keine Änderung.

Irgendwelche Ideen?

Vielen Dank

von Stefan O. (stefano)


Lesenswert?

Hallo Stefan!

Eventuell ein Problem mit deiner libusb?
Die zickte bei mir auf OSX auch ziemlich herum.

LG Stefan

von Stefan (Gast)


Lesenswert?

Hallo,

kann gut sein. Auch openOCD mit macports installiert liefert das gleiche 
Problem.

Hast du einen Ansatz?

von Stefan O. (stefano)


Lesenswert?

Hallo.

Ich hab die libusb damals haendisch aus den sourcen kompiliert.
Du musst auch darauf achten das openOCD dann die richtige libusb version 
verwendet - nicht die kaputte. Viel mehr kann ich dir dazu allerdings 
nicht sagen da mir damals ein unix-erfahrener freund geholfen hat.

LG Stefan

von Stefan (Gast)


Lesenswert?

Ich habe gerade folgendes aus dern Sourcen kompiliert (vorab: ohne 
Erfolg):
1
libusb-1.0.19
2
libusb-compat-0.1.5
3
openocd-0.8.0

Die Installation lief Problemfrei. Die Fehlermeldung von openocd bleibt:
1
/usr/local/bin/openocd -f stm32lx.cfg 
2
Open On-Chip Debugger 0.8.0 (2014-07-21-14:23)
3
Licensed under GNU GPL v2
4
For bug reports, read
5
  http://openocd.sourceforge.net/doc/doxygen/bugs.html
6
srst_only separate srst_nogate srst_open_drain connect_deassert_srst
7
Info : This adapter doesn't support configurable speed
8
Error: open failed
9
in procedure 'transport'
10
in procedure 'init'

Ich vermute das Problem auch eher bei libusb..

von Jim M. (turboj)


Lesenswert?

Checke mal die USB IDs, OpenOCD kennt auch einen "ST-LINK/V2-1"
der eine andere PID hat.

Der braucht auch ein anderes config file: "interface/stlink-v2-1.cfg"

Ansonsten bräuchte man die Debug Ausgaben mit der "-d3" Option.

von Stefan (Gast)


Lesenswert?

Super, vielen Dank! ich hatte den stlink v2 benutzt!
1
openocd -f stm32lx.cfg
2
Open On-Chip Debugger 0.8.0 (2014-07-21-14:23)
3
Licensed under GNU GPL v2
4
For bug reports, read
5
  http://openocd.sourceforge.net/doc/doxygen/bugs.html
6
srst_only separate srst_nogate srst_open_drain connect_deassert_srst
7
Info : This adapter doesn't support configurable speed
8
Info : STLINK v2 JTAG v19 API v2 SWIM v2 VID 0x0483 PID 0x374B
9
Info : using stlink api v2
10
Info : Target voltage: 3.255680
11
Info : stm32lx.cpu: hardware has 0 breakpoints, 0 watchpoints
12
Error: jtag status contains invalid mode value - communication failure
13
Polling target stm32lx.cpu failed, GDB will be halted. Polling again in 100ms
14
Error: jtag status contains invalid mode value - communication failure

Und hier die Konfigiguration:
1
source [find interface/stlink-v2-1.cfg]
2
source [find target/stm32lx_stlink.cfg]
3
reset_config srst_only srst_nogate

Was da mit dem Polling nicht stimmt, muss ich mir noch näher anschauen. 
In der zwischenzeit habe ich texane stlink installiert, dass lief auf 
anhieb.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.