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.