cancel
Showing results for 
Search instead for 
Did you mean: 

Accessing system memory in STM32G0

Hello,

I am trying to enter the system memory at boot time with the STM32G030 MCU. It has the BOOT0 line shared with SWCLK functionality, which is new to me compared to the STM32F* devices. I always entered the system memory in other devices by setting the BOOT0 state to high at reset release event, but it does not work here. The system memory can be only accessed if the MCU is "blank" (then accessed automatically). Based on this table from the DS:

0693W000008GgndQAC.pngI am trying to target the second row I believe. The only thing coming up to my mind is that the nBOOT1 bit is cleared and the CPU starts to boot from SRAM... (I don't know what is the default state of that bit).

Is there any additional steps I need to make in order to be able to access system memory via BOOT0 pin high state, when there is user program loaded already? I would appreciate all help.

4 REPLIES 4

Hi There,

Anyone able to help out with this one?

Ozone
Lead

I don't know the G series.

Supposedly, "System memory" is the system ROM.

Perhaps the memory map and the address range of the system memory gives some further indications.

Couldn't software in the Reset_Handler looks at the state of the PA13/PA14 pins and do something in that case? ie jump into the boot loader, or erase thy self

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

Hi guys, thank you for the answers.

This is not about finding a workaround in software for this feature. Normally when BOOT0 is held high during reset deassertion, the device boots in System Memory, not Main Flash memory. With this G0 IC, this is for the first time I see it not working. Its is also the first time I see that the BOOT0 functionality is shared with SQCL functionality on the same pin (no idea whether this should be a concern).

When compared, the STM32F0 boot config is less complicated:

0693W000007Z5xBQAS.png 

But also not very different. Knowing the default state of nBOOT1 and nBOOT_SEL and nBOOT0 bits would probably help.