Hello Everyone,
I'm having a strange issue with a new implementation with embOS 4.26, STM32L4 uc and GCC 8.0-2019q3. The problem is with the OS_TICK_Handle function that is causing OS_ERR_ILLEGAL_OUT ISR error as soon as it is called. SysTick_Handler function is directly called from the isr vector and is the hardware systick timer.
Code
//! Handler for SystemTick interrupt.
/*!
* This is the code that gets called when the processor receives a
* _SysTick exception. SysTick is used as OS timer tick.
*/
void SysTick_Handler(void) {
OS_EnterNestableInterrupt();
OS_TICK_Handle();
#if OS_USE_JLINKMEM
JLINKMEM_Process();
#endif
OS_LeaveNestableInterrupt();
}
Display More
The same code above is working fine in other projects.
The workaround I found is to call the SysTick_Handler function from "OS_CallNestableISR" and now I'm wondering how it could have worked in the previous projects and why my usual implementation is not working.
Thanks