cancel
Showing results for 
Search instead for 
Did you mean: 

openOCD not halting my chip (srst not working?)

Javier1
Principal

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.

0693W00000FDm3jQAD.pngMy 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

we dont need to firmware by ourselves, lets talk
1 ACCEPTED SOLUTION

Accepted Solutions
Javier1
Principal

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)

0693W00000FDm5yQAD.pngit 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.

0693W00000FDm9vQAD.jpg

we dont need to firmware by ourselves, lets talk

View solution in original post

2 REPLIES 2
Javier1
Principal

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

we dont need to firmware by ourselves, lets talk
Javier1
Principal

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)

0693W00000FDm5yQAD.pngit 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.

0693W00000FDm9vQAD.jpg

we dont need to firmware by ourselves, lets talk