从0到1写RT-Thread内核——临界段的保护

        临界段就是一段在执行的时候不能被中断的代码段,在RT-Thread里,临界段最常出现的就是对全局变量的操作(类似Linux下的锁)。RT-Thread对临界段的保护是直接把中断全部关了,NMI FAULT和硬FAULT除外。下图是3个关于中断屏蔽的寄存器,这里我们使用到的是PRIMASK寄存器。

       下面是关于临界段屏蔽的例子 ,分别在开中断和关中断函数里添加MRS  r0, PRIMASK和MSR  PRIMASK, r0的作用是使这套开关中断的函数能够用于临界段嵌套的情况下。

       最后声明一下,我这里只是对学习的知识点进行总结,本文章的大多数知识来自于野火公司出版的《RT-Thread 内核实现与应用开发实战—基于STM32》,这本书非常不错,有志学习RT-Thread物联网操作系统的人可以考虑一下。

发布了42 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_37659294/article/details/100565466