We are using the S332 v2.0.0 softdevice for a project. In our app, we use the sd_ant_rx_scan_mode_start() to kick off a heavy duty scan consuming the entire radio. However we notice that when periodically scanning (closing the scan channel and restarting the sd_ant_rx_scan_mode_start()), and having a dormant interval between scans of about 5 minutes, on subsequent enables of sd_ant_rx_scan_mode_start() we encounter a softdevice assert which claims it is a memory fault.
Here are the params that we get in the assert handler:
PC = 000293CC, CycleCnt = B884FB54
R0 = 00000001, R1 = 000048C8, R2 = 00000000, R3 = 000293CD
I tried to find some examples of this, but almost all samples permanently enable the rx scan mode and do not enable and disable it like we would like to. Also please note that the softdevice assert occurs after we enable the scan and subsequently call into sd_app_evt_wait().
Here is the usage:
1. configure scan channel for rx_scan (verified this works since we get a boatload of packets as expected)
2. call rx_scan_start(..) and set a 1-2 second timer to close the scan channel
3. on timer: close the scan channel and set a timer for 5 minutes
4. on timer: call rx_scan_start() again with the timer set to 1-2 seconds to close the channel
5. on timer: close the scan channel and set a timer for 5 minutes
6. on timer: call rx_scan_start and the system will hang with a softdevice assert within 500ms
Any advise or pointers are appreciated!
Edit1:
Confirmed that this assertion does NOT occur with the v1.0.2 softdevice. The only changes made to our application was the changes in how we supply the memory buffer for the ANT enable call since that was a little different.
Edit2:
Also confirmed that if we swap the RX scan channel to be a high duty scan channel - the same behavior is observed as soon as the channel is open.