25设备驱动程序的编写摘要介绍实时操作系统425下编写设备驱动程序的大体框架、底层细节以及诸多注意点
针对使用较为普遍的设备作为较为详细的描述
关键词驱动程序实时操作系统引言是一个多任务、多用户、分布式、可嵌入式符合标准的微内核的主流实时操作系统,广泛用于实时性能、开发灵活性、网络灵活性要求较高的场合,如电信系统、医疗仪器、航空航天、工业自动化、交通运输、机、信息家电等
是一个适合软件硬件定制的实时操作系统
如果你曾经试图在传统的或平台下开发设备驱动程序,那么,下开发驱动程序一定会让你受宠若惊
由于的微内核结构,下的系统进程和用户所写的进程没有什么不同,甚至没有私有的隐藏起来的以至用户不能使用的界面
正是这种结构给带来了无与伦比的可扩展性,使得在下写驱动程序如同写其它程序一般方便
设备驱动程序能够获取普通程序所能获得的任务服务
在中增加一个新的驱动程序不会影响操作系统其它程序的任何部分,环境所需的唯一改变是实现地启动新的驱动程序
当然,我们会遇到形形色色的硬件设备,某些驱动程序可能将以特殊方式控制设备的存在和配置
本文只想集中讨论下如何进入、控制设备级的通用硬件,对所有驱动程序来讲这是一个共性问题
其中,将对使用较多的设备作较为详细的叙述
以下是硬件驱动程序的编写
1探测硬件首先,需要判断设备是否存在,然后查询该设备的配置例如,设备基地址、中断号等
对于某类设备,一般会有一大相应的标准机制来判断其配置
每块设备的基地址、中断号等是编程必须的资源,例如,常用的及硬件设备
对于设备,一般由板上手工跳线设定,不言自明;对于常用的设备,这些资源会由系统自动分配,特别是添减设备,可能会发生变化
因此,在驱动程序中能够动态查找这些资源显得比较重要
对于诸如、、定时卡、板卡这类设备,对照硬件手册编写一些简单的驱动程序并不困难
如果有下驱动程序的源码,移值应该更容易一些