在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 11830|回复: 10

[原创] 一个关于中断嵌套的问题,请高手看看啊

[复制链接]
发表于 2009-8-30 10:08:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 cjsb37 于 2013-4-29 09:03 编辑

TI的DSP是允许嵌套的,但是有一个问题我想不明白,如下程序
//中断函数
intterrupt  void test_global()
{
   。。。
   //array 为全局变量,index为array数组的索引,全局变量
   array[index].a=p->a;
   array[index].b=p->b;
   array[index].c=p->c;
   .
   .
   .

   ;;;//在此位置打开中断,index没有被更新,假设此时下一个
         中断来临,程序重新进入test_global函数,重新对array赋值
         那会出现什么问题,上一次的数值会被覆盖掉?此次中断完成
         以后,
         
       index++程序会回到刚才被打断的位置继续执行,那index是什么值?
   
}





 楼主| 发表于 2009-8-30 10:12:12 | 显示全部楼层
写的有些问题
就是在index++语句前打开中断,index++还没有执行时被打断
发表于 2009-9-2 10:34:46 | 显示全部楼层
中断会保存压站的
发表于 2009-12-2 21:58:23 | 显示全部楼层
dddddddddddddddddddddddddddddd
发表于 2009-12-22 21:59:32 | 显示全部楼层
不错哟!顶个!
发表于 2010-1-5 10:28:13 | 显示全部楼层
上面都是灌水得吧!

你这个程序保证不了实时性了吧,在上次中断都没有执行完成得情况下,下一次中断又来了。
发表于 2010-1-20 17:58:28 | 显示全部楼层
??????????????????????????????????????????????
发表于 2010-1-29 23:15:29 | 显示全部楼层
每次都在index++前中断吗?要看你有几层嵌套了.
发表于 2010-1-31 00:02:28 | 显示全部楼层
如果是同一个优先级的中断,应该是这个中断程序执行完了以后,才会进入到下一个中断程序重新处理,也就是说这个中断程序才会被执行一次,剩下的就可以自己去推了
发表于 2010-3-6 20:56:56 | 显示全部楼层
本帖最后由 smiley 于 2010-3-6 21:00 编辑

1, 在进入中断函数后,先将array[index]的地址赋予一个指针变量my_array。
2,index++;
3,打开中断许可;
4, my_array.a=p->a;
       my_array.b=p->b;
       my_array.c=p->c;
       ......

方案二:
1, my_index = index;
2,index++;
3,打开中断许可;
4, array[my_index].a=p->a;
     array[my_index].b=p->b;
     array[my_index].c=p->c;
       ......
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-5 14:59 , Processed in 0.022747 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表