Hello, I created a sample project to test RTOS2->RTX5 on STM32L433 with HAL libraries. I removed the cube created Systick,PendSV and SVcall handlers.Created 2 tasks with blinking leds and everything working fine but than i realized PendSV interrupt never called.In Freertos pendsv is used for context switching but on RTX5 seems like SVcall triggers the context switch.( I examined it on Trace Exceptions window). Do i missing something? My interrupt priorities are PendSV and Systick 15 , Svcall 14 as mentioned on link below.
www.keil.com/.../cre_rtx_proj.html It Says SysTick lowest Kernel system timer interrupt to generate periodic timer ticks PendSV lowest PendSV (request for system-level service) when calling certain RTX functions from Handler mode SVC lowest+1 Supervisor Call used to enter the RTOS kernel from Thread mode
Notes above are somewhat not clear for me. I will be appreciated if can someone explain the usage of PendSV and SVC usage on RTX5. Also why RTX5 kernel creates a high priorty timer task by itself?
RTX5 system exception usage: - SysTick is used to periodically call the scheduler (time-based processing) - SVC is used for RTX function calls from threads - PendSV is used for deferred context switch after calling RTX function from an interrupt
All three mentioned exceptions can execute a context switch when necessary.
Timer thread is only created when Timer functionally is enabled. This thread is used to execute timer callback functions when a timer expires.