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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 嵌入式實時操作系統(tǒng)μC/OS-Ⅱ的移植實例

          嵌入式實時操作系統(tǒng)μC/OS-Ⅱ的移植實例

          作者: 時間:2012-04-05 來源:網絡 收藏

          3.3.2 OSCtxSw()函數
          此函數用以實現任務級的切換,實現由低優(yōu)先級任務向高優(yōu)先級任務切換。此函數被任務調度函數OS_Sched()調用,實現任務切換,其代碼如下:
          i.JPG
          3.3.3 OSIntCtxSw()函數
          該函數的作用是在時鐘中斷服務例程中發(fā)現有高優(yōu)先級任務等待的時鐘信號到來時,則在中斷退出后并不返回被中斷任務,而是直接調度就緒的高優(yōu)先級任務執(zhí)行,這樣做能夠盡快地讓高優(yōu)先級的任務得到響應,保證系統(tǒng)的性能。
          OSIntCtxSw()函數中大部分代碼同OSCtxSw()函數是一樣的,區(qū)別只是,需要保存中斷模式下的堆棧,在切換到用戶模式下運行新任務。
          3.3.4 OSTickISR()函數
          OSTickISR()是μC/Ⅱ的時鐘節(jié)拍函數,主要實現任務的切換,其代碼如下:
          j.JPG
          k.JPG

          4 測試代碼
          上述的工作是最基本的內容,除此之外,還要加上硬件初始化和相應的配置文件。
          為了驗證μC/成功,需要測試移植代碼。首先不加任何應用代碼來測試移植好的μC/Ⅱ,也就是說先測試內核自身的運行情況是否良好。
          內核運行良好時,通過以下4個步驟測試移植代碼的運行:
          (1)確保C編譯器、匯編編譯器和連接器的正常工作;
          (2)驗證OSTaskStkInit()和OSStartHighRdy()函數的正確運行;
          (3)驗證OSCtxSw()函數;
          (4)驗證OSIntCtxSw()和OSTickIsr()函數的正確運行。
          若全部能夠正常運行,那就是移植的μC/OS-Ⅱ已經能夠正常的工作了,可以添加應用任務了。

          5 結語
          μC/OS-Ⅱ的使用使得程序的可讀性、可靠性、可擴展性有很大的改善。本文從實際出發(fā),給出源代碼開放μC/OS-Ⅱ在微處理器LH79520上的移植方案,移植后的順利經過測試,運行穩(wěn)定,并達到了實時系統(tǒng)的要求。

          本文引用地址:http://www.ex-cimer.com/article/149287.htm
          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 3 4 下一頁

          評論


          相關推薦

          技術專區(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); })();