We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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.