新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > μCOS-II移植到ARM处理器上的几个要点

μCOS-II移植到ARM处理器上的几个要点

作者:时间:2018-09-14来源:网络收藏

本文引用地址:http://www.eepw.com.cn/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 下一页

评论


相关推荐

技术专区

关闭