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

Flash FDS initialization failure

When the nRF52 micro-controller is programmed through batch file i.e. nrfjprog utility, the flash fds fails to initialize. Every time, flash fds initialization fails, I have code for soft_Reset.

Initialization fails 3 times and then Flash FDS initializes with success.

After a bit of debugging, I found out fds_register(flash_fds_evt_handler) returns with Success. fds_init() returns with Success.

But the flash_fds_evt_handler() never gets called in the first 3 attempts.

Any insight will be helpful.

I have attached the code snippet below. I am using nRF52932 microcontroller, SDK12.2.0, softdevice s132 v3.0.0

ble_stack_init();

// fds must be initialized after the Softdevice, as it uses the system event to run
flash_fds_init();           
// must wait for fds to initializ
while(!fds_init_complete)   
{
    power_led_red_on();
    nrf_delay_ms(1000);
    NVIC_SystemReset();
}
// use fds to get the auth params (first time though, this Writes the default auth params) 
load_auth_params();
Parents Reply
  • I don't quite understand the logic behind the snippet that you posted.

    It seems to me that you attempt to initialize fds, which is an asynchronous operation. Then, immediately after returning from the call flash_fds_init() you check that the operation has completed, and if it has not you wait one second and reset. That doesn't make much sense to me.

    That code you posted will reset the chip until the initialization becomes a synchronous operation and you receive a callback before the flash_fds_init() function returns and thus the flag is already set when you check it.

    Did I explain it well enough? :)

    Regards, emdi

Children
No Data
Related