中断及pendSV

1. 概述

通过任务及任务切换一节读者已经了解了任务切换的详细过程,其实要实现任务切换的功能前面讲的还远远不够。因为,PSP的操作必须在特权模式下,而用户的程序是工作在线程模式下的。所以,用户要想实现任务的切换功能就必须想办法让CPU工作在特权模式下。要想深入了解嵌入是操作系统的实现原理我可能需要了解的更多。

下面的内容与平台相关性很强,但是其原理都是大同小异。这里讲的内容时基于ARM Cortex-M的处理器讲解的。

2. CPU的操作模式和特权级别

一般一款CPU都会有不同的操作模式和特权级别从而实现操作系统级别和用户级别的区分然后进一步实现操作权限的控制。我们都知道Linux系统各个用户的和root用有不同的操作权限,应用层和内核层也有对硬件操作的不同权限。Linux是如何实现权限控制的?不知道有没有读者提出过类似的问题?其实权限的控制不仅仅是软件层面的实现,在一定层面上硬件也需要支持。

我们以ARM Cortex-M系列的处理器为例,其支持两种处理器的操作模式和两种特权级别。

两种操作模式:

  • handler mode:中断和异常执行的代码处于该模式
  • thread mode:其他代码处于该模式

引入两个模式的本意,是用于区别普通应用程序的代码和异常服务例程的代码——包括中断服务例程的代码。

两种特权级别:

  • 特权级
  • 用户级

这可以提供一种存储器访问的保护机制,使得普通的用户程序代码不能意外地,甚至是恶意地执行涉及到要害的操作。处理器支持两种特权级,这也是一个基本的安全模型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南波儿万

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值