Both PendSV and SVCall are called from the software - SVCall by calling svc instruction, PendSV by setting particural register of Cortex-M. PendSV is intended for context switching and SVCall is intended to access OS kernel functions and device drivers.
- What determines that PendSV is used for context switching? Why doesn't SVCall do it? As far as I know it is possible to configure the priority of SVCall to the low value.
- What are the device drivers, that we cannot acces beyond the SVCall, in the Thread mode in spite of handler? Does it also apply to FreeRTOS? I've never used SVC in order to interact with hardware.
- PendSV stands for Pendable Service and SVCall stands for Supervisor Call, why they are name like that? What is the origin?
I would like to know something more than "PendSV is used for context switching and SVCall is used for enabling the scheduler". I couldn't find more informations.
Cheers