My custom board sometimes freezed on initialization process of bootloader (SDK11 dual_bank_ble_s130) when after long running and reconnect the power. However the symptoms is not all boards but likely around 1 in 10 boards.
I was able to debug the bootloader steps by the following way. devzone.nordicsemi.com/.../
And I found that the NRF_FICR->CODEPAGESIZE was invalid value (0xF6F58FFB). (it's supposed to be 0x00000400)
main.c (bootloader)
leds_init();
// This check ensures that the defined fields in the bootloader corresponds with actual
// setting in the chip.
APP_ERROR_CHECK_BOOL(*((uint32_t *)NRF_UICR_BOOT_START_ADDRESS) == BOOTLOADER_REGION_START);
APP_ERROR_CHECK_BOOL(NRF_FICR->CODEPAGESIZE == CODE_PAGE_SIZE);
Therefore, my questions are:
- Are there any possibility to update NRF_FICR->CODEPAGESIZE value in any functionality?
- How can I recover this value (NRF_FICR->CODEPAGESIZE)? because in spite of I erased flash and re-flashed all again, I could not start the program if it becomes so.
Any advice and suggestions will be greatly appreciated.
Best regards,