Forum: Mikrocontroller und Digitale Elektronik [PlatformIO] Stm32 lässt sich nicht flashen


von ich (Gast)


Lesenswert?

Hallo,

ich möchte einen STM32f103c8 (bluepill) mit einem StLink V2 flashen über 
PlatformIO, aber ich bekomme immer folgenden Fehler:
1
xPack OpenOCD, 64-bit Open On-Chip Debugger 0.10.0+dev (2019-07-17-11:28)
2
Licensed under GNU GPL v2
3
For bug reports, read
4
        http://openocd.org/doc/doxygen/bugs.html
5
debug_level: 1
6
7
hla_swd
8
none separate
9
10
Warn : UNEXPECTED idcode: 0x2ba01477
11
Error: expected 1 of 1: 0x1ba01477
12
in procedure 'program'
13
** OpenOCD init failed **
14
shutdown command invoked
15
16
*** [upload] Error 1

Inhalt der platformio.ini:
1
[env:bluepill_f103c8]
2
platform = ststm32
3
board = bluepill_f103c8
4
framework = arduino
5
;upload_protocol = stlink
6
;debug_tool = stlink

von Ntldr -. (ntldr)


Lesenswert?

Steht auf dem Controller des Boards zufällig "CKS32F103" drauf? Dann 
hast du nämlich einen Clone erwischt, der sich leicht anders 
identifiziert als das Original.

Ob und wie man das genau in PlatformIO direkt beheben kann, weiß ich 
nicht. Was aber auf jeden Fall gehen sollte, ist die ID in der OpenOCD 
Konfiguration einfach zu überschreiben. In die target\stm32f1x.cfg muss 
ein zusätzliches "set CPUTAPID 0x1ba01477" rein, dann beschwert sich 
OpenOCD nicht mehr. Die Datei liegt vermutlich irgendwo in der 
PlatformIO Installation, ggf. die Windowssuche bemühen.

von Thomas V. (tomv)


Lesenswert?


von Ntldr -. (ntldr)


Lesenswert?

Ntldr -. schrieb:
> In die target\stm32f1x.cfg muss ein zusätzliches "set CPUTAPID 0x1ba01477"
> rein, dann beschwert sich OpenOCD nicht mehr

Da muss natürlich
  set CPUTAPID 0x2ba01477
rein, 0x1ba01477 steht da ja schon. Ideal ist die Lösung allerdings 
nicht, da man so keine original ST Micros (und die GD Clones) mehr 
debuggen kann, da muss man das zurückändern.

: Bearbeitet durch User
von ich (Gast)


Lesenswert?

Ntldr -. schrieb:
> Steht auf dem Controller des Boards zufällig "CKS32F103" drauf? Dann
> hast du nämlich einen Clone erwischt, der sich leicht anders
> identifiziert als das Original.

In der ersten Zeile der Beschriftung steht chk32f.
Mit der Arduino IDE kann ich die Boards flashen.

von Ntldr -. (ntldr)


Lesenswert?

Noch ein neuer Clone (bzw. ein neues Label für den Clone), die Chinesen 
haben da anscheinend sehr viel Langeweile...

Lösung sollte aber die gleiche sein. Die Arduino "IDE" funktioniert, da 
die die Programmiersoftware von ST verwendet und nicht openOCD. Die 
Programmiersoftware von ST ignoriert den Parameter völlig und beschwert 
sich daher auch nicht.

von Thomas S. (thomas55)


Lesenswert?

Hallo,
gleiches Problem auch bei mir.
Da probiere ich nun seit drei Tagen ein Lösung zu finden. nix.
Nachdem es bei mir aufgetreten ist dachte ich zuerst ich hätte einen Bug 
eingebaut.
Fast ein Tag.


Dann:   Andern STM32F103 genommen. Der funktioniert.
    Das ganze an anderem PC (Laptop) probiert: GENAU UMGEKEHRT

Da fällt mir nichts zu ein.
Nun Bitte ich die Spezialisten um Hilfe.
In dem Link (meine Cloud) habe ich alle Fotos und die Beispiele 
hinterlegt.

https://mega.nz/#F!IgdAnA6C!TWpPlON2Nt94iDJIliU4TQ

Bilder können im Browser angeschaut werden, müssen nicht downloadet 
werden.

Den ST-Link zu benutzen finde ich einen Workaround, das muss doch aber 
auch richtig gehen.

Es funktionierte doch bis vor kurzem, was mag da geschehen sein?

Danke im Voraus
Thomas

Beitrag #6453935 wurde vom Autor gelöscht.
von Mac A. (melectronics)


Lesenswert?

Ntldr -. schrieb:
> Steht auf dem Controller des Boards zufällig "CKS32F103" drauf? Dann
> hast du nämlich einen Clone erwischt, der sich leicht anders
> identifiziert als das Original.
>
> Ob und wie man das genau in PlatformIO direkt beheben kann, weiß ich
> nicht. Was aber auf jeden Fall gehen sollte, ist die ID in der OpenOCD
> Konfiguration einfach zu überschreiben. In die target\stm32f1x.cfg muss
> ein zusätzliches "set CPUTAPID 0x1ba01477" rein, dann beschwert sich
> OpenOCD nicht mehr. Die Datei liegt vermutlich irgendwo in der
> PlatformIO Installation, ggf. die Windowssuche bemühen.

Ich habe einfach an allen Stellen wo inzwischen "_CPUTAPID" steht den 
HEX_Wert eingefügt ob das mit dem Debugging so stimmt weiß ich nicht da 
ich es nicht nutze

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.