SVC(SupervisorCall)和PendSV(PendableServiceCall)是针对软件和操作系统的两个异常。1SVCSVC用于生成系统函数调用,例如,用户程序不允许直接访问硬件,操作系统可以通过SVC提供对硬件的访问。因此,当用户程序想要使用某些硬件时,可以使用SVC指令,然后执行操作系统中的软件异常处理程序,并提供用户应用程序请求的服务。通过这种方式,对硬件的访问由操作系统控制,操作系统可以阻止用户应用程序直接访问硬件,从而提供更可靠的系统。SVC还可以使软件更具可移植性,因为用户程序不需要知道硬件的编程细节。用户程序只需要知道应用程序编程接口(API)函数ID和参数,而实
文章目录🔴🟡🟢其他文章链接,独家吐血整理1、Systick滴答定时器2、SVC中断3、PendSV中断4、❤Systick、SVC、PendSV小结5、时间片调度6、🧡韦东山FreeRTOS部分7、💛其它博主文章链接【转载】1、FreeRTOS任务切换——PendSV2、RTOS系列文章(2):PendSV功能,为什么需要PendSV3、有了Systick中断为什么还要PendSV中断?(==此文章有问题,仅作为参考==)4、【FreeRTOS】FreeRTOS源码学习笔记(5)任务调度器+vTaskStartScheduler、xPortPendSVHandler、xPortSysTickH
背景大多数嵌入式RTOS在Cortex-M3/M4上的移植都需要PendSV,比如uCOS、RT-Thread、FreeRTOS等,本文就对PendSV的功能作用,以及为什么需要PendSV进行详细的分析。PendSV是什么?我们先引用《Cortex-M3权威指南》对PendSV的介绍:PendSV(可悬起的系统调用),它是一种CPU系统级别的异常,它可以像普通外设中断一样被悬起,而不会像SVC服务那样,因为没有及时响应处理,而触发Fault。个人理解PendSV的英文全称应该是:PendSystemServiceCall,简称PendSV.所以PendSV的最大特点就是,它是系统级别的异常,