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

Troubleshooting SoftDevice assertion

Hello, I am working on an nRF52 project that uses the SoftDevice S132 v3.0.0. The system supports BLE observer, BLE central, and ESB functions. BLE central and observer work simultaneously, and BLE central and ESB work simultaneously. However when I try to run all three of these functions simultaneously I get a SoftDevice assertion at PC=0x00011150. With a short scan interval for the observer, the crash occurs immediately, but with a longer scan interval it takes a few seconds to crash. So I assume it's a timing problem.

Is there any information available about why this specific SoftDevice assertion occurs, that I could use to start figuring out how to troubleshoot this? Thanks, Paolo

Parents
  • I think I've found and fixed the problem. At the start of each timeslot I enable TIMER0 COMPARE interrupts 0, 1, and 2. However at the end of each timeslot I was never disabling these interrupts. If I disable those interrupts with INTENCLR in the TIMER0 interrupt handler before the timeslot ends, then everything works reliably.

    I don't know if the crash occurs because a TIMER0 interrupt is occurring outside of my timeslot when the SoftDevice isn't expecting it, or if the SoftDevice just isn't expecting to find those interrupts enabled. Either way it's fixed now. Thanks for your help.

  • wow, this is very interesting. I also thought that app can leave its settings on these peripherals and softdevice will re-initialize them completely. Time to read the release notes again carefully :)

Reply Children
No Data
Related