uC/OS-II在凌阳单片机SPCE061A上的移植

[09-12 17:57:07]   来源:http://www.88dzw.com  单片机学习   阅读:8740

文章摘要:OSIntCtxSw_in:// 求出系统堆栈的长度 ,并将其存入R2R1=SPR2=OSStkStartR1+=1R2=R2-R1R1=[_OSTCBCuγ]// R1≤OSTCBStkPtr, R1 为任//务堆栈的头指针R1=[R1] // 首先将系统堆栈长度保存在任//务堆栈中[R1]=R2R3=OSStkStart // 得到堆栈的起始地址// 保存系统堆栈到任务堆栈save_stack:R3-=1R1+=1R4=[R3][R1]=R4R2-=1JNZ save_stackCALL _OSTaskSwHookR1=[_OSTCBHighRdy][_OSTCBCur]=R1R1=[_O

uC/OS-II在凌阳单片机SPCE061A上的移植,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com
OSIntCtxSw_in:
// 求出系统堆栈的长度 ,并将其存入R2
R1=SP
R2=OSStkStart
R1+=1
R2=R2-R1
R1=[_OSTCBCuγ]// R1≤OSTCBStkPtr, R1 为任
//务堆栈的头指针
R1=[R1] // 首先将系统堆栈长度保存在任
//务堆栈中
[R1]=R2
R3=OSStkStart // 得到堆栈的起始地址
// 保存系统堆栈到任务堆栈
save_stack:
R3-=1
R1+=1
R4=[R3]
[R1]=R4
R2-=1
JNZ save_stack
CALL _OSTaskSwHook
R1=[_OSTCBHighRdy]
[_OSTCBCur]=R1
R1=[_OSPrioHighRdy]
[_OSPrioCur]=R1
JMP OSCtxSw_in

3.2 uCOS-II系统时钟

  以凌阳SPCE061A单片机的TMB2时基信号作为系统时钟,每经历一个时钟节拍的时间将产生一次中断,在中断服务子程序中会调用OSTickISR()函数,汇编代码如下:
_OSTickISR:
PUSHALL
R1=0x0001
test R1,[P_INT_Ctrl]
JZ OUT
R1=0x0001
[P_INT_Clear]=R1
CALL _OSIntEnter
CALL _OSTimeTick
CALL _OSIntExit
OUT:
R1=0x0001
[P_INT_Clear]=R1
POPALL
RETI

结 语

  RTOS是当今嵌入式应用的热点。应用RTOS,可以提高产品的可靠性,降低研发周期。uCOS-II具有很好的实时性和很小的代码量,因此掌握uCOS-II的移植方法是相当重要的。


上一页  [1] [2] 


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习

《uC/OS-II在凌阳单片机SPCE061A上的移植》相关文章

分类导航
最新更新
热门排行