主题:RTX系统下外设的驱动开发
RTX是Windows的实时扩展,RTX的出现,使得用户既可以利用Windows的良好界面,又使应用具有了微秒级的实时特性。
RTX不仅支持PCI,ISA总线的板块,也支持PCI-E总线板卡。在驱动开发上,PCI,ISA和PCI-E板卡开发方法没有任何区别,RTX提供了良好驱动开发框架,通过设置向导,用户可以选择需要的功能模块,如:内存映射,I/O映射,ISR,IST等。
RTX对中断类型的支持,不仅包括line-based类型,还包括MSI和MSI-X中断类型。当然,对MSI和MSI-X中断类型,需要硬件板卡具有此中断功能。目前,符合PCI2.2协议的板卡和PCI-E板卡一般都支持MSI和MSI-X中断。
下面简单介绍RTX的驱动框架,
1. 用DeviceSearch( )函数来搜索指定的设备,开发人员需要将device ID 和Vendor ID 指定。
2. 用DeviceInit( )函数来初始化搜索到的指定设备。
2.1 使能I/O。(如果在构建框架时选择了I/O映射)
2.2 将物理内存地址,寄存器地址进行映射,这杨,开发人员对设备寄存器的访问就如同对数组的访问一样简单。
2.3 根据需要,对设备寄存器进行相应的配置。
3. 用RtQueryPciMsiCapability( )函数来探测板卡是否支持MSI或MSI-X中断。
4. 根据中断类型来设置参数,包括IST和ISR。
5. 用RtAttachInterrupt( )函数来挂接中断。
以上是驱动的大致框架,开发人员可以根据需要,封装成自己的函数,以方便应用层的开发。驱动程序可以被编译成RTSS文件或RTDLL文件。若不希望驱动代码泄露,可以编译成RTDLL文件,只需提供函数接口即可。
有兴趣的人可以发邮件到product_gao@163.com,我们可进行进一步的沟通。公司网址:www.hxsolution.com