关于在m128中使用ucos的一个具体的技术问题:任务切换时PC值是如何存取的
在ucos的官方网站上下了个移植程序,可是在OS_CPU_A.S的_OSCtxSw::函数中,并没有reti指令,那么不同任务的入口点(动态的,即被打断时的PC值)是怎么被保存和载入的呢?做过AVR的ucos移植的朋友请指点!!!
-----此内容被kongqqq于2005-08-03,18:36:30编辑过 没人帮忙,自己顶一个,为了不让这篇帖子没落 这个函数主要有有以下功能:保存当前任务的现场;保存当前任务的栈指针到当前任务的控制快中;切换最高级任务为当前任务,使sp指针指向该任务的栈顶;恢复该任务的运行环境。
假如1任务切换到2任务,那么1任务的现场应该能保存。
pushrs
pushsreg
pushsp //保存了现场
LDS R30,_OSTCBCur
LDS R31,_OSTCBCur+1
ST Z+,R28
ST Z+,R29 ;保存了pc现场
当让把高优先级的任务pc指针调出来反过来就行了
握也想请问你一个问题:保存不保存现场跟reti有什么关系??
再说拉这个地方是软中断啊,有没有硬中断你怎么用reti?
页:
[1]