This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Is UICR really a full 1K flash page?

I'm putting some bootloader and static config data in the customer section of the UICR and I accidentally wrote to 0x1001200 and worked just fine.

Looking closer, it seems that UICR is actually a full 1K flash page, even though the reference manual only only mentions addresses up to 0x100010FF.

I can easily find a use for the extra space, is there any reason not to use the full UICR page?

Why wouldn't the reference manual specify that it is a full 1K page?

Parents
  • Hi

    The UICR is somewhat special and does not behave as a normal flash page. You can only erase it with two commands (see nRF51 Series reference manual v2.1, NVMC chapter), nrfjprog --eraseall, which erases the UICR and the whole 256kB flash area (softdevice, application and bootloader), or with the command nrfjprog --eraseuicr, which will erase the UICR and code region 1, which is the application and the bootloader, so it is normally not convenient to use as you can not erase it unless erasing everything else.

Reply
  • Hi

    The UICR is somewhat special and does not behave as a normal flash page. You can only erase it with two commands (see nRF51 Series reference manual v2.1, NVMC chapter), nrfjprog --eraseall, which erases the UICR and the whole 256kB flash area (softdevice, application and bootloader), or with the command nrfjprog --eraseuicr, which will erase the UICR and code region 1, which is the application and the bootloader, so it is normally not convenient to use as you can not erase it unless erasing everything else.

Children
Related