Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

freertos + fds

Hi. I am trying to add FDS to my application where I used freertos and ble. I tried few things always ending with hardfault, one time it was from Freertos scheduler and the other times I cannot really tell.

- first I was trying to simply add fds_record_write() as fds was already initilized by peer_manager

- second I removed peer manager and initlized fds myself, I got the fds_init event but on fds_record_write() attempt it failed with harfault - altthough call to fds_record_write() itself returned success

- third I took raw (unmodified) ble_app_hrs_freertos and tried to add fds_record_write() on every battery_level_update. 

Until I tried third solution I was thinking that maybe something was witihin my app but looks like it is something (bug?) with fds/freertos. 

Can someone advise me what is proper way to use FDS with Freertos?

Thanks

Parents
  • I have similar problems on the very same setup. I can also confirm that the fds_record_write() returns FDS_SUCCESS and it never really finishes writing anything. However, When I dump the flash afterwards,  you can see below that it writes my word size (15) and record key (0x0C13), but not the actual data (i ran it three times, hence the 3 "dirty" records). I have no idea why this happens. When i take the fds_record_write() out of the FreeRTOS task function by running it before vTaskStartScheduler() it works perfectly.

    0x000FDFE0: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FDFF0: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE000: DEADC0DE F11E01FE 000F0C13 FFFFFFFF   |................|
    0x000FE010: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE020: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE030: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE040: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE050: 000F0C13 FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE060: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE070: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE080: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE090: FFFFFFFF FFFFFFFF 000F0C13 FFFFFFFF   |................|
    0x000FE0A0: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE0B0: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE0C0: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE0D0: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE0E0: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE0F0: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    

Reply
  • I have similar problems on the very same setup. I can also confirm that the fds_record_write() returns FDS_SUCCESS and it never really finishes writing anything. However, When I dump the flash afterwards,  you can see below that it writes my word size (15) and record key (0x0C13), but not the actual data (i ran it three times, hence the 3 "dirty" records). I have no idea why this happens. When i take the fds_record_write() out of the FreeRTOS task function by running it before vTaskStartScheduler() it works perfectly.

    0x000FDFE0: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FDFF0: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE000: DEADC0DE F11E01FE 000F0C13 FFFFFFFF   |................|
    0x000FE010: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE020: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE030: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE040: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE050: 000F0C13 FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE060: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE070: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE080: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE090: FFFFFFFF FFFFFFFF 000F0C13 FFFFFFFF   |................|
    0x000FE0A0: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE0B0: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE0C0: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE0D0: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE0E0: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    0x000FE0F0: FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF   |................|
    

Children
No Data
Related