日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FreeRTOS的中断优先级配置小结

發布時間:2025/3/21 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FreeRTOS的中断优先级配置小结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

NVIC 的全稱是 Nested vectored interrupt controller,即嵌套向量中斷控制器。對于 M3 和 M4 內核的 MCU,每個中斷的優先級都是用寄存器中的 8 位來設置的。 8 位的話就可以

設置 2^8 = 256 級中斷,實際中用不了這么多,所以芯片廠商根據自己生產的芯片做出了調整。比如 ST的 STM32F1xx 和 F4xx 只使用了這個 8 位中的高四位[7:4],低四位取零,這樣 2^4=16,只能表示16級中斷嵌套。NXP的SAMV71(Cotex-M7)只是用了高三位,那么可用的優先級8個,即0~7。

?

搶占式優先級支持嵌套,子優先級不支持嵌套。

?

對于SAME70(Cotex-M7)只使用高3位,可用優先級就是8個,分別是0~7。

FreeRTOS操作系統使用了4~7的優先級,對于0~3的中斷,不受FreeRTOS中斷管理,即FreeRTOS的中斷屏蔽只對4~7優先級的中斷有作用,相應也就有中斷延遲,因為操作系統會有開關中斷進行臨界保護。而0~3優先級的中斷就沒有中斷延遲,可正常使用但是中斷里不可以調用FreeRTOS的API接口。4~7的可以調用但是需要是帶fromISR的API。對于中斷優先級是4的實際對處理器來說就是128(即4<<(8-3))。

?

中斷延遲時間是衡量 RTOS 實時操作系統的一項重要指標,那什么又是中斷延遲呢?從中斷觸發到執行中斷服務程序的第一條指令這段時間就是中斷延遲時間。FreeRTOS 內核源碼中有多處開關全局中斷的地方,這些開關全局中斷會加大中斷延遲時間。比如在源碼的某個地方關閉了全局中斷,但是此時有外部中斷觸發,這個中斷的服務程序就需要等到再次開啟全局中斷后才可以得到執行。開關中斷之間的時間越長,中斷延遲時間就越大,這樣極其影響系統的實時性。如果這是一個緊急的中斷事件,得不到及時執行的話,后果是可想而知的。針對這種情況,FreeRTOS 就專門做了一種新的開關中斷實現機制。關閉中斷時僅關閉受FreeRTOS管理的中斷,不受 FreeRTOS 管理的中斷不關閉,這些不受管理的中斷都是高優先級的中斷,用戶可以在這些中斷里面加入需要實時響應的程序。?FreeRTOS 能夠實現這種功能的奧秘就在于 FreeRTOS 開關中斷使用的是寄存器 basepri,而像 uCOS 這種使用的是 primask,詳情請看下面整理的表格:?

參考文章:

http://www.cnblogs.com/yangguang-it/p/7152549.html

總結

以上是生活随笔為你收集整理的FreeRTOS的中断优先级配置小结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。