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

app_error_weak.c, 108, Mesh assert at 0x000 (line 214 of timer_scheduler.c (NRF_MESH_ASSERT_DEBUG(bearer_event_in_correct_irq_priority());))

Hi every one, I am running light switch example  (using SDK 15.2 and SDK for Mesh version 3.1.0) with some modifies in Server Node* (node with has LIGHT), this node have 2 module Client module and Server module, the Server module (in Server Node) receive data from another Client Node (Node has switch), and then use Client module (in Server Node*) to send the state it receive to another Server Node that subscribe to it (The Server Node*) by call generic_onoff_client_set() API. It can send data OK when I call out of the loop in main (such as send in a button interupt).

      When I add a function to read RFID card using UART in the loop in main() (of the Server Node), then call generic_onoff_client_set() (of The client module of this Server Node*) in the same loop the error happen like this:
app_error_weak.c, 108, Mesh assert at 0x0002B5B2 (:0) when I trace this error using addr2line I find the error is at line 214 of timer_scheduler.c (NRF_MESH_ASSERT_DEBUG(bearer_event_in_correct_irq_priority())). I have refernce to this guide devzone.nordicsemi.com/.../beaconing-while-running-the-mesh-stack and devzone.nordicsemi.com/.../206895
but after change to NRF_MESH_IRQ_PRIORITY_THREAD then the provisioner cannot Scan this Node anymore.

My function call generic_onoff_client_set() is tqt_send_state_to_provisioner() like this:

and when I call like this It can run: 

But when I add UART and call is run to the error:

this read_RFID_data() will call tqt_send_state_to_provisioner() to call generic_onoff_client_set() then the error happen.

Can someone please help me.

Thank you!

Related