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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2023-04-08 1:33 PM
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?
- Labels:
-
STM32WL series
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2023-04-08 11:30 PM
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.
