瓤黝摹黝薰翼蒸
讨 下 一 驱动程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
西 北 工 业 大 学 解月 江 秦龙勇 谢拴勤
中国民航飞行学院 彭卫东
摘 要
详细介绍 实时 多任务操作 系统 环境下驱动程序 的设计原理 针对驱动程序 实现的 困
难 , 给 出 下 实现驱动程序 的
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
步骤
。 文章以 八 一 适配卡 为例 , 简要介绍
硬件 结 构 , 重 点 给 出驱 动 程序 实现的 关 健代码 。
关键词 系统 驱动程序
是一款优秀的实时多任务操作系统
,
具有抢 占式调度 、 中断延迟小等特点 。 本文在简要
介绍必备的硬件环境下
, 以 为平台
,
详细
介绍驱动程序的开发 。
一 适配卡的硬件结构
一 适配卡主要 由 控制器
、 光电隔离 , 收发驱动器
及译码电路组成
。
编程主要了解的是控
制器 。 适配卡原理如图 所示 。
作
, 均可导致 硬件复位
。
的 引脚通过跳线选择 一 、
一 或 中的一个 , 避免与其它的适配卡
冲突 。
一 适配卡驱动实现
总线线线 控制器器器 光电电电 收发驱动器器器 传输输
总线 隔离离离 介质质
图 适配卡原理图
地址译码和中断选择
系统 主板的 为
,
其对接 口板访
问有两种方式 内存映射和 访问 。 寻址采用
专门的指令 , 每次只能传送单个字节 。 内存映射方
式可以访问较大的地址空间并且指令丰富 , 便于实
现快速交换数据 。 本文讨论的 卡采用 内存映
射模式工作 , 与 接口是 总线 , 它与
总线兼容 。 对于 体系的 , 可以映
射的空间为 一 。 使用比较器和地址选
择开关组成可选端 口地址译码 电路
, 通过开关选通
内存映射基地址 、 、 一一
, 以避免与其它器件冲突
。
偏移地址
分配如下
一 的寄存器
一 对该范围内的任意地址进行写操
驱动概述
操作系统有两种方式实现驱动 。 第一
种方式是
,
把设备驱动程序作为独立任务实现
,
直
接在顶层任务中实现硬件操作
, 完成特有专用的驱
动程序
。
第二种方式是
, 的 系统将设
备程序作为内核过程实现 。 这种方式便于实现
子系统的层次模型 。 便于文件系统一起把设备作为
特殊文件处理
, 提供统一的管理 、 统一的界面和统
一的使用
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
, 并把设备 、 文件及网络通信组织成
为一致的更高层次的抽象 , 为用户提供统一的系统
服务和用户接 口 。 我们用这种驱动方式 。
作 为 系 统 和 硬 件 设 备 之 间的连 接 层 ,
驱动就是屏蔽硬件操作 , 为 系统提供
服务
。
实现一个完整的驱动
, 必须了解 下
的三个基本元素 、 和 。 是
为用户提供访问设备的统一接 口 是实现具
体的基本控制函数 , 也就是实现 系统所需要的
接口 而 则是一个抽象的硬件设备
, 是一系
列 的结构体 、 变量和宏定 义 对 实际物理 设 备的定
义 。 一般而言 , 实现一个驱动应该有三个基本的步
骤 ① 用编程语言完成对实际物理设备的抽象 ②
完成系统所需要 的各类接 口 及 自身的特殊接 口
③ 将驱动集成到操作系统中 。 之后还有一些调试
工作 。
皿口班 口 、 。。。 , 。 , , 。 , , ,
技术纵横
黝羹耀瘾瓤瓤嘿 蒸
冲 “ 系统驱动程序框架
、 为各种设备 包括字符设备
、 块设备 、
虚拟设备及网络设备 提供统一的访问接 口 , 包括
七种基本的 函数
、 、 ,
、 , 、 、 ,
丈 · 、 , 、 、 ,
记 及 且
。 系统所起的作用
就是
,
把用户请求分配到与设备对应的驱动例程中
去 。 系统中有一个驱动程序列
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
, 其形式
如表 工所列 。
礁蘸麟狱蔗澎如下
驱动编号 设备列表
阵牛井月
。 系统的整体结构如 图详所示
· 系统启动时
一般挂接在 , 公 和
便将设备及其驱动加人相应的列
表 设备驱动列表 调试时可利用 查看
驱驱动动 《〕 即即 、
号号码码码码码码码码码
招招
系统的可动态调用 函数将设
备的驱动例程 即
、 、
等 加入到设备驱动列表中
, 如图 所示
。
备驱动程序为例
,
表中
设备驱动程序的访问过程
下面以 驱动程序为例
,
说明驱动程序的访问过程
。
假
定设备名 ” , , 并且以 设
上述中的 在这里用 代替
。
粤理罗坦代咒瞥卿忿
,
划 尔玩位仅窗夕廿衣 甲 矛工 饭 对 泊 了 ‘ 丈
①②
””币 砂 ” 叭 ” ” , ,厂 压尸尸尸
管管道驱动数据据据 管道驱动数据据据 串口驱动数据据
图
同样
,
系统中有一个设备列表 , 每个设备对应
子设备列表中的一项 每一项包括设备名称和设备
驱动号
, 同时包括一个设备描述的结构 。 该结构第
一 个变量是 类型的变量
。
的定义如下
少
人
盯 承 确
设备列表节点
驱动号码
设备名
的设备项 , 找到相应的设备驱动号 。
③ 系统在文件描述符中保留一个文件描述
符空间 。
④ 系统在 设 备驱动 列 表 中找 到 对应 的
二 弄 ,
该驱动例程返回设备描述符的指针
·
⑤ 系统将设备描述符的指针存储在文件描
述符列表的 , 同时将对应的设备驱动号存
储在文件描述符的 。 项
。 最后 系统返
回该描述符项的索引 用口为 ·
⑥ 这样应用程序中的 和 等函数调
用就可以根据 找到相应的设备驱动号
, 进而找到
相应 的驱动例程 。
、少
系统调用 ,
可 以将设备加人到 设备列 表
中 。 系统中将驱动和设备联
系起来的就是文件描述符列
表 每个文件描述符 列表除
了包括驱动号
、 设备 外 , 还
包括文件名
、 可用标志和指
向 卫 的指针
。 系统每
次成功执行
, 返回一个
启启动代码码码 应 即 一尸尸尸尸尸尸尸尸 一一
公
一 一
叩叩
一
骊呼 ‘
图 系统整体结构
年峥权 去入石杀悦滩 恤血口
技术纵横
黝羹耀瘾瓤瓤嘿 蒸
冲 “ 系统驱动程序框架
、 为各种设备 包括字符设备
、 块设备 、
虚拟设备及网络设备 提供统一的访问接 口 , 包括
七种基本的 函数
、 、 ,
、 , 、 、 ,
丈 · 、 , 、 、 ,
记 及 且
。 系统所起的作用
就是
,
把用户请求分配到与设备对应的驱动例程中
去 。 系统中有一个驱动程序列表 , 其形式
如表 工所列 。
礁蘸麟狱蔗澎如下
驱动编号 设备列表
阵牛井月
。 系统的整体结构如 图详所示
· 系统启动时
一般挂接在 , 公 和
便将设备及其驱动加人相应的列
表 设备驱动列表 调试时可利用 查看
驱驱动动 《〕 即即 、
号号码码码码码码码码码
招招
系统的可动态调用 函数将设
备的驱动例程 即
、 、
等 加入到设备驱动列表中
, 如图 所示
。
备驱动程序为例
,
表中
设备驱动程序的访问过程
下面以 驱动程序为例
,
说明驱动程序的访问过程
。
假
定设备名 ” , , 并且以 设
上述中的 在这里用 代替
。
粤理罗坦代咒瞥卿忿
,
划 尔玩位仅窗夕廿衣 甲 矛工 饭 对 泊 了 ‘ 丈
①②
””币 砂 ” 叭 ” ” , ,厂 压尸尸尸
管管道驱动数据据据 管道驱动数据据据 串口驱动数据据
图
同样
,
系统中有一个设备列表 , 每个设备对应
子设备列表中的一项 每一项包括设备名称和设备
驱动号
, 同时包括一个设备描述的结构 。 该结构第
一 个变量是 类型的变量
。
的定义如下
少
人
盯 承 确
设备列表节点
驱动号码
设备名
的设备项 , 找到相应的设备驱动号 。
③ 系统在文件描述符中保留一个文件描述
符空间 。
④ 系统在 设 备驱动 列 表 中找 到 对应 的
二 弄 ,
该驱动例程返回设备描述符的指针
·
⑤ 系统将设备描述符的指针存储在文件描
述符列表的 , 同时将对应的设备驱动号存
储在文件描述符的 。 项
。 最后 系统返
回该描述符项的索引 用口为 ·
⑥ 这样应用程序中的 和 等函数调
用就可以根据 找到相应的设备驱动号
, 进而找到
相应 的驱动例程 。
、少
系统调用 ,
可 以将设备加人到 设备列 表
中 。 系统中将驱动和设备联
系起来的就是文件描述符列
表 每个文件描述符 列表除
了包括驱动号
、 设备 外 , 还
包括文件名
、 可用标志和指
向 卫 的指针
。 系统每
次成功执行
, 返回一个
启启动代码码码 应 即 一尸尸尸尸尸尸尸尸 一一
公
一 一
叩叩
一
骊呼 ‘
图 系统整体结构
年峥权 去入石杀悦滩 恤血口