首页 | 博客群 | 公社 | 专栏 | 论坛 | 图片 | 资讯 | 注册 | 帮助 | 博客联播 | 随机访问
【原创】遭遇Worm.Win32.Agent.zlw, Malicious Code(恶意代码)等- -| 回首页 | 2008年索引 | - -这年头,做好人真难啊!

PQOAL格式下的驱动开发与非PQOAL BSP的区别

关键词BSP    PQOAL    OAL    漂泊浪子                                          

转自:http://winceblog.blogspot.com/2007/01/pqoalpqoal-bsp.html

PQOALWINCE50的一个新特性,其最大的特点就是BSP的开发变得更为容易,驱动程序在不同的硬件平台上也更易于移植,当然我们必须了解一些细节才能充分利用这种新特性。

在支持PQOAL格式的BSP,中断被分成两个级别,IRQSYSINTR, IRQ就是每个设备中断线在系统(CPU)中断线上的编号,SYSINTR是从OS的角度看每个设备使用的中断号。OAL层将IRQSYSINTR关联,这样,OS只会关心SYSINTR,而不必关心设备具体的IRQ。从而使驱动程序具有更好的移植性,能很容易的移植到不同的硬件平台上去。
在中断发生时,OAL会读出IRQ,将其转化成SYSINTR报告给Kernel,从而使kernel知道是哪个SYSINTR发生了中断,而触发相应的IST,驱动程序调用InterruptDone函数时,OALSYSINTR转换成IRQ,从而完成相应的动作。

通常,在PQOAL格式的BSP上运行的驱动程序在初始化阶段需做如下工作,
1
,用IOCTL_HAL_REQUEST_SYSINTR代码去调用 KernelIoControl,,从而得到一个SYSINTR,'
2
,创建一个事件(Event),InterruptInitialize将该事件与SYSINTR关联起来,
3
,创建一个线程去处理该事件。

所以,在这种新体系中,驱动程序不需要知道自己所用的SYSINTR,只需要知道而且也必须知道IRQ,然后用这个IRQ去申请一个SYSINTR,以后就使用申请来的这个SYSINTR,其它与以前的驱动一样。

 

【作者: 漂泊浪子】【访问统计:】【2008年02月25日 星期一 16:17】【注册】【打印

搜索

Google

Trackback

你可以使用这个链接引用该篇文章 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   endurer的博客  

准备开发WINCE的驱动了?

验证码:   
评论内容: