加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

为系统处理器编写Linux设备驱动程序

发布时间:2016-01-24 19:31:23 所属栏目:Linux 来源:网络整理
导读:引 言 编写 Linux 设备驱动程序无疑是一项复杂的工作。本文将集中介绍非标准硬件的设备驱动程序编写,探讨硬件应用编程接口,并借用 Cirrus Logic EP9312 片上

硬件接口(EP9312 IDE控制器接口)被初始化并与高级IDE驱动程序一起注册后,高级IDE驱动程序通过探测相连的IDE设备硬件接口继续初始化。如果设备被探测到,则与操作系统一起注册。设备与操作系统一起注册后,向能在设备上执行的操作表上映射。这样,操作系统也获得了设备的额外信息,并需要对设备进行资源管理。这些额外信息包括大小和分区数量等。以下是注册IDE硬盘的函数调用:

register_disk(struct gendisk *gd, int drive,
unsigned minors,
struct block_device_operations *ops,
long size)

高级IDE驱动程序用探测设备时获得的的函数参数值调用这个函数。第一个参数是gd,它是描述盘片布局的数据结构。第二个参数--drive,是设备编号。对于EP9312而言,设备编号或为0,或为1,因为硬件只支持的两台设备。第三个参数--minors,是设备被探测时发现的盘片分区。第四个参数--block_device_operations,是函数指针列表,系IDE驱动程序硬盘执行所定义。被映射到该列表中的函数采用结构特殊函数执行不同任务。最后一个参数--size,是指设备的扇区数,它同样也是从设备中直接获得。

设备指针列表包括以下区块设备操作:

open - 设备和驱动程序实例初始化

release - 关闭设备或清除驱动程序实例

ioctl - 填补空白,是通过内核向设备驱动程序传递的一种信息的一种方式

check media change - 处理支持可移动媒体的设备

revalidate - 处理支持可移动媒体的设备(通常为设备指定)

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读