您现在所在的是:

微软嵌入式

回帖:0个,阅读:958 [上一页] [1] [下一页]
1322
hack_cai
文章数:78
年度积分:50
历史总积分:1322
注册时间:2009/11/30
发站内信
发表于:2010/3/19 17:11:39
#0楼
关于wince中断响应速度问题,网上很多文章讨论,我以前也不太明白,后来在弄外部串口驱动的时候我遇到了这个问题,明显是wince中断响应速度太慢,后来我想了好几天,尝试了一种如何提高wince中断响应速度的方法。
 在一些文章中模糊的说着什么提高ISR效率就可以提高中断响应素的,后来我用4.2BSP和5.0BSP实测,发现4.2BSP的ISR效率高于5.0的。原因4.2BSP采用的是静态中断绑定方式,而5.0BSP是动态中断方式;嘿嘿,一件事情总有它的利弊,5.0BSP对开发效率有帮助,但是却在中断效率上输了一截,原因就是动态方法要使用太多的查询,耗费了时间。

 我想,只要绕过查询,那么5.0BSP就完美了,后来我果然想到了招数:就是在中断线程结束之后立即使能中断!通常中断线程最后通常调用

InterruptDone函数来查询,然后使能中断,现在我不要这个耗费时间的函数了,我直接使能即可。

//-------------------ECOM interrupt EINT1-------------------------
s2440INT->rSRCPND = BIT_EINT1; // to clear the previous pending states
if (s2440INT->rINTPND & BIT_EINT1)
 s2440INT->rINTPND = BIT_EINT1;
s2440INT->rINTMSK &= ~BIT_EINT1;

 果然,使用这个方法之后,我的串口数据阶段问题就解决了。效果非常明显。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

31.2002