从0到1写RT-Thread内核——临界段的保护
生活随笔
收集整理的這篇文章主要介紹了
从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物聯網操作系統的人可以考慮一下。
總結
以上是生活随笔為你收集整理的从0到1写RT-Thread内核——临界段的保护的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: crontab 每3个小时运行一次
- 下一篇: 从0到1写RT-Thread内核——空闲