OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2786|回复: 1

ucosIII发生中断时,保存当前运行环境的代码在哪里?

[复制链接]

7

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2016-8-14
在线时间
15 小时
发表于 2016-8-17 14:03:07 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 gaotekknd 于 2016-8-17 14:32 编辑

ucosIII的书上说:在发生中断时,当前任务的运行环境(CPU寄存器,函数变量等)都会保存在当前任务的任务堆栈里面,这个所谓的保存过程的代码或者函数在哪里?我在ucosiii的源码里面找不到。
例如:时钟节拍中断函数:
           void OS_CPU_SysTickHandler (void)
{
    CPU_SR_ALLOC();
   CPU_CRITICAL_ENTER();
    OSIntNestingCtr++; /* Tell uC/OS-III that we are starting an ISR */
    CPU_CRITICAL_EXIT();
    OSTimeTick(); /* Call uC/OS-III's OSTimeTick() */
    OSIntExit(); /* Tell uC/OS-III that we are leaving the ISR */
}


没有一句代码是保存当前任务上下文环境到任务堆栈中的。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

430

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1341
金钱
1341
注册时间
2016-4-22
在线时间
187 小时
发表于 2016-8-17 16:03:09 | 显示全部楼层
要保存也应该是进入中断处理函数前就保存吧,怎么会是在中断函数里面保存呢?
那个保存代码是汇编,看不懂。
伤情最是晚凉天,憔悴斯人不堪怜。
邀酒摧肠三杯醉,寻香惊梦五更寒。
钗头凤斜卿有泪,荼蘼花了我无缘。
小楼寂寞新雨月,也难如钩也难圆。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-1 20:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表