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/ | ||
| + | |||
| + | </ | ||
| + | |||