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?

Parents
  • pages_init() returns NO_SWAP. Then fds_init() quits with FDS_ERR_NO_PAGES. I did not change any settings, just downloaded a clean SDK v13, built the project with gcc/make and programmed it. The same device was previously used to try out several different projects, so the FLASH memory contents could contain random bits of other firmware.

Reply
  • pages_init() returns NO_SWAP. Then fds_init() quits with FDS_ERR_NO_PAGES. I did not change any settings, just downloaded a clean SDK v13, built the project with gcc/make and programmed it. The same device was previously used to try out several different projects, so the FLASH memory contents could contain random bits of other firmware.

Children
No Data
Related