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:
-
peer_manager_init() eventually calls fds_init() with the following call stack:
pages_init() fds_init() pds_init() pm_init() peer_manager_init() main()
-
pages_init() searches the FLASH pages for pages with its signature, does not find enough and returns with the NO_SWAP error.
-
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?