Standalone Bare-Metal Debug of Cortex-M33 Core via ST-LINK
I am working with an STM32MP257F-EV1 Evaluation Board (board reference MB1936, target device STM32MP257FAI3) and am trying to debug a standalone bare-metal application running on the Cortex-M33 core directly over SWD using ST-Link.
Current Setup
- Board: STM32MP257F-EV1
- Board reference: MB1936
- Target: STM32MP257FAI3
- Tools: STM32CubeIDE and STM32CubeProgrammer
- Boot configuration (SW1): Development boot
- Boot0 = 1
- Boot1 = 1
- Boot2 = 0
- Boot3 = 0
- JP3: No jumper fitted (STLINK-V3EC active)
- CubeIDE Debug Configuration:
- Load Mode = "thru JTAG/SWD link (Engineering mode)"
- Access Port = "8 - Cortex-M33"
- Debug interface = SWD
I have also attached a screenshot of the debug error I am receiving.
Current Observation
I am able to debug the Cortex-M33 successfully when the board is first booted from an SD card. After the SD-card boot completes, I can connect to and debug the M33 core from CubeIDE.
However, my requirement is to debug the M33 without booting the board from an SD card, eMMC, or QSPI.
Specifically, I would like to use the STM32MP257F-EV1 as a target for a standalone/bare-metal M33 application, with the debugger connecting directly over SWD and downloading/debugging the application.
Questions
Could you please clarify the following:
- Is it possible to debug the Cortex-M33 directly via SWD/JTAG on the STM32MP257F-EV1 without booting from SD card, eMMC, QSPI, or another non-volatile boot source?
- What is the recommended and officially supported procedure for debugging a standalone/bare-metal Cortex-M33 application over SWD?
Any guidance on the required boot process, debug settings, or device configuration would be greatly appreciated.
