VxWorks下设备驱动程序
设备驱动程序是直接控制设备操作的那部分程序,也是设备上层的一个软件接口。设备驱动程序的功能是对IO进行操作,实际上从软件角度来说就是对IO端口地址进行读写操作。
只要系统访问设备就会调用驱动。驱动程序不能自动执行,只能被系统或应用程序调用。
驱动程序的概念
设备分为如下几类:
字符设备,大多数的传输设备以及显示终端。
随机存储块设备,这种设备主要是指磁盘。
虚拟设备,比如管道,套接字都属于这种设备。
控制见识设备,一般是指用于控制数模变换的IO设备。
网络设备,那些与网络协议挂接的通信设备。
VxWorks下设备的分类
VxWorks下设备驱动程序在系统中的层次
在Tornado环境下,成功安装BSP开发包之后,可以在../target/src/drv目录下找到一些设备驱动程序源代码文件。
配置这些VxWorks自带驱动程序,,添加这些设备驱动程序的宏定义就行。
VxWorks下常用设备驱动源文件
在嵌入式系统中调用设备驱动通常有三种方式:应用程序直接调用,应用程序通过操作系统内核调用,应用程序通过操作系统的扩展模块进行调用。
不同的调用方式各有自己的优缺点,下面分别描述他们的优缺点:
驱动程序的调用
优点:可以高效访问设备(因为绕过操作系统,而直接访问设备,减少了系统开销时间),减少了系统代码开销,适合简单的嵌入式系统。
缺点:所编写的应用程序移植性差(因为应用程序直接与设备驱动相关联),且用户自己来管理设备,不适合复杂的嵌入式系统。
驱动程序的调用 ——应用程序直接调用设备驱动程序
优点:所编写的应用程序移植性好(统一的标准接口函数),且设备由操作系统管理,适合复杂的嵌入式系统。
缺点:操作系统管理设备,增加了系统开销。
驱动程序的调用 ——应用程序通过操作系统内核调用设备驱动程序
扩展模块是嵌入式操作系统可供用户选择的模块。当用户需要某个扩展模块时才把该模块加入到操作系统中,如网络模块,文件模块等。它的优点类似于第二种调用方式,但这些扩展模块依赖于操作系统内核。
驱动程序的调用 ——应用程序通过操作系统的扩展模块调用设备驱动程序
(1)对设备进行初始化。初始化的目的是使设备处于某种工作状态,以便用户程序访问该设备。譬如串口初始化包括设置串口波特率,数据位,奇偶校验位,停止位等。
(2)打开设备操作。打开设备操作实际上是查询用户指定的设备,并查看用户是否可以使用该设备。因为设备时共享资源,当设备正在使用时,系统要对它进行保护,禁止其他任务对设备进行操作,直到设备资源被释放。
设备驱动程序的主要功能
vxworks下设备驱动 来自淘豆网m.daumloan.com转载请标明出处.