自己动手从0到1学写RTOS学习指南

  1. 主页
  2. 自己动手从0到1学写RTOS学习指南
  3. 第3章 内核核心实现
  4. 临界区保护

临界区保护

内容纲要

Hi,恭喜顺利进入该章节!

如果说前面只是通过简单的两个任务来演示RTOS的核心工作过程;那么从这节课就开始,我们就开始设计功能完善的RTOS。请注意,在接下来的课时中,需要你具备良好的数据结构知识。如果不具备,也不用太担心,因为课程中会介绍,但是要求你付出比较多的时间和精力。

主要内容

本课程中引入了临界区的概述,然后针对临界区提出了开/关中断地保护方法。

之所以要引入,是因为内核很多代码和数据可以直接被任意任务共享,为了避免读写冲突,所以要借助这种方法加以隔离。这种方法是最简单但有效的方法。也许你还有其它的方法。

重点难点

注意事项

在同学问到:在进入临界区后,如果有调用tTaskSwitch()/tTaskSched()会不会立即任务切换;如果不立即切换,是不是这次切换就丢失了?

实际上,在tTaskSwitch()只是设置了PendSVC挂起。如果当前中断被关闭,这个挂起请求不会丢失,其会在中断开启时立即响应。所以,不存在上述所说的问题。

应用实例

常见问题

这篇文章对您有用吗?

我们要如何帮助您?

发表评论

电子邮件地址不会被公开。 必填项已用*标注