cancel
Showing results for 
Search instead for 
Did you mean: 

STM32WB flash size

lizerd
Associate III

Hi.

I started a new project with the STM32WB35CEU as the target.

Both in the datasheet and cubeMX MCU info it states 512Kbytes FLASH and 96KBytes of RAM.

But when I generate that project code with cubeMX the linkerscript shows 256K

FLASH (rx)  : ORIGIN = 0x08000000, LENGTH = 256K

the header clearly states 512Kbytes FLASH / 96Kbytes RAM

Is that just an error or am I missing something ?

My first thought was that the dual core is more like two processors that splits the usage of FLASH for each processor??

But then we still can't use the whole 512KB that is stated because the radio core has it's own set code that we cant modify ?

so the datasheet description should come with and annotation that states that the user can not use more then half of the FLASH?

I hope that I am wrong, and this is just an error 🙂

From linker script (STM32WB35CEU)

/*

******************************************************************************

** File       : LinkerScript.ld

** Author     : STM32CubeIDE

**

** Abstract   : Linker script for STM32WB35xE Device

**                     512Kbytes FLASH

**                      96Kbytes RAM

*****************************************************************************

/* Highest address of the user mode stack */

_estack = ORIGIN(RAM1) + LENGTH(RAM1);   /* end of RAM1 */

/* Generate a link error if heap and stack don't fit into RAM */

_Min_Heap_Size = 0x400 ;     /* required amount of heap */

_Min_Stack_Size = 0x800 ;  /* required amount of stack */

/* Specify the memory areas */

MEMORY

{

FLASH (rx)                : ORIGIN = 0x08000000, LENGTH = 256K

RAM1 (xrw)                : ORIGIN = 0x20000004, LENGTH = 0x7FFC

RAM_SHARED (xrw)          : ORIGIN = 0x20030000, LENGTH = 10K

}

1 REPLY 1
Javier1
Principal

You are right, the flash size is 512KB

>My first tought was that the dual core is more like two processors that splits the usage of FLASH for each processor??

Yup, the coprocessor programm is stored in that same flash.(fixed address 0x080CA000 for BLE , see link)

https://community.st.com/s/question/0D53W000013qLmwSAE/cubeprogrammer-firmware-upgrade-error-firmware-not-authentic-pnucleowb55

>But then we still can use the whole 512KB that is stated because the radio core has it's own set code that we cant modify ?

You could in theory.... but only if you dont want to use STM32s coprocessor binaries , some of that flash is occupied by the coprocessor programm (BLE stack/zigbee/...).

So in practice, you cant

>so the datasheet description should come with and anotation that states that the user can not use more then half of the FLASH?

You could use it if youre willing to code your own coprocessor code, which would still use some flash.

we dont need to firmware by ourselves, lets talk