Forum: Mikrocontroller und Digitale Elektronik STM32F0 debug probleme


von Peter G. (trafel30)


Lesenswert?

Hallo zusammen,

ich wollte per eclipse meinen stm32f030R8 programmieren, als Debugger 
benutz ich OpenOCD. Eigentlich dächte ich das ich jegliche Konfiguration 
richtig gemacht habe, dabei hat mir ein Youtuber Namens Ultr@FX 
geholfen. (genaue Video https://www.youtube.com/watch?v=J8grxNDuAfg, ist 
ziemlich lang)

Wenn ich den Code über den Debugger flashen möchte kommt folgender 
Fehler:

Error: address + size wrapped(0xfffffffe, 0x00000004)
Error: error writing to flash at address 0x08000000 at offset 0x00000000

Sitze mittlerweile ein paar Stunden daran und bin absolut ratlos.

Die ganze Consolenausgabe beim debuggen sieht wie folgt aus:

GNU ARM Eclipse 32-bits Open On-Chip Debugger 
0.10.0-dev-00287-g85cec24-dirty (2016-01-10-10:23)
Licensed under GNU GPL v2
For bug reports, read
  http://openocd.org/doc/doxygen/bugs.html
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
none separate
Started by GNU ARM Eclipse
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
Info : STLINK v2 JTAG v23 API v2 SWIM v9 VID 0x0483 PID 0x374B
Info : using stlink api v2
Info : Target voltage: 3.255010
Info : stm32f0x.cpu: hardware has 4 breakpoints, 2 watchpoints
Info : accepting 'gdb' connection on tcp/3333
Info : device id = 0x20006440
Info : flash size = 64kbytes
Error: address + size wrapped(0xfffffffe, 0x00000004)
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
adapter speed: 950 kHz
stm32f0x.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0xc1000000 pc: 0xfffffffe msp: 0xfffffffc
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
adapter speed: 4000 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
adapter speed: 950 kHz
stm32f0x.cpu: target state: halted
target halted due to debug-request, current mode: Handler HardFault
xPSR: 0xc1000003 pc: 0xfffffffe msp: 0xffffffd8
cleared protection for sectors 0 through 11 on flash bank 0
semihosting is enabled
Error: address + size wrapped(0xfffffffe, 0x00000004)
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
adapter speed: 950 kHz
stm32f0x.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0xc1000000 pc: 0xfffffffe msp: 0xfffffffc, semihosting
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
adapter speed: 4000 kHz
Error: error writing to flash at address 0x08000000 at offset 0x00000000
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
adapter speed: 950 kHz
stm32f0x.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0xc1000000 pc: 0xfffffffe msp: 0xfffffffc, semihosting
Error: address + size wrapped(0xffffffff, 0x00000004)
Error: address + size wrapped(0xffffffff, 0x00000002)
Error: address + size wrapped(0xffffffff, 0x00000004)
Error: address + size wrapped(0xffffffff, 0x00000002)
Info : dropped 'gdb' connection

von Peter G. (trafel30)


Lesenswert?

Okay, es lag wohl an den Defines in den Compiler Options. Das Problem 
mit dem Adapter Speed besteht trotzdem noch:

GNU ARM Eclipse 32-bits Open On-Chip Debugger 
0.10.0-dev-00287-g85cec24-dirty (2016-01-10-10:23)
Licensed under GNU GPL v2
For bug reports, read
  http://openocd.org/doc/doxygen/bugs.html
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
none separate
Started by GNU ARM Eclipse
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: libusb_open() failed with LIBUSB_ERROR_ACCESS
Error: open failed
in procedure 'init'
in procedure 'ocd_bouncer'



jemand eine Idee oder Vorschlag?

von Stefan F. (Gast)


Lesenswert?

Ich hatte genau das selbe Problem (allerdings mit einem STM32F103 und 
ST-Link) und keine Lösung gefunden.

Am Ende habe ich auf die SW4STM32 gewechselt, in der funktioniert das 
alles. Wo genau der Knackpunkt ist, habe ich nicht herausgefunden. Ich 
hatte keine Lust mehr, an der Stelle weiter nachzuforschen.

von Alexander B. (Firma: brickwedde.dev) (alexbrickwedde)


Lesenswert?

Der Speed ist irrelevant. Die Meldung kommt bei mir immer. Dein Fehler 
(2. Post) ist:

"libusb_open() failed with LIBUSB_ERROR_ACCESS"

Der kann also den ST-Link nicht öffnen. Welchen hast Du bei openocd denn 
angegeben? v2 (z.B. für china klon) oder v2-1 (für aktuelle nucleo)?

Oder hast Du parallel noch die ST-Link Software offen?

: Bearbeitet durch User
von Jim M. (turboj)


Lesenswert?

Peter G. schrieb:
> Info : clock speed 950 kHz
> Error: libusb_open() failed with LIBUSB_ERROR_ACCESS

Unter Windows: Falscher Treiber..?
Unter Linux: man sudo ;-)
  oder per UDEV die Geräterechte korrekt setzen lassen.


Ansonsten fehlt eventuell ein "reset init" an der OpenOCD Konsole 
(telnet localhost 4444).

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Ist das Problem gelöst worden? Wenn ja, wie?

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.