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.
Display All
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
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.
Source 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();
- }
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