AnsweredAssumed Answered

LPC4367/LPC4337: IAP-command "Chip_IAP_SetBootFlashBank()" somehow only validates but does not invalidate

Question asked by Mario Göckel on May 22, 2019
Latest reply on Jun 2, 2019 by Mario Göckel

if an Application, started from Bank A, sets via IAP-command "Chip_IAP_SetBootFlashBank(..B)" flashbank B to get the active one, the Bootloader (after a reset) does start Flashbank A again as Flashbank A has not been invalidated (with 00000000 from 0x1A000001C on) while Flashbank B (with valid 4-Byte Checksum at 0x1B000001C (calculated out of Vector-Tables 0 to 6)) has been validated only. I expected the Bootloader to start Flashbank B

Here is a code-snippet of my application, started from Bank A, for setting B to get the active one. What am I missing?:

__disable_irq();

ret_code = Chip_IAP_SetBootFlashBank(IAP_FLASH_BANK_B);

if (ret_code != IAP_CMD_SUCCESS){

   DEBUGOUT("Command failed to execute, return code is: %x\r\n", ret_code);

}

__enable_irq();/* Re-enable interrupt mode */ NVIC_SystemReset();

Outcomes