久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式實時操作系統μCOS-Ⅱ的移植

嵌入式實時操作系統μCOS-Ⅱ的移植

作者: 時間:2009-03-18 來源:網絡 收藏

asm psha
asm pshh
asm tsx
asm pshx
asm pshh
asm ldhx OSTCBCur
asm pula
asm sta 0, x
asm pula
asm sta 1, x
OSTaskSwHook();
asm lda OSPrioHighRdy
asm sta OSPrioCur
asm ldhx OSTCBHighRdy
asm sthx OSTCBCur
asm ldhx 0, x
asm txs
asm pulh
asm pula
asm sta PAGE
asm rti

  (3)中斷級任務切換函數OSIntCtxSw() 該函數在ISR中執行任務的切換功能。由于是在中斷中執行的,處理器的大部分寄存器值都已經自動保存在堆棧中了,所以該函數的大部分代碼都和OSCtxSw()相同,只是前半部分保存寄存器的功能不要了。

  (4)OSTickISR()時鐘節拍服務函數μⅡ要求用戶提供一個周期性的時鐘源,來實現時間的定時和超時功能。這部分功能由該函數實現。這個函數首先保存寄存器的值,然后設置中斷標志、清中斷,再調用OSTimeTick()遞減延時計數,判斷是否要在中斷中切換任務,最后恢復處理器寄存器,執行中斷返回指令,返回到中斷處繼續執行。代碼如下:

SRTISC_RTIACK = 1;
asm lda PAGE
asm psha
asm pshh
asm lda OSIntNesting
asm add #1
asm sta OSIntNesting
asm cmp #1
asm bne Tmr_TickISR1
asm tsx
asm pshx
asm pshh
asm ldhx OSTCBCur
asm pula
asm sta 0, x
asm pula
asm sta 1, x
asm Tmr_TickISR1:
OSTimeTick();
OSIntExit();
asm pulh
asm pula
asm sta PAGE
asm rti

5、結論

  本文將μ到8位系列單片機上,并且在MC9S08AW60上穩定的運行,有效提高了該系統的性能,充分利用系統資源,使系統的性能得到很大的提高,開闊了應用范圍。同時,作者也將該系統在HCS08的另外兩款單片機MC9S08QE128和MC9S08GB60上實現。

linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

上一頁 1 2 3 下一頁

評論


相關推薦

技術專區

關閉