2021-10-25 06:44 AM
I am trying to flash code in my stm32 via SWD interface with a raspberryPi.(swd is bitbanged no stlink used)
With my raspberryPi Zero i followed this tutorial, wired the raspy with my stm32f105 together.
My openocd.cfg file looks like:
source [find interface/sysfsgpio-raspberrypi.cfg]
transport select swd
set WORKAREASIZE 0x2000
source [find target/stm32f0x.cfg]
reset_config srst_only srst_nogate
adapter srst delay 100
adapter srst pulse_width 100
bindto 0.0.0.0
init
targets
#reset halt
my sysfsgpio-raspberrypi.cfg file looks like:
#
# Config for using RaspberryPi's expansion header
#
# This is best used with a fast enough buffer but also
# is suitable for direct connection if the target voltage
# matches RPi's 3.3V
#
# Do not forget the GND connection, pin 6 of the expansion header.
#
interface sysfsgpio
# Each of the JTAG lines need a gpio number set: tck tms tdi tdo
# Header pin numbers: 23 22 19 21
sysfsgpio_jtag_nums 11 25 10 9
# Each of the SWD lines need a gpio number set: swclk swdio
# Header pin numbers: 23 22
sysfsgpio_swd_nums 11 25
# If you define trst or srst, use appropriate reset_config
# Header pin numbers: TRST - 26, SRST - 18
# sysfsgpio_trst_num 7
# reset_config trst_only
# sysfsgpio_srst_num 24
sysfsgpio_srst_num 7
reset_config srst_only srst_push_pull
# or if you have both connected,
# reset_config trst_and_srst srst_push_pull
Solved! Go to Solution.
2021-10-26 05:00 AM
So, i changed configurations a bit and using my raspberry 3 model B v1.2 made it "work"
Now the cubeIDE is able to halt the stm32 chip and step trough the code (debug build)
it took me a while but if i untick "enable live expressions" (right click in the progect>debug as>debug configuration>debugger)
the debugger was able to halt the programm at runtime.
for now im able to load the programm and halt the mcu (trough cubeide debugger).
Im not able to reset the mcu for some reason.
2021-10-25 07:13 AM
Zan mentions having some trouble with the reset
The most important part was the sysfsgpio_srst_num 7 and reset_config srst_only srst_push_pull. With trst the reboot did not work properly. Only after I figured the correct reset config, did the micro start to reboot at the correct address at the beginning of flash memory!
so i guess im going to stat digging that way.
My mcu doesnt look to be reseting at all...(i have a blinky programm running)
I probed the nRST signal with the oscilloscope and it remains 3v3 constant
found some info about the reset signals
https://www.openocd.org/doc/html/Reset-Configuration.html
2021-10-26 05:00 AM
So, i changed configurations a bit and using my raspberry 3 model B v1.2 made it "work"
Now the cubeIDE is able to halt the stm32 chip and step trough the code (debug build)
it took me a while but if i untick "enable live expressions" (right click in the progect>debug as>debug configuration>debugger)
the debugger was able to halt the programm at runtime.
for now im able to load the programm and halt the mcu (trough cubeide debugger).
Im not able to reset the mcu for some reason.