<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/150928.htm

          a.jpg


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


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();