where to save NON-volatile device parameters?

Dear Nordic,

we need to save few bites (product serial number, few settings). we use BLE with bonding on a FreeRTOS based FW. PM is already using FDS, at it is not clear how to use the FDS without conflict while BLE is running.

What is the best method to store these data?

Thanks!

Parents Reply Children
  • This is clear, but what if I need to write something on CUSTOMER[x] UICR at runtime?

    If it is not suggested to use FDS while BLE is running, and UICR at runtime, where should I save my few data?

  • If it is not suggested to use FDS while BLE is running, and UICR at runtime, where should I save my few data?

    You can use FDS while BLE is on, that is not a problem. The BLE peer manager uses FDS to save some data, but you can also use the same FDS to save your data. The FDS library handles that easily.

    So for things that are written during production and never change, use UICR. For anything else nonvolatile, use FDS.

  • You can use FDS while BLE is on, that is not a problem.

    Thanks. we already tried to use FDS while using BLE, but unfortunatly its not working.

    We opened few threads months ago (this is a public one), but there were no way to read and write data with FDS + BLE + SD + FreeRTOS without hardfault handler.

  • I think trying to get FDS to work would be your best option. Otherwise you'd need to implement something entirely custom, and that sounds like more work than troubleshooting the FDS part of your application.

    For the specific issue you linked to: Your FDS handler will be called for all FDS events, even those coming from the peer manager. That is simply how the observer implementation is designed. In your handler you need to check if this event is from your own code or from the peer manager. The peer manager uses a specific range of file id:s and record keys. Those can be used to check if the event is from the peer manager.

  • Your FDS handler will be called for all FDS events, even those coming from the peer manager.

    yes, I understood

    In your handler you need to check if this event is from your own code or from the peer manager.

    Please could you give me some hint? the documentation is not so clear and I cannot understand how to make this check

    The peer manager uses a specific range of file id:s and record keys. Those can be used to check if the event is from the peer manager.

    I walked over the library and I can see that this check is made inte the pm routines, but I cant figure out how to register a new FDS user, and how to filter the events in my own FDS code.

    Thanks!

Related