新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > μCOS-II移植到ARM處理器上的幾個要點

        μCOS-II移植到ARM處理器上的幾個要點

        作者: 時間:2018-09-14 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/201809/389173.htm

        LDR r5, [r4]

        STR sp, [r5] ; 保存棧指針在占先任務的TCB 上

        ; 取得高優先級任務的TCB 地址

        LDR r6, addr_OSTCBHighRdy

        LDR r6, [r6]

        LDR sp, [r6] ;得到新任務的堆棧指針

        ; OSTCBCur = OSTCBHighRdy

        STR r6, [r4] ; 設置當前新任務的TCB 地址set new current task TCB

        address

        LDMFD sp!, {r4}

        MSR SPSR_cxsf, r4

        LDMFD sp!, {r4}

        MSR CPSR_cxsf, r4

        LDMFD sp!, {r0-r12, lr, pc}

        (3)OSIntCtxSw();中斷級的任務切換函數

        LDMIA sp!,{a1-v1, lr}

        SUBS pc, lr, #4

        SUB lr, lr, #4

        MOV r12, lr

        MRS lr, SPSR

        AND lr, lr, #0xFFFFFFE0

        ORR lr, lr, #0xD3

        MSR CPSR_cxsf, lr

        (4)OSTickISR();中斷服務函數

        STMDB sp!,{r0-r11,lr}

        ;interrupt disable(not nessary)

        mrs r0, CPSR

        orr r0, r0, #0x80 ; 設置中斷禁止標

        msr CPSR_cxsf, r0 ;中斷結束

        ; rI_ISPC= BIT_TIMER0;

        LDR r0, =I_ISPC

        LDR r1, =BIT_TIMER0

        STR r1, [r0]

        BL IrqStart

        BL OSTimeTick

        BL IrqFinish

        LDR r0, =need_to_swap_context

        LDR r2, [r0]

        CMP r2, #1

        LDREQ pc, =_CON_SW

        完成了上述工作以后,μCOS-II 就可以正常運行在ARM 處理器上了。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 江油市| 花莲市| 游戏| 闵行区| 临沂市| 秦安县| 山东省| 镇平县| 麟游县| 玉溪市| 德保县| 姜堰市| 山西省| 叙永县| 潍坊市| 桓仁| 自治县| 平湖市| 南部县| 镇赉县| 当雄县| 内丘县| 梁山县| 榕江县| 保定市| 新河县| 苍南县| 长葛市| 轮台县| 龙胜| 永和县| 冀州市| 张北县| 九龙城区| 杭锦旗| 泾阳县| 广元市| 威海市| 罗城| 永兴县| 海林市|