• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > Cortex-M3的μC/OS-II任務調度硬件指令實現

    Cortex-M3的μC/OS-II任務調度硬件指令實現

    作者: 時間:2011-03-24 來源:網絡 收藏

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

    本文引用地址:http://www.czjhyjcfj.com/article/150928.htm

    a.jpg


    使任務進入就緒狀態和脫離就緒狀態,都是通過OSRdyTb1[]和OSRdyGrp這兩個變量來查找OSMapTb1[]表完成的:
    ①進入就緒狀態。
    b.jpg
    任務優先級的低3位用于確定任務在總就緒表OSRdyTb1[]中的位置。緊接著前面的3位用于確定是OSRclyTb1[]數組的第幾個元素,兩個變量都置1。
    ②脫離就緒狀態。
    c.jpg
    代碼將就緒任務表數組OSRdyTb1[]中相應元素的相應位清0,而只有當這一組中的所有任務都為脫離就緒態時,OSRdyGrp變量才會為0。


    上一頁 1 2 3 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 报价| 买车| 铁岭县| 泸水县| 黔西| 湖口县| 卓尼县| 乐都县| 南郑县| 高青县| 龙海市| 大英县| 上饶县| 登封市| 裕民县| 四会市| 玉环县| 浑源县| 宜城市| 长丰县| 衡阳县| 宜良县| 汉源县| 兴义市| 普安县| 全州县| 碌曲县| 赤水市| 金沙县| 修武县| 泰和县| 贡山| 岑溪市| 司法| 兰溪市| 读书| 报价| 顺义区| 老河口市| 广东省| 嘉祥县|