嵌入式實時操作系統(tǒng)μC/OS-Ⅱ的移植實例
3.3.2 OSCtxSw()函數
此函數用以實現任務級的切換,實現由低優(yōu)先級任務向高優(yōu)先級任務切換。此函數被任務調度函數OS_Sched()調用,實現任務切換,其代碼如下:
3.3.3 OSIntCtxSw()函數
該函數的作用是在時鐘中斷服務例程中發(fā)現有高優(yōu)先級任務等待的時鐘信號到來時,則在中斷退出后并不返回被中斷任務,而是直接調度就緒的高優(yōu)先級任務執(zhí)行,這樣做能夠盡快地讓高優(yōu)先級的任務得到響應,保證系統(tǒng)的實時性能。
OSIntCtxSw()函數中大部分代碼同OSCtxSw()函數是一樣的,區(qū)別只是,需要保存中斷模式下的堆棧,在切換到用戶模式下運行新任務。
3.3.4 OSTickISR()函數
OSTickISR()是μC/OS-Ⅱ的時鐘節(jié)拍函數,主要實現任務的切換,其代碼如下:
4 測試移植代碼
上述的移植工作是最基本的內容,除此之外,還要加上硬件初始化和相應的配置文件。
為了驗證μC/OS-Ⅱ移植成功,需要測試移植代碼。首先不加任何應用代碼來測試移植好的μC/OS-Ⅱ,也就是說先測試內核自身的運行情況是否良好。
內核運行良好時,通過以下4個步驟測試移植代碼的運行:
(1)確保C編譯器、匯編編譯器和連接器的正常工作;
(2)驗證OSTaskStkInit()和OSStartHighRdy()函數的正確運行;
(3)驗證OSCtxSw()函數;
(4)驗證OSIntCtxSw()和OSTickIsr()函數的正確運行。
若全部能夠正常運行,那就是移植的μC/OS-Ⅱ已經能夠正常的工作了,可以添加應用任務了。
5 結語
嵌入式實時操作系統(tǒng)μC/OS-Ⅱ的使用使得程序的可讀性、可靠性、可擴展性有很大的改善。本文從實際出發(fā),給出源代碼開放嵌入式實時操作系統(tǒng)μC/OS-Ⅱ在微處理器LH79520上的移植方案,移植后的操作系統(tǒng)順利經過測試,運行穩(wěn)定,并達到了實時系統(tǒng)的要求。本文引用地址:http://www.ex-cimer.com/article/149287.htm linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論