This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Bootloader freezed when NRF_FICR->CODEPAGESIZE was broken

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:

  1. Are there any possibility to update NRF_FICR->CODEPAGESIZE value in any functionality?
  2. 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.

image description

Best regards,

Parents Reply Children
No Data
Related