·54·
《测控技术))2006年第25卷第6期
QNX驱动程序的编写
王斑,苗克坚
(西北工业大学计算机学院,陕西西安710072)
摘要:简要介绍了QNX的特点,论述了QNX下资源管理器和设备驱动程序的关系,在此基础上,详细阐
述了QNX驱动程序编写的特点以及一般步骤。
关键词:QNX;资源管理器;设备驱动程序
中图分类号:TP393
文献标识码:B
文章编号:1000—8829(2006)06—0054—03
Programming
Device Driver
for
QNX
OS
WANG
Ban,MIAO
Ke-jian
(Institute
of
Computer
Science,Northwestern
Polyteehnical
University,Xi’an
710072,China)
Abstract:The
characteristics
of
QNX
and
the
relation
between
resource
managers
and
device
drivers
are
intro—
duced.On
the
basis
of
this,the
characteristics
of
programming
devi.ce
driver of
QNX
aye
analysed
and
a
general
method
of
programming
device
driver of
QNX
is
given.
Key
words:quantum
software
systems(QNX);resource
manager;device
driver
1
QNX介绍
QNX是一个分布、嵌入式,可规模扩展的微内核
实时操作系统。
首先,QNX是一个实时系统。实时系统最重要的
特点就是实时性,即系统的正确性不仅依赖于计算结
果的正确性,还取决于输出结果的及时性。
再者,QNX是一个标准的分布式系统,支持不同
结点间的分工合作与资源共享。
其次,QNX的内核仅提供4种服务:进程通信、进
程调度、中断处理和底层网络通信。因此内核非常小,
运行速度极快。用户可以很容易对它进行开发扩展以
实现自己的实际需求。
2设备驱动程序与资源管理器
在QNX中设备被通称为资源,所有的资源都由资
源管理器管理,QNX的资源管理器负责给不同类型的
设备提供一个接口。这种设备可能是真正的硬件设备
或者是虚拟设备。其他操作系统中,这一功能是与设
备驱动程序相关的。但是QNX的资源管理器与设备
驱动程序不同的是它以独立于内核的进程来运行,使
收稿日期:2005—10—16
作者简介:王斑(198l一),男,山东烟台人,工学硕士,主要从
事嵌入式系统研究;苗克坚(1962一),男,辽宁人,教授,主要
从事并行与分布计算的研究。
之就像一个普通的应用程序。除此之外,二者并没有
本质的区别,所以在以下介绍中,驱动程序和资源管理
器两个概念可以混合使用。
3
QNX驱动程序的特点
QNX的驱动程序是开放型的,没有什么特定的框
架和模式。驱动程序的根本目的就是实现硬件和应用
程序的交互。QNX对硬件的操作非常方便快捷,只要
通过系统命令pci—v就可以查找到硬件的端口,所以,
用户甚至可以跳过驱动直接对硬件进行操作,这对于
用户来说是非常方便的。QNX也提供了资源管理器
来支持驱动,用户可以编写自己的命令来控制硬件。
4
QNX驱动程序的编写
驱动程序的编写主要包括以下几个方面:
①设备初始化和释放。
②把数据从内核传送到硬件和从硬件读取数据。
③读取应用程序传送给设备文件的数据和回送应
用程序请求的数据。
④检测和处理设备出现的错误。
从以下几个方面来介绍QNX驱动程序编写的步
骤:
(1)设备的硬件资源管理和分配。
首先在驱动程序要用到的硬件资源主要包括内
存、I/O端口和中断,如果用到DMA控制器的话,还要
有DMA通道。
万方数据