cancel
Showing results for 
Search instead for 
Did you mean: 

STM32 Dual core memory question

DenDanne
Associate II

Hello!

I am looking to do a project with STM32WB5MMGH6TR

Looking at the datasheet:
"
-  Dedicated Arm® Cortex®-M0+ for radio and security tasks
-  Dedicated Arm® Cortex®-M4 CPU with FPU and ART (adaptative real-time
   accelerator) up to 64 MHz speed

- 1-Mbyte Flash memory, 256-Kbyte SRAM 
"

When I create an STM32CubeIDE project with STM32WB5MMGH6TR, I see the correct pins and everything.

DenDanne_0-1690793915870.png

Just to test the flash memory space, I added a couple of two dimensional arrays until I got error that flash is full.

This is the maximum amount of flash that I can load (so about half a Mbyte, not the 1-Mbyte that was said in datasheet.

DenDanne_2-1690794161811.png

If I add a 128x128 image to the memory too, I get

"

c:\st\stm32cubeide_1.10.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.0.202111181127\tools\arm-none-eabi\bin\ld.exe: wb5_compile_test.elf section `.rodata' will not fit in region `FLASH'
c:\st\stm32cubeide_1.10.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.0.202111181127\tools\arm-none-eabi\bin\ld.exe: region `FLASH' overflowed by 12356 bytes"

So the questions.

1. Is the 1-Mbyte flash advertised in datasheet the total of both the M0 and M4 processors?

    If so, how do I know which processor I am programming right now? I assume it's the M4 one since the 

    M0 is for radio and security according to datasheet.

2. How do I get access to the other half Mbyte? And how do I specifically program the other processor?

3. If my assumption of splitted flash is correct, is it the same with RAM? Any way to know how much RAM each controller has?

1 ACCEPTED SOLUTION

Accepted Solutions
Sarra.S
ST Employee

Hello @DenDanne, welcome to ST Community, 

First, you need to read RM0471, paragraph 3: Embedded flash memory 

Also, there are 2 related applications notes (using stm32H7) that can really be helpful 

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

View solution in original post

2 REPLIES 2
Pavel A.
Evangelist III

Have you looked at the link script? Usually it tells the ground truth about RAM and flash available for a CM4 program. 

Now you are prepared to shop for electric car:) If the booklet says 500 miles, ask can you drive all 500 miles at once, or they mean 250 miles, recharge, drive another 250 ... or drive 500 miles at pedestrian speed. 

*** Note that in STM32 slang 'dual core' means STM32H7 or other combinations of CM4 and CM7 or CA. STM32WB belongs to "wireless" family.

Sarra.S
ST Employee

Hello @DenDanne, welcome to ST Community, 

First, you need to read RM0471, paragraph 3: Embedded flash memory 

Also, there are 2 related applications notes (using stm32H7) that can really be helpful 

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.