2025-04-06 8:10 AM
Hi,
Background
Working on STM32WB55.
Flash size is 1MByte.
Attached .ld file describes: Boot, Bank 0 (App1), Bank 1 (App2) and DB sections.
Boot and App linker files (.ld) are quite similar from memory management aspect.
App .ld file
/* Specify the memory areas */
MEMORY
{
FLASH_BOOT (rx) : ORIGIN = _BOOT_START, LENGTH = _BOOT_SIZE /* 32KB for BOOT End address: 0x08007FFF */
FLASH_BANK_0 (rx) : ORIGIN = _BANK_0_START, LENGTH = _BANK_0_SIZE /* 250KB for Bank 0 (Factory version) End address: 0x0805F7FF */
FLASH_BANK_1 (rx) : ORIGIN = _BANK_1_START, LENGTH = _BANK_1_SIZE /* 250KB for Bank 1 (New version) End address: 0x080B6FFF */
FLASH_DB_CFG (rx) : ORIGIN = _DB_CFG_START, LENGTH = _DB_CFG_SIZE /* 16KB for DB (Configuration) End address: 0x080BAFFF*/
RAM (xrw) : ORIGIN = 0x20000004, LENGTH = 0x2FFFC
RAM_SHARED (xrw) : ORIGIN = 0x20030000, LENGTH = 10K
}
Scenario
Jump from Boot to App (Bank 0)
Problem
** Can somebody help to understand why is that (CPU2 cannot initialize when jumping from Boot to App)?
Thanks,
Aviv
2025-04-06 10:54 PM
Hi,
Further to above post, I noticed that al long as FLASH_BANK_1 (in .ld file) is ended in address lower than ~512KByte --> then CPU2 is initialized successfully.
BUT, once FLASH_BANK_1 is ended in address bigger than ~512KByte --> then CPU2 is has problems to initialize.
Question:
Is there any issue with application that is defined in .ld file to run on the second half of the flash (i.e.: in address bigger than 512KByte out of 1MByte)?
Thanks,
Aviv
2025-05-05 7:54 AM
Hello @AFink
I think it may be a problem on the limits of the available FLASH. since a part of the flash (start from the SFSA address) is used by the CPU2. The part 4.2 of the AN5289 Rev 18 can give you more details about that.
Best Regards.
STTwo-32
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.