随笔分类 -  wince5.0中断体系

摘要:WINCE5.0的中断深入了解1.总体了解流程首先描述wince5.0 (2440BSP)的中断流程:流程1.创建事件aà创建线程ISTà用InterruptInitialize〈系统中断号绑定线程IST〉à线程IST进入等待事件a状态(挂起状态)。流程2.外部引发中断à OEMInterruptHandler屏蔽中断à把物理中断转换成系统中断,其他à重新使能中断。(ISR过程)à操作系统根据系统中断号触发事件a。流程3.挂起的IST线程等待到事件a进入就绪状态,得到执行时间后开始执行中断服务代码, 最后调用InterruptDone重新使能当前的中断。你需要为你的设备驱动写好中断处理请求 阅读全文
posted @ 2010-05-06 13:43 gmh 阅读(479) 评论(0) 推荐(0)
摘要:以前在CSDN写过一些wince5.0中断的文章,现在重新看看,发现以前的有些理解是错误的,想翻开来改改,可是郁闷的CSDN在前台没有返回后台的编辑功能,所以现在重新写一篇纠正一下。首先描述wince5.0 (2440BSP)的中断流程注册表等——》KernelIoControl(——》OEMIoControl——》OALIntrRequestIrqs )把物理中断转换成系统中断——》InterruptInitialize调用OEMInterruptEnable使能中断并用中断绑定线程——》OEMInterruptHandler屏蔽中断——》执行线程——》InterruptDone——》调用O 阅读全文
posted @ 2010-05-05 11:17 gmh 阅读(511) 评论(0) 推荐(0)
摘要:对于KernelIoControl这个函数我们并不陌生,在2440 5.0BSP当中,这个函数在很多驱动中出现了,主要是用来申请中断,比如下面BOOL RetVal = KernelIoControl( IOCTL_HAL_REQUEST_SYSINTR, &Irq, sizeof( Irq ), pSysIntr, sizeof( *pSysIntr ), NULL );-------------------其实他的作用远远不止申请/释放中断那么简单,下面来看看PB的帮助文档。This function provides the kernel with a generic I/O contr 阅读全文
posted @ 2010-05-05 10:24 gmh 阅读(1842) 评论(0) 推荐(0)