nrf52832 Activate P0.21 gpio in DFU mode

Hello

SDK17.0.02

softdevice : s112

tool : segger embedded studio

DFU is under development.
Updating with DFU works normally, but some functions do not work.
The problem is P0.21.
P0.21 is connected to CS Pin of SPI.
The CONFIG_GPIO_AS_PINRESET setting has been deleted to operate as a gpio pin.
However, in dfu mode, it works as a reset pin.
Just download myapp.hex + softdivce and it will work normally. ( gpio pin)
However, if you download bootloader + bootloader_setting.hex + myapp.hex+softdevice by megre, it does not work. (reset pin

Even if you write directly to the register as shown below, it does not work the same.

void ResetPin_Flash_Wrtie(void)
{
NRF_UICR_Type tmp = {0,};
memcpy(&tmp, NRF_UICR, sizeof(NRF_UICR_Type));

NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Een << NVMC_CONFIG_WEN_Pos;
while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}

NRF_NVMC->ERASEUICR = NVMC_ERASEUICR_ERASEUICR_Erase << NVMC_ERASEUICR_ERASEUICR_Pos;
while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}

NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen << NVMC_CONFIG_WEN_Pos;
while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}

tmp.PSELRESET[0] = 0xffffffff;
tmp.PSELRESET[1] = 0xffffffff;

memcpy(NRF_UICR, &tmp, sizeof(NRF_UICR_Type));
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){}
}

log file  reset pin UICR Setting Value [FFFFFFFF]  [FFFFFFFF] 

It's changed in the log, but it doesn't really work.

please check.

Related