MPSL ASSERT: 2, 62

Hello,
I am running BT together with MPSL timeslot. When timeslot ends and RADIO and TIMER10 are cleaned up and a new timeslot is requested I get following HARD FAULT:

[00:00:05.087,909] <err> mpsl_init: MPSL ASSERT: 2, 62
[00:00:05.088,079] <err> os: ***** HARD FAULT *****
[00:00:05.088,217] <err> os:   Fault escalation (see below)
[00:00:05.088,365] <err> os: ARCH_EXCEPT with reason 3

[00:00:05.088,525] <err> os: r0/a1:  0x00000003  r1/a2:  0x200046df  r2/a3:  0x00000000
[00:00:05.088,736] <err> os: r3/a4:  0x00000003 r12/ip:  0x0000177e r14/lr:  0x0001e633
[00:00:05.088,941] <err> os:  xpsr:  0x0900009a
[00:00:05.089,102] <err> os: s[ 0]:  0x00000000  s[ 1]:  0x00000000  s[ 2]:  0x0002cdcd  s[ 3]:  0x20005cbc
[00:00:05.089,379] <err> os: s[ 4]:  0x0000003e  s[ 5]:  0x000133d9  s[ 6]:  0x00000000  s[ 7]:  0x0000e5a5
[00:00:05.089,652] <err> os: s[ 8]:  0x00000002  s[ 9]:  0x00000032  s[10]:  0x200017b0  s[11]:  0x00000020
[00:00:05.089,928] <err> os: s[12]:  0x200027d0  s[13]:  0x0000d1a1  s[14]:  0x200027d0  s[15]:  0x00026079
[00:00:05.090,202] <err> os: fpscr:  0x20005ce0
[00:00:05.090,352] <err> os: Faulting instruction address (r15/pc): 0x00019da0
[00:00:05.090,536] <err> os: >>> ZEPHYR FATAL ERROR 3: Kernel oops on CPU 0
[00:00:05.090,718] <err> os: Fault during interrupt handling

[00:00:05.090,870] <err> os: Current thread: 0x20002a10 (unknown)
[00:00:05.091,040] <err> os: Halting system

What could be the reason of this hardfault and/or what could it mean?

  • Hello,

    The assert 2, 62 is that Radio interrupt happened when mpsl didnt expect it, likely because ESB didn't disable interrupts and shut down NRF_RADIO (TASKS_DISABLE) compleltly before ending its timeslot, or that ESB accessed NRF_RADIO after it had ended its timeslot. Do you have any indication that this is occurring in your firmware?

    Kind regards,
    Andreas

Related