SOFTDEVICE: ASSERTION FAILED PC=0x00014CBC

I am currently debugging the nrf52832 project developed using the nrf5SDK.

I will encounter SOFTDEVICE: ASSERTION FAILED from time to time, like this:

I don't have a reliable method to reproduce this problem consistently.

By using the disassembly window of Keil, it seems that this problem occurs when the interrupt is triggered.

But I don't understand why this issue was triggered.

Parents Reply
  • Hi!

    I assume then, that you are using s132_nrf52_7.0.1

    The assert indicates that the SoftDevice was unable to process a BLE event in time. The BLE protocol have timing requirements, and when they are not meet the SoftDevice will assert. There could be several reasons why the SoftDevice did not process these events in time:

    • You are somehow blocking the SoftDevice in a higher priority interrupt/task/thread, and therefore not giving the SoftDevice enough time to process the BLE events. It could potentially also happen when debugging with breakpoints.
    • The application disabled interrupt globally at an unfortunate time
    • You are using the Timeslot API, and not ending the timeslot in time, i.e. you spent too much time in the timeslot.
    • If this is a custom board, it could be some HW issues with the crystal(s) you are using.
Children
Related