I use nRF52810 SoC to forward data between BLE and UART on our product. So I initialize UART interface and set some GPIOs once enter the "main" function in my codes. But we meet a problem that all the GPIOs except the reset pin of the nRF52810 SoC on the abnormal products returned by our customers hadn't been initialized because the reset pin is high level and the other pins are all low level. I found that the reset pin had been initialized in the "SystemInit" function. Therefore I think the the nRF52810 SoC on the abnormal products only executes the "SystemInit" function and doesn't run the "main" function. I try to reflash firmware of the nRF52810 SoC on the abnormal products and it can return to normal. Now I am confused.
Why does the abnormal chip stop between "SystemInit" function and "main" function? Is it possible for the flash in the nRF52810 to be affected by the environment and make the firmware changed abnormally ?
SDK I used: SDK V14.1.0
Softdevice version: s132_nrf52_5.0.0_softdevice