您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF51X技术支持专区 -> 关于低等级中断执行时间过长影响高等级中断... 
本帖共有477个阅读者
发表帖子 发表投票 回复主题
关于低等级中断执行时间过长影响高等级中断的问题
Runner(论坛新手)
Runner
头衔:社区公民
帮派:无帮无派
帖数:29
金钱:332
积分:36
注册时间:2012/10/9
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
关于低等级中断执行时间过长影响高等级中断的问题
大家好,我有一个中断等级的问题没搞明白。

目前,我有两个中断,一个是core timer中断,这个的优先级应该是最高的,另一个是portf中断,这个的等级我设为13。

在portf中断到来之时,程序运行大量运算,按照我的理解,低等级的中断应该不会影响高等级的中断到来,所以我就放心地把大量运算放到了portf中断服务函数里。

但程序运行的结果非常奇怪,然后我用示波器一看,果然,当portf中断到来,CPU被占用,这时core timer中断就被暂时终止了,直到portf中断中的程序执行完毕,core timer中断才继续到来。

请问这是正常的吗?我要如何避免低等级中断中的程序执行冻结高等级中断的来临?

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2012/11/19 22:27:35
Runner(论坛新手)
Runner
头衔:社区公民
帮派:无帮无派
帖数:29
金钱:332
积分:36
注册时间:2012/10/9
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
p.s. 我使用的都是中断服务函数。

举个栗子,我有两个中断服务函数:

EX_INTERRUPT_HANDLER(PORTF_ISR);
EX_INTERRUPT_HANDLER(coreTimer_ISR);

请问触发和执行这两个函数的线程,到底是cpu内核发起的多线程,还是在同一线程下,依次执行?

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2012/11/19 22:34:15
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
你可以在中断中设置一个标志位,进入portF中断后,仅仅是设置标志位,然后退出,在中断外面通过标志位来启动你的算法的处理,这样就不会影响核中断了,对中断机制没有研究过,所以回答不了你上面的问题。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/11/20 0:15:40
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154319 Call, 1 Queries, Processed in 0.015625 second(s),