新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Cortex-M3的μC/OS-II任務(wù)調(diào)度硬件指令實(shí)現(xiàn)

Cortex-M3的μC/OS-II任務(wù)調(diào)度硬件指令實(shí)現(xiàn)

作者: 時(shí)間:2011-03-24 來源:網(wǎng)絡(luò) 收藏

1 μC/算法分析
1.1 μC/就緒表的解讀
μC/OS操作系統(tǒng)采用優(yōu)先級至上的原則,讓進(jìn)入就緒態(tài)任務(wù)中優(yōu)先級最高的那個(gè)任務(wù),一進(jìn)入就緒態(tài)就能立即運(yùn)行。μC/OS操作系統(tǒng)了一種巧妙的查表算法,利用這種算法能快速任務(wù)原則。如何從任務(wù)就緒表中,查找優(yōu)先級最高的那個(gè)任務(wù)?歸結(jié)起來:
兩個(gè)變量(OSrdyGrp、OSRdyTb1[])和兩張表(OSMapTb1[]、OSUnMaTb1[])。
μC/OS操作系統(tǒng)可支持64個(gè)任務(wù),每個(gè)任務(wù)被賦予不同的優(yōu)先級——從0級到最低優(yōu)先級OS_LOWEST_PRIO,最末兩個(gè)為操作系統(tǒng)所用,分別為統(tǒng)計(jì)任務(wù)和空閑任務(wù)的優(yōu)先級。μC/任務(wù)就緒表如圖1所示。判斷任務(wù)就緒同樣根據(jù)OSRdyTb1[]和OSRdyGrp兩個(gè)變量來完成:OSR-dyTb1[]按任務(wù)優(yōu)先級分成8組(即每一組8個(gè)任務(wù)優(yōu)先級),當(dāng)任務(wù)處于就緒狀態(tài)時(shí),對應(yīng)的位為1,反之則為0;OSRdyTb1口組中任何一位為1時(shí),對應(yīng)的OSRdyGrp位置1。

本文引用地址:http://m.butianyuan.cn/article/150928.htm

a.jpg


使任務(wù)進(jìn)入就緒狀態(tài)和脫離就緒狀態(tài),都是通過OSRdyTb1[]和OSRdyGrp這兩個(gè)變量來查找OSMapTb1[]表完成的:
①進(jìn)入就緒狀態(tài)。
b.jpg
任務(wù)優(yōu)先級的低3位用于確定任務(wù)在總就緒表OSRdyTb1[]中的位置。緊接著前面的3位用于確定是OSRclyTb1[]數(shù)組的第幾個(gè)元素,兩個(gè)變量都置1。
②脫離就緒狀態(tài)。
c.jpg
代碼將就緒任務(wù)表數(shù)組OSRdyTb1[]中相應(yīng)元素的相應(yīng)位清0,而只有當(dāng)這一組中的所有任務(wù)都為脫離就緒態(tài)時(shí),OSRdyGrp變量才會(huì)為0。


上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉