做网站售后几年,运城环保局网站王建设,wordpress 网络公司,深圳市交易服务中心一、Cortex-M系列双指针
Cortex-M系列的MSP与PSP有一些重要的区别#xff0c;双指针是为了保证OS的安全性和稳健性。本质上#xff0c;区别于用户程序使用PSP#xff0c;操作系统和异常事件单独使用一个MSP指针的目的#xff0c;是为了保证栈数据不会被用户程序意外访问或…一、Cortex-M系列双指针
Cortex-M系列的MSP与PSP有一些重要的区别双指针是为了保证OS的安全性和稳健性。本质上区别于用户程序使用PSP操作系统和异常事件单独使用一个MSP指针的目的是为了保证栈数据不会被用户程序意外访问或栈空间被用户程序占用 MSP主堆栈指针通常用于操作系统和异常事件中断或其他fault。在复位后Cortex-M默认进入线程模式、特权级、使用MSP堆栈³。裸机操作时使用的就是MSP指针。 PSP进程堆栈指针通常用于用户程序线程。在OS初始化时对PSP进行初始化。
二、SVC和PendSV异常
SVC系统服务调用亦简称系统调用和PendSV可悬起系统调用它们多用于在操作系统之上的软件开发中。 SVC系统服务调用用于产生系统函数的调用请求。操作系统不让用户程序直接访问硬件而是通过提供一些系统服务函数用户程序使用SVC 发出对系统服务函数的呼叫请求以这种方法调用它们来间接访问硬件。 优点如下 ①.SVC使用户程序从控制硬件的繁文缛节中解脱出来而是由操作系统负责控制具体的硬件 ②.操作系统的代码可以经过充分的测试从而能使系统更加健壮和可靠 ③.SVC使用户程序无需在特权级下执行用户程序无需承担因误操作而瘫痪整个系统的风险 ④.通过SVC 的机制还让用户程序变得与硬件无关因此在开发应用程序时无需了解硬件的操作细节从而简化了开发的难度和繁琐度并且使应用程序跨硬件平台移植成为可能。 PendSV可悬挂起系统调用可以像普通的中断一样被抢占挂起的。操作系统可以利用它“缓期执行”一个异常——直到其它重要的任务完成后才执行动作。