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

A UICR write operation has been requested but UICR has not been erased

There are already a few threads about this problem but none of them helped.

I want to use GPIO9 + 10 as .. well .. GPIO.

Here's what I did:

  • added CFLAGS += -DCONFIG_NFCT_PINS_AS_GPIOS in Makefile
  • added a section in linker script:

UICR_NFCPINS(r) : ORIGIN = 0x1000120C, LENGTH = 0x04

SECTIONS { /* Write the bootloader address in UICR. / .uicrNfcPinsAddress : { KEEP((.uicrNfcPinsAddress)) } > UICR_NFCPINS }

  • set the constant in main.c: const uint32_t UICR_ADDR_0x20C attribute ((section(".uicrNfcPinsAddress"))) attribute((used)) = 0xFFFFFFFE;

And after all, still it didn't help, I always had the "A UICR write operation..." message and the GPIOs didn't work.

Finally I did nrfjprog --memwr 0x1000120c --val 0xFFFFFFFE --family nrf52 --verify That helped but is not best practice, I guess - and still the message did not disappear (but the GPIOs work at least)

Any help please?

Parents Reply Children
No Data
Related