ucosII操作系统多次进中断后返回的问题

[复制链接]
 楼主| zhp108xx 发表于 2013-7-25 09:12 | 显示全部楼层 |阅读模式
示例如下:
task_a()                                                                                                               
{
  .
  .
  .
   while(1)
   {
      子函数01;
    子函数02;
      a语句;
    b语句;
    c语句;
    d语句;
   }                        
}                              
如果a、b、c、d四条语句都产生中断并运行中断服务程序,那比如a的中断返回以后程序怎么继续?还会重新运行子函数1和2 么?中断返回以后怎么进行任务切换的。。求高手指点
 楼主| zhp108xx 发表于 2013-7-25 10:43 | 显示全部楼层
没人回答呢。。。自己顶下
jlass 发表于 2013-7-26 08:54 | 显示全部楼层
我觉得应该是abcd顺序执行的。
刘骁奖 发表于 2013-7-26 09:47 | 显示全部楼层
从什么地方进的中断,就从什么地方出来继续顺序执行。
john_lee 发表于 2013-7-26 09:48 | 显示全部楼层
任务被中断时,把PC(program counter)或IP(instructiion pointer)保存在了任务栈上,当任务再次被调度时(进入运行态),必须从保存的PC或IP处继续执行,就是说,在什么地方被中断的,就在什么地方继续执行。

a语句产生中断,执行完isr(包括可能的任务切换,并再次切换回来)后,仍然继续a语句,然后到b语句,
b跟a同样的原理,然后到c语句,c ...到d,d ...到while 起点。

评分

参与人数 1威望 +1 收起 理由
zhp108xx + 1 赞一个!

查看全部评分

keal224324 发表于 2013-8-1 13:57 | 显示全部楼层
john_lee 发表于 2013-7-26 09:48
任务被中断时,把PC(program counter)或IP(instructiion pointer)保存在了任务栈上,当任务再次被调度时( ...

Perfect
HORSE7812 发表于 2013-8-17 13:00 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

2

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部