2024-05-16 04:57 AM
I am using the STM32F030F4P6 MCU and ST-Link V2 with tag connect (6- pin for SWD) and am having trouble bootloading the board. I have tried multiple configurations, with this one being ST-LINK GDB server:
STM32CubeProgrammer v2.12.0 ------------------------------------------------------------------- Log output file: C:\Users\ricci\AppData\Local\Temp\STM32CubeProgrammer_a19324.log ST-LINK SN : 38FF6A06304E4B3031321143 ST-LINK FW : V2J40S7 Board : -- Voltage : 3.25V SWD freq : 950 KHz Connect mode: Under Reset Reset mode : Hardware reset Device ID : 0x444 Revision ID : Rev 1.0 Device name : STM32F03x Flash size : 16 KBytes Device type : MCU Device CPU : Cortex-M0 BL Version : 0x10 Memory Programming ... Opening and parsing file: ST-LINK_GDB_server_a19324.srec File : ST-LINK_GDB_server_a19324.srec Size : 6.30 KB Address : 0x08000000 Erasing memory corresponding to segment 0: Erasing internal memory sectors [0 6] Download in Progress: File download complete Time elapsed during download operation: 00:00:00.945 Verifying ... Download verified successfully
And have seen the results above however the ST-Link V2 LED is still flashing even when the program claims it "download verified successfully"
I tried ST-Link with OpenOCD in the debugger menu and got this as a result:
Open On-Chip Debugger 0.12.0-00029-gf77e7cb03 (2023-12-15-13:25) [https://github.com/STMicroelectronics/OpenOCD] Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html Info : Listening on port 6666 for tcl connections Info : Listening on port 4444 for telnet connections Info : STLINK V2J45S7 (API v2) VID:PID 0483:3748 Info : Target voltage: 3.213158 Info : clock speed 1800 kHz Info : stlink_dap_op_connect(connect) Info : SWD DPIDR 0x0bb11477 Info : [STM32F030F4Px.cpu] Cortex-M0 r0p0 processor detected Info : [STM32F030F4Px.cpu] target has 4 breakpoints, 2 watchpoints Info : starting gdb server for STM32F030F4Px.cpu on 3333 Info : Listening on port 3333 for gdb connections Info : accepting 'gdb' connection on tcp/3333 Info : device id = 0x10006444 Info : flash size = 16 KiB Warn : GDB connection 1 on target STM32F030F4Px.cpu not halted undefined debug reason 8 - target needs reset Info : accepting 'gdb' connection on tcp/3333 Warn : GDB connection 2 on target STM32F030F4Px.cpu not halted undefined debug reason 8 - target needs reset [STM32F030F4Px.cpu] halted due to debug-request, current mode: Thread xPSR: 0xc1000000 pc: 0x0800060c msp: 0x20001000 [STM32F030F4Px.cpu] halted due to debug-request, current mode: Thread xPSR: 0xc1000000 pc: 0x0800060c msp: 0x20001000 Info : [STM32F030F4Px.cpu] external reset detected Info : [STM32F030F4Px.cpu] external reset detected shutdown command invoked shutdown command invoked
(Note: Shutdown command invoked was when I stopped the program)
It seems that for whatever reason the ST-Link cannot reset properly, and I am unsure as to how to fix this.
Here is the schematic portion of the MCU:
Solved! Go to Solution.
2024-05-22 06:02 PM
I found the solution,
the board uploads when I have the crystal set internal instead of the external setup I have but I'm not entirely sure why. I chose the ECS-80-12-30-JGN-TR with two 20pF caps at CL1 & CL2, and have Rext at 0 ohm acting as a jumper for now.
I'm not entirely sure what's causing the bootloader to essentially get stuck at the end of the cycle when uploading it, but I'm assuming its something to do with the way I set up the crystal.
Heres is the layout on the board:
And the ide setup:
\
But at least now I can upload code to it and the ADC channel is working, albeit not accurately but it is reading values.
2024-05-16 06:43 AM - edited 2024-05-16 06:43 AM
Hi,
1. on nrst /reset put a cer.cap , typ. 100nF , to gnd.
2. in IDE set debug -->
Try...
2024-05-16 06:12 PM
This is what I get as a result of that
Open On-Chip Debugger 0.12.0-00029-gf77e7cb03 (2023-12-15-13:25) [https://github.com/STMicroelectronics/OpenOCD]
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : STLINK V2J45S7 (API v2) VID:PID 0483:3748
Info : Target voltage: 3.230526
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
Info : clock speed 4000 kHz
Info : stlink_dap_op_connect(connect)
Info : SWD DPIDR 0x0bb11477
Info : [STM32L476RGTx.cpu] Cortex-M0 r0p0 processor detected
Info : [STM32L476RGTx.cpu] target has 4 breakpoints, 2 watchpoints
Info : starting gdb server for STM32L476RGTx.cpu on 3333
Info : Listening on port 3333 for gdb connections
Error: [STM32L476RGTx.cpu] clearing lockup after double fault
Polling target STM32L476RGTx.cpu failed, trying to reexamine
Info : [STM32L476RGTx.cpu] Cortex-M0 r0p0 processor detected
Info : [STM32L476RGTx.cpu] target has 4 breakpoints, 2 watchpoints
Info : [STM32L476RGTx.cpu] external reset detected
Error: [STM32L476RGTx.cpu] clearing lockup after double fault
[STM32L476RGTx.cpu] halted due to debug-request, current mode: Handler HardFault
xPSR: 0xc1000003 pc: 0xfffffffe msp: 0x20017fe0
Info : accepting 'gdb' connection on tcp/3333
Warn : Cannot identify target as an STM32C0/G0/G4/L4/L4+/L5/U0/U5/WB/WL family device.
Error: auto_probe failed
Error: Connect failed. Consider setting up a gdb-attach event for the target to prepare target for GDB connect, or use 'gdb_memory_map disable'.
Error: attempted 'gdb' connection rejected
shutdown command invoked
:
2024-05-16 06:27 PM - edited 2024-05-16 06:36 PM
I also get this:
Open On-Chip Debugger 0.12.0-00029-gf77e7cb03 (2023-12-15-13:25) [https://github.com/STMicroelectronics/OpenOCD]
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : STLINK V2J45S7 (API v2) VID:PID 0483:3748
Info : Target voltage: 3.238421
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
Info : clock speed 4000 kHz
Info : stlink_dap_op_connect(connect)
Info : SWD DPIDR 0x0bb11477
Info : [STM32F030F4Px.cpu] Cortex-M0 r0p0 processor detected
Info : [STM32F030F4Px.cpu] target has 4 breakpoints, 2 watchpoints
Info : starting gdb server for STM32F030F4Px.cpu on 3333
Info : Listening on port 3333 for gdb connections
Info : accepting 'gdb' connection on tcp/3333
Info : device id = 0x10006444
Info : flash size = 16 KiB
Warn : GDB connection 1 on target STM32F030F4Px.cpu not halted
undefined debug reason 8 - target needs reset
Info : accepting 'gdb' connection on tcp/3333
Warn : GDB connection 2 on target STM32F030F4Px.cpu not halted
undefined debug reason 8 - target needs reset
[STM32F030F4Px.cpu] halted due to debug-request, current mode: Thread
xPSR: 0xc1000000 pc: 0x080005f0 msp: 0x20001000
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
Info : Unable to match requested speed 8000 kHz, using 4000 kHz
[STM32F030F4Px.cpu] halted due to debug-request, current mode: Thread
xPSR: 0xc1000000 pc: 0x080005f0 msp: 0x20001000
and there's a line at HAL_Init();
I seem to get this output far more, I think it was just something with my debugger but the orange LED on the ST-LinkV2 is flashing and doesn't stop.
Heres is also a screenshot of the IDE:
2024-05-22 06:02 PM
I found the solution,
the board uploads when I have the crystal set internal instead of the external setup I have but I'm not entirely sure why. I chose the ECS-80-12-30-JGN-TR with two 20pF caps at CL1 & CL2, and have Rext at 0 ohm acting as a jumper for now.
I'm not entirely sure what's causing the bootloader to essentially get stuck at the end of the cycle when uploading it, but I'm assuming its something to do with the way I set up the crystal.
Heres is the layout on the board:
And the ide setup:
\
But at least now I can upload code to it and the ADC channel is working, albeit not accurately but it is reading values.