专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > WinCE

WinCE6.0中断链优先级有关问题,高手来挑战一下

发布时间:2010-06-13 22:29:17 文章来源:www.iduyao.cn 采编人员:星星草
WinCE6.0中断链优先级问题,高手来挑战一下
开发板为x86cpu
4个串口共享同一个硬件中断IRQ
驱动使用installable ISR,在驱动中将isr挂到中断链上。
ce在中断异常发生时从内核isr进入oal isr,即扫描ISR链,寻找中断源,链上只要有isrhandler返回sysintr,中断链扫描立即返回,然后设置sysintr对应的event,IST开始工作。IST工作完毕后调用InteruptDone重新打开IRQ.

这一机制引起的问题便是谁先挂到中断链,谁的优先级就高。

造成的实际问题是,多个串口同时传输时各个串口都会产生中断,那么com1先挂上去,总是能得到优先的响应,com4能得到cpu处理的概率最低。造成丢失数据的问题,严重性从com1到com4依次递增。

就如何解决中断链上isr得到公平的处理机会向坛子里头的高手请教了!


------解决方案--------------------
1. For giisr, 就像LZ所描述的現象, 無解, 或是試著用較高級的CHIP, FIFO比較大, 或可減少 interrupt 的次數.
2. LZ 可試著用 isr16550.dll

Paul, Chao @ Techware

------解决方案--------------------
探讨
开发板为x86cpu
4个串口共享同一个硬件中断IRQ
驱动使用installable ISR,在驱动中将isr挂到中断链上。
ce在中断异常发生时从内核isr进入oal isr,即扫描ISR链,寻找中断源,链上只要有isrhandler返回sysintr,中断链扫描立即返回,然后设置sysintr对应的event,IST开始工作。IST工作完毕后调用InteruptDone重新打开IRQ.……

------解决方案--------------------
低手过来帮顶一下吧,呵呵。
------解决方案--------------------
我在想是不是因为中断太频繁,结果使得前面的中断还没处理完,后面的中断又触发了,引起数据丢失。不知道改一改fifo的trigger是否能解决。
------解决方案--------------------
楼主,你的问题解决的怎样了?我的不是共享中断,用了4个中断。把trigger level改为了14后,情况大有改观。不过在测试过程中(我只同时测试了port a and b,没有同时测试4个,我用的是16554),出现几次port b 不接收数据了,port a还在接收。关了重开又可以了。不知道什么原因。
------解决方案--------------------
学习了
------解决方案--------------------
关注学习……
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: