转自:http://winceblog.blogspot.com/2007/01/pqoalpqoal-bsp.html PQOAL是WINCE5。0的一个新特性,其最大的特点就是BSP的开发变得更为容易,驱动程序在不同的硬件平台上也更易于移植,当然我们必须了解一些细节才能充分利用这种新特性。
在支持PQOAL格式的BSP中,中断被分成两个级别,IRQ与SYSINTR, IRQ就是每个设备中断线在系统(CPU)中断线上的编号,SYSINTR是从OS的角度看每个设备使用的中断号。OAL层将IRQ与SYSINTR关联,这样,OS只会关心SYSINTR,而不必关心设备具体的IRQ。从而使驱动程序具有更好的移植性,能很容易的移植到不同的硬件平台上去。
在中断发生时,OAL会读出IRQ,将其转化成SYSINTR报告给Kernel,从而使kernel知道是哪个SYSINTR发生了中断,而触发相应的IST,驱动程序调用InterruptDone函数时,OAL将SYSINTR转换成IRQ,从而完成相应的动作。
通常,在PQOAL格式的BSP上运行的驱动程序在初始化阶段需做如下工作,
1,用IOCTL_HAL_REQUEST_SYSINTR代码去调用 KernelIoControl,,从而得到一个SYSINTR,'
2,创建一个事件(Event),用InterruptInitialize将该事件与SYSINTR关联起来,
3,创建一个线程去处理该事件。
所以,在这种新体系中,驱动程序不需要知道自己所用的SYSINTR,只需要知道而且也必须知道IRQ,然后用这个IRQ去申请一个SYSINTR,以后就使用申请来的这个SYSINTR,其它与以前的驱动一样。
你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=6636341
|
- 评论人:漂泊浪子
2008-02-26 18:30:48
|
|||
to endurer: yes! |
||||
|
- 评论人:endurer
2008-02-25 23:03:22
|
|||
准备开发WINCE的驱动了? |
||||