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

Erasing UICR from software - Do I need to save and copy non-customer UICR registers?

I need to be able to erase assembly number stored in UICR as part of production process. Im using ERASEUICR for nrf52840.

Do the non-customer UICR registers, e.g. nordic reserved NRFFW,  PSELRESET, APPROTECT etc, need to be copied to RAM and rewritten, if I need to erase a register in customer UICR?

Parents
  • Hi,

    UICR is essentially a normal flash page, so the only way to erase it is to erase it complacently, to that it will be all 1's. Therefor you need to temporarily store and write back any data you need to keep, including any registers that are reserved.

    This means that UICR erase can be a somewhat risk operation, depending on your system. Therefore, I recommend you consider carefully weather there is a need for erasing the UICR page, or if it is possible to achieve what you want to do in another way. You should also note that UICR erase if not allowed in case APPROTECT is enabled.

Reply
  • Hi,

    UICR is essentially a normal flash page, so the only way to erase it is to erase it complacently, to that it will be all 1's. Therefor you need to temporarily store and write back any data you need to keep, including any registers that are reserved.

    This means that UICR erase can be a somewhat risk operation, depending on your system. Therefore, I recommend you consider carefully weather there is a need for erasing the UICR page, or if it is possible to achieve what you want to do in another way. You should also note that UICR erase if not allowed in case APPROTECT is enabled.

Children
  • Hi Einar.

    i have a question and i'm a begginer

    the datasheet of nRF52840 said FICR's Address starts 0x10000000 and UICR's Address starts 0x10001000

    if uicr is just flash page, (0x10001000, 0x10000000) is just address to access the flash?

    and the datasheet also said nRF52840's flash page is page 0 to page 255(Address 0x00000000 to 0x000FF000)

    that's mean the flash actually has ( 255 page + UICR + FICR ) size ?

    regard.  

Related