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

SOFTDEVICE: ASSERTION FAILED while running mesh.

Hi, I'm getting regular crashes with my app: SOFTDEVICE: ASSERTION FAILED.

Using and NRF52832, SDK 15.3.0, SD 132 6.1.1, and Mesh SDK 3.1.0.

With DEBUG defined, I don't really get more info: id=1, pc=148742, info=0.

The last mesh log usually is something with TX (mostly net_beacon.c,  265, BEACON TX).
One crash, I also had a log of getting event NRF_EVT_RADIO_SESSION_IDLE.

I use the mesh SDK to communicate via mesh between nodes, to advertise iBeacon (100ms interval), and I use the scan callback. Next to that, I also use the SD to advertise service data.

Parameters:

	nrf_clock_lf_cfg_t lfclksrc;
	lfclksrc.source = NRF_SDH_CLOCK_LF_SRC;
	lfclksrc.rc_ctiv = NRF_SDH_CLOCK_LF_RC_CTIV;
	lfclksrc.rc_temp_ctiv = NRF_SDH_CLOCK_LF_RC_TEMP_CTIV;
	lfclksrc.accuracy = NRF_CLOCK_LF_ACCURACY_20_PPM;

	mesh_stack_init_params_t init_params;
	init_params.core.irq_priority       = NRF_MESH_IRQ_PRIORITY_THREAD;
	init_params.core.lfclksrc           = lfclksrc;
	init_params.core.p_uuid             = NULL;
	init_params.core.relay_cb           = NULL;




Any idea of what causes this crash?

Parents
  • Let me see if I can get a hold of a softdevice elf file. Then we could use the addr2line tool to see where the softdevice assert is occuring. I will get back to you soon.

  • What happens if you decrease the iBeacon advertising interval to say every 2 seconds? Do you get the assert then?

  • Same sort of thing:

    app_error_fault_handler (id=1, pc=86552, info=0)

    bt: #1  0x00023de8 in ?? ()

    My soc handler printed event 7 (NRF_EVT_RADIO_SESSION_IDLE).

    The mesh debug:

    <t:    1353824>, net_beacon.c,  265, BEACON TX F8:D2:7A:2E
    <t:    1772985>, net_packet.c,  230, Unencrypted data: : C51E60D00D80AD09ADA0E236A8337182EA6A
    <t:    1772992>, transport.c,  934, Message decrypted
    <t:    1772995>, access.c,  246, RX: [aop: 0x00C0]
    <t:    1773660>, net_packet.c,  230, Unencrypted data: : C51E6016BCC5AAA3AE307F3A8CDE8874138C
    <t:    1773667>, transport.c,  934, Message decrypted
    <t:    1773671>, access.c,  246, RX: [aop: 0x00C0]
    <t:    1774446>, net_packet.c,  230, Unencrypted data: : C51E60F7DC92944C0A997FC9EF9AFF507FAE
    <t:    1774454>, transport.c,  934, Message decrypted
    <t:    1774457>, access.c,  246, RX: [aop: 0x00C0]
    <t:    1776676>, net_packet.c,  230, Unencrypted data: : C51E60B12F7637719B5817BF995101639455
    <t:    1776684>, transport.c,  934, Message decrypted
    <t:    1776687>, access.c,  246, RX: [aop: 0x00C0]
    <t:    1777588>, net_packet.c,  230, Unencrypted data: : C51E601F09C849EDAE1495D76BB7AA0936DC
    <t:    1777596>, transport.c,  934, Message decrypted
    <t:    1777599>, access.c,  246, RX: [aop: 0x00C0]
    <t:    1778394>, net_packet.c,  230, Unencrypted data: : C51E60B374117D1E4D154091045930567D09
    <t:    1778402>, transport.c,  934, Message decrypted
    <t:    1778405>, access.c,  246, RX: [aop: 0x00C0]
    <t:    1852661>, net_packet.c,  230, Unencrypted data: : C51E60A68964C124FDB04E7C1D7C73
    <t:    1852668>, transport.c,  934, Message decrypted
    <t:    1852671>, access.c,  246, RX: [aop: 0x00C0]
    <t:    2009184>, net_beacon.c,  265, BEACON TX F8:D2:7A:2E
    <error> app: SOFTDEVICE: ASSERTION FAILED

  • Maybe some additional info that helps:

    Sometimes at boot, the SD seems to hang for seconds: In this time, I don't get any advertisements, and FDS gives me write timeouts. It also sometimes ends in the event 7 (NRF_EVT_RADIO_SESSION_IDLE).

    I don't get that if I don't start the mesh.

  • Another thing I just noticed: while I don't have DEBUG defined, the device does not reboot.

    Edit: never mind, this is just the NRF_BREAKPOINT_COND.

  • Tried completely without mesh advertising, but that didn't help.

    Also tried with mesh 3.2.0, that didn't help either.

    Every crash I've seen last days, I always got this event 7 (NRF_EVT_RADIO_SESSION_IDLE).

Reply Children
  • Which priorities are you running in your example (see link)?

  • All mesh functions are called from thread, from the main loop (I'm using the app scheduler).

    Edit: while checking your link, I do notice that I hadn't set NRF_SDH_DISPATCH_MODEL to 1 yet. I will try and see if that helps. Until now, I manually put events that I actually use on the app scheduler. Does this setting matter for the mesh code?

    Edit2: With NRF_SDH_DISPATCH_MODEL 1, I'm still getting the crash.

    The one that's easiest to reproduce is the one on boot, where i get timeouts from FDS, and then this event 7 (NRF_EVT_RADIO_SESSION_IDLE).

    The back trace I have in that case:

    #0  0x0003b012 in app_error_fault_handler (id=1, pc=86552, info=0) at (...)/SDK-15-3/components/libraries/util/app_error_weak.c:100
    #1  0x00023de8 in ?? ()
    Backtrace stopped: previous frame identical to this frame (corrupt stack?)

    (gdb) info registers
    r0             0x0    0
    r1             0x1    1
    r2             0xe000e100    3758153984
    r3             0x80000000    2147483648
    r4             0x10001    65537
    r5             0x0    0
    r6             0x1    1
    r7             0x15218    86552
    r8             0x0    0
    r9             0x20005eac    536895148
    r10            0x20000000    536870912
    r11            0x0    0
    r12            0x0    0
    sp             0x2000fd98    0x2000fd98
    lr             0x3c0b9    245945
    pc             0x3b012    0x3b012 <app_error_fault_handler+110>
    xpsr           0x810f0003    2165243907
    msp            0x2000fd98    536935832
    psp            0x0    0
    primask        0x1    1
    basepri        0x0    0
    faultmask      0x0    0
    control        0x0    0
    fpscr          0x80000010    2147483664

  • Also tried with PERSISTENT_STORAGE 0, but still getting the same crash.

Related