最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

FreeRTOS 調(diào)度鎖,任務(wù)鎖和中斷鎖

2023-07-07 19:13 作者:自閉選手的Z23  | 我要投稿

1?調(diào)度鎖

????調(diào)度鎖就是 RTOS 提供的調(diào)度器開關(guān)函數(shù)

????如果某個(gè)任務(wù)調(diào)用了調(diào)度鎖,處于調(diào)度鎖開和調(diào)度鎖關(guān)之間的代碼在執(zhí)行期間是不會(huì)被高優(yōu)先級(jí)的任務(wù)搶占的,即任務(wù)調(diào)度被禁止。這一點(diǎn)要跟臨界段的作用區(qū)分開,調(diào)度鎖只是禁止了任務(wù)調(diào)度,并沒有關(guān)閉任何中斷,中斷還是正常執(zhí)行的。而臨界段進(jìn)行了開關(guān)中斷操作。

????

2 中斷鎖?

FreeRTOS 沒有專門的中斷鎖函數(shù)

中斷服務(wù)程序臨界段處理函數(shù)就可以實(shí)現(xiàn)同樣效果。


3?任務(wù)鎖

為了防止當(dāng)前任務(wù)的執(zhí)行被其它高優(yōu)先級(jí)的任務(wù)打斷而提供的鎖機(jī)制就是任務(wù)鎖。

FreeRTOS 也沒有專門的任務(wù)鎖函數(shù),但是使用 FreeRTOS 現(xiàn)有的功能有兩種實(shí)現(xiàn)方法:

◆ 通過給調(diào)度器加鎖實(shí)現(xiàn)

????利用 FreeRTOS 的調(diào)度鎖功能給調(diào)度器加鎖的話,將關(guān)閉任務(wù)切換功能。

????另外特別注意,調(diào)度鎖只是禁止了調(diào)度器工作,并沒有關(guān)閉任何中斷。

◆ 通過關(guān)閉任務(wù)切換中斷 PendSV 和系統(tǒng)時(shí)鐘節(jié)拍中斷 Systick

????利用 FreeRTOS 的任務(wù)代碼臨界段處理函數(shù)就可以關(guān)閉 PendSV 中斷和 Systick 中斷。

因?yàn)檫M(jìn)入臨界段前,操作寄存器 basepri 關(guān)閉了所有小于等于宏定義

configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY ????所定義的中斷優(yōu)先級(jí)。


4?FreeRTOS 調(diào)度鎖開啟

使用這個(gè)函數(shù)要注意以下問題:?

1. 調(diào)度鎖函數(shù)只是禁止了任務(wù)調(diào)度,并沒有關(guān)閉任何中斷。?

2. 調(diào)度鎖開啟函數(shù) vTaskSuspendAll 和調(diào)度鎖關(guān)閉函數(shù) xTaskResumeAll 一定要成對(duì)使用。

3. 切不可在調(diào)度鎖開啟函數(shù) vTaskSuspendAll 和調(diào)度鎖關(guān)閉函數(shù) xTaskResumeAll 之間調(diào)用任何會(huì)引起任務(wù)切換的 API,比如 vTaskDelayUntil、vTaskDelay、xQueueSend 等。


5?FreeRTOS 調(diào)度鎖關(guān)閉

◆ 調(diào)度鎖關(guān)閉后,如果需要任務(wù)切換,此函數(shù)返回 pdTRUE,否則返回 pdFALSE。



????taskYIELD()用于請(qǐng)求切換到另一個(gè)任務(wù)。

????但是,如果沒有其他任務(wù)的優(yōu)先級(jí)高于或等于調(diào)用taskYIELD()的任務(wù),則RTOS調(diào)度程序只需選擇調(diào)用taskYILELD()任務(wù)即可再次運(yùn)行。

????如果configUSE_PREEMPTION設(shè)置為1,則RTOS調(diào)度程序?qū)⑹冀K運(yùn)行能夠運(yùn)行的最高優(yōu)先級(jí)任務(wù),因此調(diào)用taskYIELD()不會(huì)導(dǎo)致切換到更高優(yōu)先級(jí)的任務(wù)。

注意:這樣就是說可以切換到同優(yōu)先級(jí)的任務(wù),而FreeRTOS支持同優(yōu)先級(jí)任務(wù),這點(diǎn)需要注意,程序驗(yàn)證是可以切換到同優(yōu)先級(jí)的,










????

FreeRTOS 調(diào)度鎖,任務(wù)鎖和中斷鎖的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
昆山市| 金塔县| 海盐县| 高青县| 深圳市| 武宁县| 和静县| 胶南市| 陈巴尔虎旗| 庄河市| 康平县| 辽中县| 阜宁县| 若尔盖县| 孟村| 宣城市| 万源市| 清原| 沅陵县| 桐梓县| 吉首市| 广东省| 吴江市| 平谷区| 丰县| 阿勒泰市| 旺苍县| 平果县| 惠安县| 吉木乃县| 奇台县| 林州市| 河北省| 玛纳斯县| 汉源县| 夹江县| 沙坪坝区| 陇南市| 庆元县| 章丘市| 琼中|