This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

RTX5 PenSV & Systick Question

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.