Timeslot API: Can application code be executed between signal handler and Softdevice event handler?

After ending a timeslot by returning NRF_RADIO_SIGNAL_CALLBACK_ACTION_END from the radio timeslot signal callback, the SD_EVT_IRQHandler() will be invoked, in which I will retrieve the SOC-Event NRF_EVT_RADIO_SESSION_IDLE via sd_evt_get().

Is there any possibility, that other application code (i.e. code with priority THREAD or at least priority level lower than the priority level used for the SD_EVT_IRQn) gets executed between returning from the radio signal callback and invocation of the SD_EVT_IRQHandler()?

I would expect that in the time between returning from the radio signal callback and the softdevice invoking the SD_EVT_IRQHandler(), the softdevice has control and no application code is executed, but I want to make sure.The almost two milliseconds it seems to take between these two events seem rather long... If my assumption is wrong, I would have to account for "stuff" happening in the application between execution of these two handlers.

The question concerns S113 7.2.0 and S140 7.2.0.

Parents
  • Hello,

    Unfortunately, the feedback I got from the Softdevice team after discussing your case with them was that program execution could not be guaranteed to remain in the Softdevice during this period, even if you had no high priority application interrupts to pre-empt the Softdevice. Thus, their advice was, as you already suggested, to not rely on your application being blocked during this 2 ms period. 

    Best regards,

    Vidar

Reply
  • Hello,

    Unfortunately, the feedback I got from the Softdevice team after discussing your case with them was that program execution could not be guaranteed to remain in the Softdevice during this period, even if you had no high priority application interrupts to pre-empt the Softdevice. Thus, their advice was, as you already suggested, to not rely on your application being blocked during this 2 ms period. 

    Best regards,

    Vidar

Children
Related