欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

硬件可以事件通报方式与驱动程序通信吗

更新时间: 2014-01-05 03:19:13 责任编辑: Author_N1

 

硬件可以事件通知方式与驱动程序通信吗
    有要求说:硬件内发生某些事件时能通知驱动程序,比如缓冲区数据满的时候通知驱动程序取数据等等。敢问各路高手,这种要求是否可以实现?如何实现?据我目前所能做到的就是靠驱动程序轮询硬件“有什么事吗”这样的方式来解决,但是并非领导的本意啊,还请高手指点才行,万分感激!
--参考方法--
硬件产生中断啊,然后再查询。
--参考方法--
有中断了,驱动就会收到呀。
--参考方法--
不知道楼主是什么OS,比如说Windows CE。

驱动在Init阶段,可以创建一个IST(中断服务线程), 在IST中完成使能中断,创建事件,获取系统中断号并关联先前创建的事件以及实际的中断处理等工作。

在IST中会有一个死循环,在循环中等待一个事件。如:

for (;;)
{
    WaitForSingleObject(ResetButtonIntrEvent, INFINITE);

    // 实际的中断处理(代码省略)
        
    // 通知系统中断处理已经完成,重新使能该中断
    InterruptDone(ResetButtonSysIntr);
}


在WinCE系统中,有一个异常向量表,相当于通常所说的中断向量表。这样当发生物理中断时,系统会自动跳转到相应的异常处理程序(ISR)如IRQHandler。
         
        IMPORT  UndefException
        IMPORT  SWIHandler
        IMPORT  PrefetchAbort
        IMPORT  DataAbortHandler
        IMPORT  IRQHandler
        IMPORT  FIQHandler
        EXPORT  VectorTable

VectorTable
        DCD     -1                              ; reset
        DCD     UndefException                  ; undefined instruction
        DCD     SWIHandler                      ; SVC
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:19:13
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20717/
本文WWW.DOC100.NET DOC100.NET版权所有。