新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式實時操作系統(tǒng)μCOS-Ⅱ的移植

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

        作者: 時間:2009-03-18 來源:網(wǎng)絡(luò) 收藏

        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)中斷級任務(wù)切換函數(shù)OSIntCtxSw() 該函數(shù)在ISR中執(zhí)行任務(wù)的切換功能。由于是在中斷中執(zhí)行的,處理器的大部分寄存器值都已經(jīng)自動保存在堆棧中了,所以該函數(shù)的大部分代碼都和OSCtxSw()相同,只是前半部分保存寄存器的功能不要了。

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

        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、結(jié)論

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

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

        上一頁 1 2 3 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 瓮安县| 延寿县| 罗山县| 集安市| 静宁县| 买车| 乌鲁木齐市| 沅陵县| 苍梧县| 龙陵县| 湖南省| 城固县| 平度市| 通河县| 林周县| 宜都市| 唐海县| 子洲县| 襄城县| 威宁| 宜阳县| 岗巴县| 九江市| 重庆市| 凤城市| 京山县| 洪雅县| 斗六市| 佳木斯市| 三江| 栾城县| 文水县| 南安市| 嘉禾县| 团风县| 安陆市| 乌拉特中旗| 陵川县| 新营市| 新干县| 云林县|