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.comOSIntCtxSw_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的移植方法是相当重要的。
Tag:单片机学习,单片机开发,单片机原理,单片机教程,单片机学习
《uC/OS-II在凌阳单片机SPCE061A上的移植》相关文章
- › 在51系列单片机上移植uCOS-II
- 在百度中搜索相关文章:uC/OS-II在凌阳单片机SPCE061A上的移植
- 在谷歌中搜索相关文章:uC/OS-II在凌阳单片机SPCE061A上的移植
- 在soso中搜索相关文章:uC/OS-II在凌阳单片机SPCE061A上的移植
- 在搜狗中搜索相关文章:uC/OS-II在凌阳单片机SPCE061A上的移植
分类导航
最新更新