meta data for this page
Differences
This shows you the differences between two versions of the page.
embedded:nordic:sdk5:issues:nrf_queu_race [2025/05/28 06:54] – created niziak | embedded:nordic:sdk5:issues:nrf_queu_race [2025/05/28 06:57] (current) – niziak | ||
---|---|---|---|
Line 2: | Line 2: | ||
When '' | When '' | ||
- | For more see [[ | + | For more see [[critical_sections]]. |
+ | |||
+ | So RADIO IRQ can interrupt main loop code or any other lower level IRQ where NRF's queue is used and also execute code where NRF's queue is used. | ||
+ | Example call stack: | ||
+ | |||
+ | <code c> | ||
+ | |||
+ | #0 nrf_queue_generic_pop ( | ||
+ | p_queue=p_queue@entry=0x75620 < | ||
+ | p_element=p_element@entry=0x2000a094 < | ||
+ | just_peek=just_peek@entry=false) | ||
+ | at ../ | ||
+ | #1 0x000595dc in radio_tx_payload_queue_pop (p_element=0x2000a094 < | ||
+ | at ../ | ||
+ | #2 prepare_to_tx () at ../ | ||
+ | #3 process_tx_queue () at ../ | ||
+ | #4 radio_comm_user_prepare_tx_data (user_data=0x20009ee3 < | ||
+ | at ../ | ||
+ | #6 0x00057c3c in radio_tx_data_prepare () | ||
+ | #8 radio_rx_disable_handle () at ../ | ||
+ | |||
+ | #9 <signal handler called> | ||
+ | |||
+ | #10 0x0005d9e6 in memcpy () | ||
+ | #11 0x00029340 in nrf_queue_push ( | ||
+ | p_queue=p_queue@entry=0x75620 < | ||
+ | p_element=0x2003fea8, | ||
+ | at ../ | ||
+ | #12 0x0005949a in radio_tx_payload_queue_push (p_element=0x2003fea0) | ||
+ | at ../ | ||
+ | #13 radio_comm_user_push (p=p@entry=0x2003fea8) | ||
+ | at ../ | ||
+ | ... | ||
+ | #17 0x0002900e in app_sched_execute () | ||
+ | at ../ | ||
+ | #18 0x00055b58 in scheduler_execute () at ../ | ||
+ | #19 0x000273a8 in main () at src/ | ||
+ | |||
+ | </ | ||
+ | |||