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.

Parents
  • Are you sure that it is the WDT that causes the final reset? RESETREAS = 0x6 indicates both a WDT reset and a System reset (the register is probably not cleared between the two events). Is it possible that your application does a system reset on a function assert? Have you tried debugging like this?

    Could you try to speed up the use of the peer manager to see if we can reproduce quicker?

    Maybe it is an idea to clear the RESETREAS register at application startup too, to pinpoint the actual reset reason.

Reply
  • Are you sure that it is the WDT that causes the final reset? RESETREAS = 0x6 indicates both a WDT reset and a System reset (the register is probably not cleared between the two events). Is it possible that your application does a system reset on a function assert? Have you tried debugging like this?

    Could you try to speed up the use of the peer manager to see if we can reproduce quicker?

    Maybe it is an idea to clear the RESETREAS register at application startup too, to pinpoint the actual reset reason.

Children
No Data
Related