当前位置:网站首页>中断及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:其他代码处于该模式
引入两个模式的本意,是用于区别普通应用程序的代码和异常服务例程的代码——包括中断服务例程的代码。
两种特权级别:
- 特权级
- 用户级
这可以提供一种存储器访问的保护机制,使得普通的用户程序代码不能意外地,甚至是恶意地执行涉及到要害的操作。处理器支持两种特权级,这也是一个基本的安全模型。
边栏推荐
- 基于LSTM的诗词生成
- 文件 - 02 上传文件:上传临时文件到服务器
- Zotero | Zotero translator plugin update | Solve the problem that Baidu academic literature cannot be obtained
- Gradle remove dependency demo
- 完美指南|如何使用 ODBC 进行无代理 Oracle 数据库监控?
- [PSQL] SQL基础教程读书笔记(Chapter1-4)
- Analysis of pseudo-classes and pseudo-elements
- 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
- Postgresql source code learning (33) - transaction log ⑨ - see the overall process of log writing from the insert record
- 【云原生】3.3 Kubernetes 中间件部署实战
猜你喜欢
随机推荐
解决安装 Bun 之后出现 zsh compinit: insecure directories, run compaudit for list. Ignore insecure directorie
【微服务】(十六)—— 分布式事务Seata
【编程题】【Scratch三级】2022.03 冬天下雪了
2022.07.24_每日一题
【Star项目】小帽飞机大战(七)
【Go】Go 语言切片(Slice)
Third-party library-store
数据库概论 - MySQL的简单介绍
搭建zabbix监控及邮件报警(超详细教学)
文件 - 04 下载文件: 根据文件下载链接下载文件
360推送-360推送工具-360批量推送工具
批量翻译软件免费【2022最新版】
自动翻译软件-批量批量自动翻译软件推荐
MySQL的触发器
事务的传播机制
DirectExchange交换机简单入门demo
leetcode 406. Queue Reconstruction by Height 根据身高重建队列(中等)
03-SDRAM:写操作(突发)
Project exercise - memorandum (add, delete, modify, check)
SCI写作指南