新聞中心

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

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

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

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

LDR r5, [r4]

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

; 取得高優(yōu)先級任務的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 下一頁

評論


相關推薦

技術專區(qū)

關閉