I’m trying to debug some STM32F407 code generated by STM32CubeIDE, that includes FreeRTOS and LwIP. Because it seems to have different behavior when I compile and upload via STM32CubeIDE vs PlatformIO.
But I’m not able to break point in some driver code for LwIP. I think this piece code runs in another thread. I got this error when I try to put breakpoint:
Unable to get thread information: Cannot execute this command while the target is running.
Use the “interrupt” command to stop the target
and then try again. (from thread-info 1)
This is my configuration in platformio.ini:
[env] platform = ststm32 board = genericSTM32F407VET6 framework = stm32cube board_build.stm32cube.custom_config_header = yes board_build.stm32cube.custom_system_setup = yes board_build.stm32cube.startup_file = startup_stm32f407vgtx.s platform_packages = framework-stm32cubef4 @ https://github.com/lealoureiro/STM32CubeF4.git#v1.27.1-pio upload_protocol = stlink [env:genericSTM32F407VET6_release] build_type = release build_flags = -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -DHSE_VALUE=16000000L -fstack-usage -O0 -fdata-sections -MMD -MP -g3 [env:genericSTM32F407VET6_debug] build_type = debug debug_tool = stlink debug_build_flags = -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -DHSE_VALUE=16000000L -fstack-usage -O0 -fdata-sections -MMD -MP -g3 -Og debug_init_break = tbreak main debug_init_cmds = target extended-remote $DEBUG_PORT $INIT_BREAK monitor reset halt $LOAD_CMDS monitor init monitor reset halt
Is also notice that STM32CubeIDE uses ST-Link GDB server where PlatformIO uses OpenOCD. Is this related? There is a way to use ST-Link GDB server in PlatformIO?