新聞中心

        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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 高雄市| 惠东县| 泾川县| 伊川县| 泰宁县| 沁源县| 隆德县| 新乡市| 金沙县| 临城县| 静安区| 陆良县| 留坝县| 黔西| 长乐市| 东至县| 大名县| 漠河县| 吉林省| 彰化县| 绵阳市| 顺昌县| 长垣县| 交口县| 汕头市| 宁陵县| 偏关县| 临武县| 宁德市| 黄平县| 南皮县| 剑川县| 奉新县| 墨脱县| 云浮市| 南江县| 同德县| 大丰市| 景洪市| 华坪县| 南木林县|