cancel
Showing results for 
Search instead for 
Did you mean: 

We have an STM32WL55 processor. The FLASH memory is divided for two cores: CM0PLUS FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 128K CM4 FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 128K Everything works.

JHave.1
Associate II

But we need to increase the memory for CM4, so we modified the files STM32WL55CCUX_FLASH.ld:

  • CM0PLUS

FLASH (rx) : ORIGIN = 0x08030000, LENGTH = 64K

  • CM4

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

Unfortunately, it stopped working with this definition. Apparently something else needs to be adjusted or what are we doing wrong?

1 REPLY 1
Danish1
Lead II

When the CM0PLUS comes out of reset it expects its vector table to be at 0x08020000. The first couple of entries in that table point to startup code and stack location. Those must be where the CM0PLUS expects them.

Early in the startup code you can change the vector pointer for all other entries, but as you have to have those two entries at the expected address means there’s little to gain by putting the rest somewhere else - unless it is your intention to put vectors in RAM.

See the Programming Manual for more information.