Cygnal: RETI from non-ISR ok?
Hi guys,
The Cygnal port contains a RETI instruction at the end of the "portRESTORE_CONTEXT()" macro. This is great if you are executing the real-time tick ISR when you call "portRESTORE_CONTEXT()", but what if you are not in an ISR? This would be the case any time you call "taskYIELD()". I suppose the Cygnal part does not care if you RETI from non-ISR code, but is that documented? I cannot find it anywhere. The effect on the stack for both RET and RETI is the same, but RETI also effects the interrupt control logic.
Is RETI safe for non-ISR use or do we need a separate version of "portRESTORE_CONTEXT()"?
Thanks in advance.
Cygnal: RETI from non-ISR ok?
The Yield normally sets up the system to look just like an interrupt has occurred, so the same code can be used from both.