Hello,
Besides an RTX task polling, is there any glue that interconnects an FIQ with an RTX task?
Details below and thank you for your help, Lonnie
Details I have a peripheral driver (ARM Cortex) that is asynchronous and triggers an FIQ when it receives data. The FIQ analyzes the data (checks to see if it had received the correct closing sequence). Now, somehow I need to inform an RTX task that the complete set of data has been received.
Since FIQ cannot call RTX functions, how can I inform the task that there is data ready? I can only think of polling.
Unless, there is some way to mate an RTX software interrupt to the peripheral?
Oops, you corrected yourself already. But my second comment stands: why not IRQ?
What about:
1 - FIQ does it's processing and detects 'completion' 2 - On completion, FIQ triggers a software generated IRQ 3 - IRQ does nothing except call isr_evt_set
I'm not familiar with your processor, but I have done this very same sequence successfully on an STR9.
There is no FIQ in Cortex-M, so there is no such problem. The core peripheral NVIC is used to generate exceptions. It is safe to use isr_xxx functions from the exception handlers.
Thank you for all the responses!! (Sorry for the long wait - I have been on vacation)
Good news, the problem is fixed.
With all the comments, I focused on the code again and realized the functionality I was performing inside the interrupt was causing the problem. Not the isr function call from the IRQ.
Thanks again for all your help!!