当前位置:网站首页>中断及pendSV
中断及pendSV
2022-07-31 06:08:00 【南波儿万】
1. 概述
通过任务及任务切换一节读者已经了解了任务切换的详细过程,其实要实现任务切换的功能前面讲的还远远不够。因为,PSP的操作必须在特权模式下,而用户的程序是工作在线程模式下的。所以,用户要想实现任务的切换功能就必须想办法让CPU工作在特权模式下。要想深入了解嵌入是操作系统的实现原理我可能需要了解的更多。
下面的内容与平台相关性很强,但是其原理都是大同小异。这里讲的内容时基于ARM Cortex-M的处理器讲解的。
2. CPU的操作模式和特权级别
一般一款CPU都会有不同的操作模式和特权级别从而实现操作系统级别和用户级别的区分然后进一步实现操作权限的控制。我们都知道Linux系统各个用户的和root用有不同的操作权限,应用层和内核层也有对硬件操作的不同权限。Linux是如何实现权限控制的?不知道有没有读者提出过类似的问题?其实权限的控制不仅仅是软件层面的实现,在一定层面上硬件也需要支持。
我们以ARM Cortex-M系列的处理器为例,其支持两种处理器的操作模式和两种特权级别。
两种操作模式:
- handler mode:中断和异常执行的代码处于该模式
- thread mode:其他代码处于该模式
引入两个模式的本意,是用于区别普通应用程序的代码和异常服务例程的代码——包括中断服务例程的代码。
两种特权级别:
- 特权级
- 用户级
这可以提供一种存储器访问的保护机制,使得普通的用户程序代码不能意外地,甚至是恶意地执行涉及到要害的操作。处理器支持两种特权级,这也是一个基本的安全模型。
边栏推荐
猜你喜欢
随机推荐
从 Google 离职,前Go 语言负责人跳槽小公司
03-SDRAM: Write operation (burst)
2022.07.15_每日一题
Detailed explanation of js prototype
科普 | “大姨太”ETH 和 “小姨太”ETC的爱恨情仇
【Go语言入门教程】Go语言简介
Chapter 17: go back to find the entrance to the specified traverse, "ma bu" or horse stance just look greedy, no back to search traversal, "ma bu" or horse stance just look recursive search NXM board
【解决】npm ERR A complete log of this run can be found in npm ERR
Explain the example + detail the difference between @Resource and @Autowired annotations (the most complete in the entire network)
批量免费文字翻译
文件 - 02 上传文件:上传临时文件到服务器
基于交替迭代法的交直流混合系统潮流计算matlab程序iEEE9节点系统算例
小实战项目之——吃货联盟订餐系统
Exam Questions Previous True Questions Wrong Bills [The Fourth Session] [Provincial Competition] [Group B]
毫米波技术基础
Database Principles Homework 3 — JMU
【解决】mysql本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止
shell之条件语句(test、if、case)
2022.07.15_每日一题
Automatic translation software - batch batch automatic translation software recommendation









