linux字符设备驱动程序设计完全剖析

  • 格式:pdf
  • 大小:490.57 KB
  • 文档页数:3

操作硬件 ,而是使用统一的接 口函数调用硬件 驱动 程序 。这
组接 口被称为 系统调用 , 在库函数中定义。

般将 L i n u x系统 的设备驱动程序分为 3类:字符设备
( c h a r a c t e r d e v i c e ) 、 块设备 ( b l o c k d e v i c e ) ¥ H 网络接 口( n e t wo r k
设想一下 , 如何在提示符# 下来控制 a l T n硬件电路板 上的 l e d灯呢?那么就 需要 用到 l i n u x设备驱动程序 了。本文就是 阐述 如何在 l i n u x终端提示 符 下, 如何构建 l i n u x字符设备驱 动程 序, 使得在 l i n u x终端提示符下能够实现开关 a r m硬件平 台上的 l e d灯 的功能 。 通过这样一个实例来阐述 l i n u x字符设
1设想 的应 用场 景
在a r n l 硬件平 台上 , 移植了 u b o o t , 移植 了 l i n u x操作系统 和根文件 系统 。这样一个完整的硬件平台就搭建好 了。启动 整个 系统后 , 以r o o t 身份登录, 就会 出现 l i n u x 终端 的提示符样 , 可以执行 l s 命令等 。 大 多数硬件平 台一般都有类似于这样的 电路部分, 如图 1 所示 :
11 6
灭灯
信 息通信
刘光然: l i n u x字符设备驱动程序设计完全剖析 这样 设备程序 就加载如 l i n u x内核 了, 驱动程序不 主动运
设 备 程 序 的 全部 知 识 点 。 关键词 : a r m; l i n u x ; 字符 设 备 驱 动 程 序
中图分 类号 : T P 3 8
文献标识码 : A
文章编号 : 1 6 7 3 . 1 1 3 1 ( 2 0 1 4 ) 0 2 — 0 1 1 6 - 0 3 驱动程序是操作系统 内核和机器硬件之间的接 口,为应用程 序屏 蔽了硬件 的细节 。L i n u x操作系统将所有 的设备都看成 文件 ,以操作文件 的方式访 问硬件设备。应用 程序 不能直接
3 l e d字 符设备 驱动 程序 完全解 析
要在 l i n u x系统下实现控 制 l e d灯的开关 , 分为两个程序
图1 L E D 硬 件 电 路
来共 同实现 , 一个是 l e d d r v . c ( 字符设备驱动程序) , 一个 部分 是应用程序 l e d . c ( 执行 l e d开关操作 ) 。
l 0 l
1 1 s t a O e s me t l  ̄ '
l 2 {
1 3 c h a r o n ;
1 4 2 卿 噬 理 蹬 吣 n , h‘ 伽咂 o ; 咖 t 0 u I e 削I 曩 口 啪叠
1 5
1 6
i f ( o n 1 、
摘要 : 在构建 l i n u x设备驱动程序时遇到不小的 问题 , 抱 着( ( 1 i n u x设备 驱动程序 》 等著名 书籍不知如何下手?关于 l i n u x
设备驱 动开发 , 目前没有 相关的文献对其详 细阐述 。文章通过一个 字符设备驱动开发的全过程 , 阐述 了掌握 l i n u x 字符
1 2 # d  ̄ e L E D MA J OR
_
2 初识 l i n u x字符 设备 驱动
籼E n mI 卫D N ^ m
” l e d ”
3 4
6 t
Ⅱ衄 神 l 0 _ g 衄 神 l o l g
一 N U u; N U I J L ;
5 出i i £ 墅M
2 0 1 4 年第 2 期 ( 总第 1 3 4期)
信 息 通 信
I NF ORM AT I ON & COM M UNI CAT I m .N o 1 3 4 )
l i n u x字符设备 驱动程序设计完全剖析
刘光 然
( 湖北经济学院 电子工程 系, 湖北 武汉 4 3 0 2 0 5 )
7 8

/ . 1 E E ̄F 5 , 6 , 7 , 8 为输出. / * @l e o n & | 0 I 3 【 4 ‘ 2 ) ) l } = ( ( 伽 I ( 眦
r e t u r n0 :
2 ) ) I 蜘 ‘ 2 ) ) ) ; I ( 岫 ;
3 个 LED灯 的 引 脚
是 GP F4 —6
i n t e r f a c e ) 。其 中,字符 设备 是能够 像 字节 流一 样被 访 问的 设备 , 即对数 据 的读写 是 以字节 为单 位 的。字 符设 备 的驱 动程 序 中实现 了 o p e n 、 c l o s e 、 r e a d 、 wr i t e 等系统 调用 , 应用 程序 可 以通 过字 符设 备文件 ( 比如/ d e v / x y z ) 来访 问对 应 的 硬件 设 备 。

I I 鼠 1 7
1 8
‘ 鲫幽 l & | 《 I ( 1 《 I ( 1

e h e
图2 L i n u x软件系统 的层次关 系( s wi 是 AR M 指令 )
1 9
2 o

设备驱动最通俗 的解释就是“ 驱使 硬件设备 行动” 。设备
备驱 动程 序 的全 部 知识 点 。
3 . 1字符 设备 驱动 程序 l e d d r v . c 源码 分 析
L e d驱动程序源代码 l e d d r v . c ( 为 了减少篇幅 , 同时 不会
影 响理解 , 把头文件都略去) 。注 : 采 用序 号给 每一行代码编
号, 空行不编号 。 框 架 化 的代 码 用 下划 线 标 示 了 。