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

SDK 13.0: fds_init() causes errors unless doing a full FLASH erase

We are evaluating the nRF5 SDK 13.0 to upgrade our projects from v12.0 and it looks like it has a bug related to the FDS functionality.

I managed to reproduce it on the clean ble_app_hids_mouse example. Simply building and programming it together with the softdevice on a device that previously ran code from SDK v12 results in the following behavior:

  1. peer_manager_init() eventually calls fds_init() with the following call stack:

    pages_init()
    fds_init()
    pds_init()
    pm_init()
    peer_manager_init()
    main()
    
  2. pages_init() searches the FLASH pages for pages with its signature, does not find enough and returns with the NO_SWAP error.

  3. As a result, pm_init() fails and the firmware hangs in app_error_handler().

Doing a full FLASH erase before programming the firmware seems to help. Is there a better workaround to this?

Related