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

S120 Persistent storage initial clear command never executes

I am using S120 v2 with SDK 6. Initialization of the softdevice and device manager return no errors. However when I want to start a scan for devices, the function checks the status of pstorage with pstorage_access_status_get and finds that the initial storage clear operation initiated by device_manager_central in dm_init when the option clear_persistent_data is set to true, has not been processed yet!

Looking into the workings of pstorage shows that a queued operation is executed only when a system event occurs (pstorage_sys_event_handler). This does not happen between start of the application and my scan request.

I cannot find any flaw in the initialization code of the softdevice, device manager and pstorage.

I hope someone has a clue as to what I am doing wrong or what I am missing. It might make a difference, I am using the scheduler.

PS Because the scan actually does not run (as it waits for pstorage to finish), the scan_stop function that runs on timer expiration, results in an application error caught by app_error_handler. The error says WRONG STATE, which of course is correct while scanning is not running at the moment of the stop request. Should I keep track of state or is there some function to check state?

Parents
  • @Leon: Do you have the same issue when testing with our stock example (ble_app_hrs_c project for example) ?

    When holding button 1 when start up, we will try to clear the bond information page. There should be an system event after the page is erased. As I'm testing here I got an system event back (pstorage_sys_event_handler()) with NRF_EVT_FLASH_OPERATION_SUCCESS code and op_code = 0x04 means PSTORAGE_CLEAR_OP_CODE.

    And the nRF51 continued to scan and report the advertising packet back.

    Please make sure you have update the API header files for S120 v2.0 to the SDK. Because SDK v6.x came with the API for the S120 v1.0.

Reply
  • @Leon: Do you have the same issue when testing with our stock example (ble_app_hrs_c project for example) ?

    When holding button 1 when start up, we will try to clear the bond information page. There should be an system event after the page is erased. As I'm testing here I got an system event back (pstorage_sys_event_handler()) with NRF_EVT_FLASH_OPERATION_SUCCESS code and op_code = 0x04 means PSTORAGE_CLEAR_OP_CODE.

    And the nRF51 continued to scan and report the advertising packet back.

    Please make sure you have update the API header files for S120 v2.0 to the SDK. Because SDK v6.x came with the API for the S120 v1.0.

Children
No Data
Related