新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > μCOS-II移植到ARM處理器上的幾個(gè)要點(diǎn)

μCOS-II移植到ARM處理器上的幾個(gè)要點(diǎn)

作者: 時(shí)間:2018-09-14 來(lái)源:網(wǎng)絡(luò) 收藏

本文引用地址:http://m.butianyuan.cn/article/201809/389173.htm

LDR r5, [r4]

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

; 取得高優(yōu)先級(jí)任務(wù)的TCB 地址

LDR r6, addr_OSTCBHighRdy

LDR r6, [r6]

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

; OSTCBCur = OSTCBHighRdy

STR r6, [r4] ; 設(shè)置當(dāng)前新任務(wù)的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();中斷級(jí)的任務(wù)切換函數(shù)

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();中斷服務(wù)函數(shù)

STMDB sp!,{r0-r11,lr}

;interrupt disable(not nessary)

mrs r0, CPSR

orr r0, r0, #0x80 ; 設(shè)置中斷禁止標(biāo)

msr CPSR_cxsf, r0 ;中斷結(jié)束

; 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 就可以正常運(yùn)行在ARM 處理器上了。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: μCOS-II 移植 ARM處理器

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉