IAR for stm8 做一个一个非抢占式的RTOS

siriuskiss 2015-06-18 11:30:45
在定时器中断里调度任务, 我修改别人的代码, 在出栈入栈前增加了部分判断代码后,不能正常运行,一直重启,请问这个备注 “定时器中断时会多进栈3字节,调整SP ” ,定时器中断多入栈3个字节是什么意思?我在线debug时,追踪进定时器中断前后sp的值,没有差三个字节呀,而是多于三个字节。请大神指导一二,不胜感激。
asm("LDW X,SP");
asm("INCW X");//定时器中断时会多进栈3字节,调整SP
asm("INCW X");//这三个少不了
asm("INCW X");
asm("LDW SP,X");
Current_Ready_StackTop=(unsigned int)(&Task_TCB[Pri_Current].StackTop);
asm("ldw X,L:Current_Ready_StackTop");//保存到当前任务栈顶到任务表中.
asm("ldw Y,SP");
asm("ldw (X),Y");
...全文
322 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
翼辉小健健 2015-10-23
  • 打赏
  • 举报
回复
我是ucos吧吧主。。。置顶贴有我的demo
翼辉小健健 2015-10-23
  • 打赏
  • 举报
回复
- -表示我写过这个内核,8任务抢占,这个部分的入出是要自己一个个计算调试的
ancyscat 2015-06-21
  • 打赏
  • 举报
回复
[mark] THX stm8 非抢占式的RTOS ASM

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧