Forum: Mikrocontroller und Digitale Elektronik Win7 STM32 openocd USB Problem


von timertick_t (Gast)


Lesenswert?

Hab hiern ASUS X54H 64-bit mit frisch installiertem 32-bit Windows7 mit 
nem zickigen USB Bus. Der Rechner hat jeweils links und rechts nur eine 
USB-Buchse und diese scheinen nicht gleich zu sein. An der linken Buchse 
ließ sich das STM32 Disco very Board ansprechen, rechts nur nach einem 
Dreiber-Update.
Die Software "STM32 ST-Link Utility" von ST funktioniert nun, aber 
openocd 0.9.0 unter Eclipse geht nicht. Ein Versuch im DOS-Fenster führt 
zu:
1
C:\ARMtoolchains\openocd-0.9.0\bin>openocd.exe -f interface\stlink-v2-1.cfg -f t
2
arget\stm32f4x.cfg
3
Open On-Chip Debugger 0.9.0 (2015-05-19-12:06)
4
Licensed under GNU GPL v2
5
For bug reports, read
6
        http://openocd.org/doc/doxygen/bugs.html
7
Info : auto-selecting first available session transport "hla_swd". To override u
8
se 'transport select <transport>'.
9
Info : The selected transport took over low-level target control. The results mi
10
ght differ compared to plain JTAG/SWD
11
adapter speed: 2000 kHz
12
adapter_nsrst_delay: 100
13
none separate
14
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
15
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
16
Info : clock speed 1800 kHz
17
Error: open failed
18
in procedure 'init'
19
in procedure 'ocd_bouncer'
Weiterhin gibt's da ein Tool namens 'zadig' das USB-Treiber konvertiert. 
Warum sollte ich einen originalen Treiber von ST in irgendetwas 
konvertieren? Hab das eben mit nem HId-Maustreiber getestet; diese ist 
nun futsch, eine andere geht zum Glück noch.

Das eigentliche Prob ist aber openocd mit:
Error: open failed
in procedure 'init'
in procedure 'ocd_bouncer'

Jemand eine Idee?

von Philipp K. (philipp_k59)


Lesenswert?

Meistens gibt es einen SS-USB3.0 Superspeed Port(Blau) und einen 
normalen USB3.0

Vielleicht fehlen Dir einfach vernünftige Herstellertreiber.

von timertick_t (Gast)


Lesenswert?

>Vielleicht fehlen Dir einfach vernünftige Herstellertreiber.
Möglich. Mal tiefer graben.

Nächste Überraschung:
Das sog. ST Utility funktioniert. Die Anleitung schreibt, daß es auch 
ein Standalone-Tool gibt (von dem man annehmen sollte, daß dies auch von 
der GUI von ST Utility verwendet wird).

Frisch ans Werk:
1
C:\Program Files\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility>ST-LINK_CLI.exe -c ID=1 SWD UR LPM
2
STM32 ST-LINK CLI v2.2.0
3
STM32 ST-LINK Command Line Interface
4
5
No ST-LINK detected!
Hrrmpf.

von timertick_t (Gast)


Lesenswert?

Für den Nächsten der über das gleiche Prob stolpert:

ST-LINK_CLI.exe -c ID=1 SWD UR LPM
bewirkt, daß das Device Nummer 1 gesucht wird. ST fängt aber mit 0 zu 
zählen an.
Note: when [ID=<id>] and [SN=<sn>] are not specified, the first ST-LINK 
with ID=0 will be selected.

Ich behaupte nach wie vor: Die numerische Null als gewöhnliche Zahl zu 
behandeln war schon immer ein Fehler. Wären einige von uns besser auf 
den Bäumen geblieben.

von Bernd K. (prof7bit)


Lesenswert?

Verwende einen reinen USB 2.0 port, keinen blauen 3.0, dann wird oponocd 
funktionieren. Das Problem steckt wohl tief in den Windowstreibern für 
die Hostadapter.

Hat mich auch mal nen ganzen Tag gekostet, exakt selbe Symptome wie bei 
Dir. St-Utility funktionierte, openocd nicht. Nach etlichen Stunden dann 
mal umgestöpselt von blau auf schwarz und sofort hat's funktioniert.

von Jim M. (turboj)


Lesenswert?

timertick_t schrieb:
> Weiterhin gibt's da ein Tool namens 'zadig' das USB-Treiber konvertiert.
> Warum sollte ich einen originalen Treiber von ST in irgendetwas
> konvertieren? Hab das eben mit nem HId-Maustreiber getestet; diese ist
> nun futsch, eine andere geht zum Glück noch.

Gaaaanz schlechtes Beispiel.
Das Zadig Tool ersetzt bei HID Geräten den Windows Treiber durch den in 
der Auswahl. Das dann die Maus nicht mehr geht, ist nur logisch.

Bei einem STLINK dürfte Zadig aber nur ein Treiberupdate machen. Da 
verwendet AFAIK der Hersteller bereits WinUSB als Treiber.

von Bernd K. (prof7bit)


Lesenswert?

Jim Meba schrieb:
> Bei einem STLINK dürfte Zadig aber nur ein Treiberupdate machen. Da
> verwendet AFAIK der Hersteller bereits WinUSB als Treiber.

Zadig ist überhaupt nicht notwendig, das STM32 Board geht mit dem 
orginalen ST-Treiber out-of-the-box auch mit openocd (wenn man es nicht 
versehentlich in einen blauen port gestöpselt hat)

von timertick_t (Gast)


Angehängte Dateien:

Lesenswert?

Potzblitz. Der Tip mit blau und schwarz war nicht schlecht. Hab eben mal 
genau hingekuckt - und tatsächlich... eine Buchse hat eine blaue Zunge 
und die andere eine schwarze. Nun wird mir einiges klar.

Allerding klemmt openocd immer noch.
Ich hab's nach diesem Rezept probiert:
https://www.youtube.com/watch?v=kjvqySyNw20


Autor: Bernd K. (prof7bit) schrieb:
>Zadig ist überhaupt nicht notwendig
Sehe ich ähnlich. Hinzu kommt: Wenn ich dieses ominöse Zadig-Wondertool 
verwende findet der Rechner das Board nicht mehr...
Aud dem Bild die Settings für openocd. Taugen die für Ver. 0.9.0 etwa 
nix?

von markus (Gast)


Lesenswert?

Ich musste mit dem zadig-tool den originalen Treiber des ST-Link 
(MassStorage) auf WinUSB ändern (habe ein STM32 Value line Discovery 
Board).
Dann klappte die Kommunikation mit openocd-0.9.0 (allerdings nicht mehr 
mit dem ST-Utility).

Eine Möglichkeit beides zu nutzen habe ich bisher noch nicht gefunden.

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.