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

FDS multiple GC completed events and crash

Device: nrf52, sd132 v3.0.0, SDK 12.1 (and also 12.3), freeRTOS, BLE peripheral, gcc-arm-none-eabi-5_4-2016q2

I am experiencing an issue which is causing our device to crash and eventually reset due to the WDT.

See device log:

[103817690]:DEBUG:PM_EVT_BONDED_PEER_CONNECTED: peer_id=0
[103817691]:DEBUG:Peripheral connected
[103817698]:DEBUG:BLE_GAP_EVT_RSSI_CHANGED - rssi changed -43,
[103818319]:DEBUG:GC completed 0
[103818319]:DEBUG:GC completed 0
[103818320]:DEBUG:GC completed 0
[103818320]:DEBUG:GC completed 0
[103818320]:DEBUG:GC completed 0
[103818320]:DEBUG:GC completed 0
[103818320]:DEBUG:GC completed 0
[103818321]:DEBUG:GC completed 0
[103818321]:DEBUG:GC completed 0
[103818321]:DEBUG:GC completed 0
[103818321]:DEBUG:GC completed 0
[103818322]:DEBUG:GC completed 0
[103818322]:DEBUG:GC completed 0
[103818322]:DEBUG:GC completed 0
[103818322]:DEBUG:GC completed 0
[103818323]:DEBUG:GC completed 0
[103818323]:DEBUG:GC completed 0
[103818323]:DEBUG:GC completed 0
[103818323]:DEBUG:GC completed 0
[103818324]:DEBUG:GC completed 0
[103818324]:DEBUG:GC completed 0
[103818324]:DEBUG:GC completed 0
[103818324]:DEBUG:GC completed 0
[103818325]:DEBUG:GC completed 0
[103818325]:DEBUG:GC completed 0
[103818325]:DEBUG:GC completed 0
[103818325]:DEBUG:GC completed 0
[103818325]:DEBUG:GC completed 0
[103818326]:DEBUG:GC completed 0
[103818326]:DEBUG:GC completed 0
[103818326]:DEBUG:GC completed 0
[103818326]:DEBUG:GC completed 0
[103818327]:DEBUG:GC completed 0
[103818327]:DEBUG:GC completed 0
[103818327]:DEBUG:GC completed 0
[103818327]:DEBUG:GC completed 0
[103818328]:DEBUG:GC completed 0
[103818328]:DEBUG:GC completed 0
[103818328]:DEBUG:GC completed 0
[103818329]:DEBUG:GC completed 0
[103818329]:DEBUG:GC completed 0
[103818329]:DEBUG:GC completed 0
[00000010]:INFO:Reset Reason (NRF_POWER->RESETREAS): 0x6

The above log was from a build using SDK 12.1. I noticed relevant bugfixes in SDK 12.3 and hoped that would resolved the issue. I did a build using SDK12.3 and the issue is still present. The 0 at the end of the GC completed log is the value of p_fds_evt->result received by fds_evt_handler.

I do not use FDS directly, only through peer manager. It takes awhile (>12 hours) to reproduce this issue in normal operation of the device. I might be able to accelerate it by modifying the code to constantly exercise peer manager/FDS?

Do you have an idea why this issue occurs?

Do you have any suggestions on how to resolve this issue?

Or is there an "easy" way to use (modify) peer manager without using FDS. It is not necessary for our device to store peer information in flash, RAM would be fine (and preferred).

Thanks.

Related