1 / 73
文档名称:

嵌入式系统开发 第8章 嵌入式LINUX设备驱动开发.pdf

格式:pdf   页数:73页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

嵌入式系统开发 第8章 嵌入式LINUX设备驱动开发.pdf

上传人:小猪猪 2011/11/30 文件大小:0 KB

下载得到文件列表

嵌入式系统开发 第8章 嵌入式LINUX设备驱动开发.pdf

文档介绍

文档介绍:嵌入式系统开发

第8章嵌入式LINUX设备驱动开发
授课教师:江兰帆
E-Mail: jiang_lanfan@
引言
Linux和其他操作系统一样,支持众
多的、各式各样的外接设备。
但是,面对层出不穷的新硬件产品,
必须有人不断编写新的驱动程序,以便
让这些设备能够在 Linux 下正常工作,
从这个意义上讲,讲述驱动程序的编写
就是一件非常有意义的工作。
本章提要
11 Linux device driver 基本概念
22 Linux系统内核模块
33 重要数据结构与函数
44 驱动程序的实现
55 实例分析
Linux device driver 的概念
z 系统调用是操作系统内核和应用程序之
间的接口;
z 设备驱动程序是操作系统内核和机器硬
件之间的接口;
z 设备驱动程序为应用程序屏蔽了硬件的
细节,这样在应用程序看来,硬件设备
只是一个设备文件,应用程序可以象操
作普通文件一样对硬件设备进行操作。
Linux device driver 的概念
设备驱动程序是内核的一部分,它完成以
下的功能:
1. 对设备初始化和释放。
2. 把数据从内核传送到硬件和从硬件读取
数据。
3. 读取应用程序传送给设备文件的数据和
回送应用程序请求的数据。
4. 检测和处理设备出现的错误。
Linux device driver 的概念
Linux操作系统将所有的设备全部看成文件,
并通过文件的操作界面进行操作。这意味着:
•每一个设备都有一个“文件名”。
•应用程序通常可以通过系统调用open()打开设
备文件,建立起与目标设备的连接。
•打开了代表着目标设备的文件,即建立起与设
备的连接后,可以通过read()、write()、
ioctl()等常规的文件操作对目标设备进行操作。
设备驱动程序的分类
1. 字符设备
z 所有能够象字节流一样访问的设备都通过
字符设备来实现
z 它们被映射为文件系统中的节点,通常在
/dev/目录下面
z 一般要包含open、read、 write、 close等
系统调用的实现
设备驱动程序的分类
2. 块设备
z 通常是指诸如磁盘、内存、Flash等可以容
纳文件系统的存储设备。
z 块设备也是通过文件系统来访问,与字符
设备的区别是:内核管理数据的方式不同
z 它允许象字符设备一样以字节流的方式来
访问,也可一次传递任意多的字节。
设备驱动程序的分类
3. 网络接口设备
z 通常它指的是硬件设备,但有时也可能是
一个软件设备(如回环接口loopback),它
们由内核中网络子系统驱动,负责发送和
接收数据包。
z 它们的数据传送往往不是面向流的,因此
很难将它们映射到一个文件系统的节点上。
相关基本概念
设备文件的属性由三部分信息组成:
z 文件的类型惟一地确定了设备文

z 一个主设备号件驱动程序及其界面
z 一个次设备号
说明目标设备是同类设备中的第几个