当前位置: 代码迷 >> WinCE >> wince事件响应时间解决办法
  详细解决方案

wince事件响应时间解决办法

热度:99   发布时间:2016-04-28 12:07:59.0
wince事件响应时间
最近在调一个串口扩展芯片vk3214,该芯片带有一个IRQ,当数据发送完毕后会触发该中断。我自己写了个流驱动,通过调用系统串口实现通信。流驱动发送数据是用CreateFile打开连接VK3214的系统串口,然偶使用WriteFile执行发送操作。
发送中使用芯片的发送FIFO空中断判断数据是否发送完成,我将数据WriteFile到系统串口后,使用WaitForSingleObject等待发送事件,而在3214的中断服务程序中判断发送FIFO空中断触发就将该等待发送事件设置有效,从而实现等待发送完毕的目的。现在有个问题,经常出现WaitForSingleObject发生超时(我设定的等待时间为300ms),而中断服务程序已经执行,我认为是中断服务程序设置了事件有效,但是等到WaitForSingleObject响应的时候,已经超过等待时间(300),所以超时,不知道这样理解对不对?
另外我想问问,不同线程间,从SetEvent到WaitForSingleObject响应有多长时间?
------解决方案--------------------
先将驱动中设置事件的 TickCount 和 WaitForSingleObject 响应这个事件的 TickCount 打印出来,看看具体的时间需要多久。前提是 WaitForSingleObject 先不要设置超时,死等。
此时,看看 CPU 的使用率如何?再看看是否有执行其它进程/线程,占用了 CPU。

如 LS 所说,提高优先级再试试。
  相关解决方案