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

spurious Softdevice Asserts

After upgrading from Softdevice S132 version 5.0.0 to 6.1.0 (deployed to an nrf52832; bare metal), I’m experiencing calls to the Softdevice assert-Handler once in a while. Subjective, I would say that they either occur after the device was freshly powered up or if they are not occurring right after the power-up, they occur never. I run the software in the debugger, setting a breakpoint at _exit(), which is indirectly called from my Softdevice assert handler.
The call stack always looks like this (with the exact same numbers to sd_fault_handler()):
Breakpoint 2, 0x0002cb7c in _exit ()
(gdb) bt
#0  0x0002cb7c in _exit ()
#1  0x0002c87e in abort ()
#2  0x000269f4 in __assert_hash_func (hash=3338771255) at /Users/todi/blueswd_firmware/source/assert/assert.cpp:72
#3  0x00027b76 in sd_fault_handler (id=1, pc=83806, info=0) at /Users/todi/blueswd_firmware/source/firmware/nrf_bluetooth.cpp:32
#4  0x00024008 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

As the PC is inside the soft device and as we (unfortunately) don’t have access to the SDs sources, it’s very hard to tell what causes the assert. Any idea, what the cause of the assert could be and how to further investigate this?
best regards,
Torsten
Related