The bootloader SDK AN213924 says:
PSoC 6 MCU flash has a read-while-write (RWW) capability across 256-KB regions. That is, the bootloader code
may execute in one flash region while updating flash in another region.
My application is large and I cannot reserve 256KB for the bootloader. I modified the sample bootloader memory config to this:
flash_app0_core0 (rx) : ORIGIN = 0x10000000, LENGTH = 0x10000
flash_app0_core1 (rx) : ORIGIN = 0x10010000, LENGTH = 0x10000
flash_app1_core0 (rx) : ORIGIN = 0x10030000, LENGTH = 0x20000
flash_app1_core1 (rx) : ORIGIN = 0x10050000, LENGTH = 0x10000
Bootloader and app1 are both in the same 256KB region and everything still seems to work after I perform the app loading. Am I allowed to put app1 code in the same 256KB region as bootloader?
It's fine to modify the start address of application lower than 0x10040000, that is, put bootloader and application in a same flash sector, as the write executed by bootloader is blocking function.