I’m currently working with an STM32H747I-DISCO board which hosts an STM32H747XI MCU. This is a dual-core MCU containing an M7 and an M4 core. I’ve got a couple of questions regarding using it with VisualGDB. I’m fairly new to using dual-core MCUs so I apologize for any obvious questions.
Firstly, does visualGDB facilitate any method for debugging both cores at the same time? And what is the typical workflow for using dual-core MCUs? From what I understand so far you must create two separate projects for each core, so in the MCU finder on GDB this would be STM32H747XI and STM32H747XI_M4 for the M7 and M4 cores respectively.
Secondly, in doing so, with the STM32H747XI_M4, I’m generating an led blink project using HAL, it builds fine but debugging it leads to ‘The memory location used for the stack is not writeable (0x10047ffc)” it seems as if there is some error in the generated linker script.
We are currently preparing a tutorial on the multi-core STM32 devices, so if the time permits, please consider waiting for 1-2 weeks and we will publish detailed steps to get it working.
Although debugging both cores within the same debug session is not possible due to gdb limitations, it should be possible to debug them from 2 independent Visual Studio instances, as long as your debug probe supports it.
If you need to get started faster, please consider creating a project using STM32CubeMX and importing into VisualGDB and then debugging it with Segger J-Link. The J-Link debug probe comes with its own low-level software that works out-of-the-box with multi-core devices and requires no special configuration.