Hello,
I am trying to implement reliable update on the FRDM-K32L3A6 board. I have two applications that flash a red LED:
- blinky_slow.bin (flashes LED slowly)
- blinky_fast.bin (flashes LED rapidly)
Each of these apps has the Bootloader Configuration Area at address 0x3C0 configured so that ROM bootloader will do a CRC check (see attached pic). If I load the apps individually at start of flash 0x0000, the ROM bootloader CRC check passes and the image boots. Works great for both!
But if I load blinky_slow.bin into lower half of flash at address 0x00000, then I load blinky_fast.bin into upper half of flash at address 0x80000, and issue this command:
blhost -p COM5 reliable-udpate 0x7FF00
I expect this command to swap the upper and lower flash regions such that after reset the backup image in upper flash (blinky_fast.bin) will run. But I get this error:
Response status = 10603 (0x296b) kStatus_ReliableUpdateBackupApplicationInvalid
It seems like the ROM bootloader is checking the CRC of the backup image (blinky_fast.bin) and it fails.
But how can this be? The CRC for blinky_fast.bin passes if I load it into 0x00000. Can "BackupApplicationInvalid" mean something else besides CRC check fail?
Thanks in advance,
Sam