目录
临界区保护
主要内容
本课程中引入了临界区的概述,然后针对临界区提出了开/关中断地保护方法。
之所以要引入,是因为内核很多代码和数据可以直接被任意任务共享,为了避免读写冲突,所以要借助这种方法加以隔离。这种方法是最简单但有效的方法。也许你还有其它的方法。
重点难点
注意事项
在同学问到:在进入临界区后,如果有调用tTaskSwitch()/tTaskSched()会不会立即任务切换;如果不立即切换,是不是这次切换就丢失了?
实际上,在tTaskSwitch()只是设置了PendSVC挂起。如果当前中断被关闭,这个挂起请求不会丢失,其会在中断开启时立即响应。所以,不存在上述所说的问题。
应用实例