无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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)遵守國家法律
精河县| 阳新县| 北宁市| 象州县| 蒙自县| 札达县| 咸阳市| 西昌市| 崇州市| 德格县| 田阳县| 唐河县| 西平县| 宿松县| 安宁市| 陈巴尔虎旗| 焦作市| 苏州市| 宣恩县| 治多县| 华蓥市| 荆门市| 宾川县| 江门市| 顺义区| 盈江县| 武宣县| 宿松县| 蒙自县| 柏乡县| 利津县| 南宁市| 沽源县| 开远市| 泗水县| 平果县| 成都市| 金山区| 秀山| 西畴县| 宜丰县|