WinCE中中断的处理过程(驱动开发人员角度)
来源:互联网 发布:如何关闭淘宝店铺 编辑:程序博客网 时间:2024/04/29 17:50
作者:qwent
转自:http://blog.csdn.net/qwent/article/details/1675005
中断是硬件与软件打交道的重要方法,因此,大多数驱动程序都涉及到对中断的处理,本文就驱动程序的开发人员以及BSP的开发人员的角度,来谈谈Windows CE中中断的处理过程。
如果一个驱动程序要处理一个中断,那么驱动程序需要首先建立一个事件,可以使用CreateEvent函数,然后调用InterruptInitialize将该事件与中断号绑定,这一步就会使能该中断,OAL中的OEMInerrupteEnable就会被调用,如果该函数不返回true的话,InterruptInitialize就会失败。然后驱动程序中的IST就可以使用WaitForSingleObject函数来等待中断的发生。
当一个硬件中断发生之后,操作系统陷入异常,中断向量指示进入CE的异常处理程序,该异常处理程序然后调用OAL的OEMInterruptHandler函数,该函数检测硬件之后,将硬件中断转换为软件的中断号,返回给系统。该中断号就是上面提到的InterruptInitialize中使用的那个中断号。系统得到该中断号之后,就会找到该中断号对应的事件,并唤醒等待相应事件的线程(IST),然后IST就可以在用户态进行中断处理。处理完成之后,IST需要调用InterruptDone来告诉操作系统中断处理结束,操作系统再次调用OAL中的OEMInterruptDone函数,最后完成中断的处理。
在上面的描述中,驱动程序需要使用的是InterruptInitialize,WaitForSingleObject和InterruptDone三个函数,而BSP开发者需要主要考虑的是OEMInerrupteEnable,OEMInterruptHandler,OEMInterruptDone三个函数。当然,这是上面提到的一些函数,实际上BSP开发者在中断部分还需要考虑Init以及Disable等等函数,这里就不再讨论了。
本文抛砖引玉,还请各位大侠指正!
- WinCE中中断的处理过程(驱动开发人员角度)
- WinCE中中断的处理过程(驱动开发人员角度)
- WinCE中中断的处理过程(驱动开发人员角度)
- WinCE中中断的处理过程(驱动开发人员角度)
- WinCE中中断的处理过程(驱动开发人员角度)
- 转载—— WinCE中中断的处理过程(驱动开发人员角度)
- WinCE驱动中设备中断的处理
- WinCE中中断的处理过程
- wince中断的处理过程
- WinCE中断处理过程
- wince中断处理过程
- WinCE下的中断处理过程15814101899
- wince中断机制和在驱动中调用中断
- 中断的处理过程
- 中断的处理过程
- linux驱动中中断处理
- WinCE 流接口驱动中设备句柄的传输过程
- WinCE 流接口驱动中设备句柄的传输过程
- SeqStack
- windows创建线程
- Visual Studio 2005 IDE 技巧和窍门
- FireWork 制作android 应用程序 icon
- IOS第十六天——基本控件
- WinCE中中断的处理过程(驱动开发人员角度)
- nyist_ACM
- ubuntu 开发环境搭建-----samba服务器
- 基于Windows CE的嵌入式系统开发流程
- 黑马程序员_java基础增强
- Unity3D之两种方式播放视频
- ORACLE 11.2.0.1 安装应用
- android 获取短信
- 杭电2673