How to determine current context type – interrupt or task
Hello,
Searched a little but didn’t found answer.
Is there some function or other method in FreeRTOS that allows to determine if program is currently in interrupt or process context?
I want to implement a function that will use xQueueSend. But that function might be called both from process or interrupt and I would like to avoid creating another version of that function which will use xQueueSendFromISR.
Best Regards,
Michal
How to determine current context type – interrupt or task
Which port are you using?
Regards.
How to determine current context type – interrupt or task
I am using LPC4330 MCU and base on examples from lpcopen.
Best Regards,
Michal
How to determine current context type – interrupt or task
In which case I think you can ask the hardware for the context as follows:
if( ( portNVIC_INT_CTRL_REG & 0x1F ) == 0 ) { /* Not in an interrupt. */ } else { /* In an interrupt. */ }(portNVICINTCTRL_REG is already defined, assuming you are using GCC as you mention lpcopen). Regards.
How to determine current context type – interrupt or task
Thanks for fast reply. Will try this.