Hi,
I added this in SystemInit() (just below the CONFIG_NFCT_PINS_AS_GPIOS section) within system_nrf.c so that I could easily turn on or off the APPROTECT read back protection when switching between my debug and release builds.
#if defined(ENABLE_READBACK_PROTECTION) if ((NRF_UICR->APPROTECT & UICR_APPROTECT_PALL_Msk) == (UICR_APPROTECT_PALL_Disabled << UICR_APPROTECT_PALL_Pos)) { NRF_NVMC->CONFIG = (NVMC_CONFIG_WEN_Wen << NVMC_CONFIG_WEN_Pos); while (NRF_NVMC->READY == NVMC_READY_READY_Busy) { } NRF_UICR->APPROTECT = 0xFFFFFF00; while (NRF_NVMC->READY == NVMC_READY_READY_Busy) { } NRF_NVMC->CONFIG = (NVMC_CONFIG_WEN_Ren << NVMC_CONFIG_WEN_Pos); while (NRF_NVMC->READY == NVMC_READY_READY_Busy) { } NVIC_SystemReset(); } #endif
Hope this helps anyone else who may have been struggling with enabling read back protection.