标题：嵌入式Linux驱动程序开发实例教程
图书信息
  嵌入式Linux驱动程序开发实例教程作者： 张光建(作者), 刘政(作者)
出版社: 清华大学出版社; 第1版 (2011年9月1日) 
丛书名: 21世纪高等学校嵌入式系统专业规划教材 
平装: 175页 
正文语种: 简体中文 
开本: 16 
ISBN: 9787302260592 
条形码: 9787302260592 
商品尺寸: 25.6 x 18.2 x 0.8 cm 
商品重量: 363 g
内容简介
《嵌入式Linux驱动程序开发实例教程》详细介绍了计算机的嵌入式Linux系统的三类驱动程序开发方法。全书共分10章。前面4章简要介绍Linux操作系统的操作、嵌入式Linux驱动开发环境的建立方法以及Linux驱动程序开发所需要的内核基础。第5章和第6章介绍字符驱动程序的设计方法，第7章和第8章介绍块设备驱动程序的设计方法，第9章和第10章介绍网络驱动程序的设计方法。每类驱动程序分别从数据结构、驱动架构、驱动模块设计三方面进行了介绍，每类驱动程序都配置了一个模拟驱动小实例，通过这些小实例，可以深入理解各类驱动程序的架构。每类驱动程序还配置了一个真实外部设备的驱动程序开发实例。
《嵌入式Linux驱动程序开发实例教程》实例丰富，通俗易懂，可作为高等学校计算机科学与技术、软件工程等专业学生学习嵌入式技术的教材，也可以作为计算机相关专业学生学习操作系统的提高教材，还可作为工程技术人员设计Linux驱动程序的参考书。
目录
第1章 设备驱动概述
1.1 设备驱动程序的作用
1.1.1 嵌入式系统的硬件组成
1.1.2 嵌入式系统的软件组成
1.1.3 驱动程序的作用
1.2 Linux设备驱动
1.2.1 Linux设备驱动程序的分类及特点
1.2.2 Linux设备驱动程序与整个软件系统的关系
1.3 Linux设备驱动程序开发技术的学习方法
习题1
第2章 Linux基本操作
2.1 Linux常用命令
2.1.1 文件及目录操作命令
2.1.2 显示命令
2.1.3 文件压缩及解压命令
2.1.4 网络命令
2.1.5 改变文件访问权限的命令
2.1.6 帮助命令
2.1.7 安装卸载文件系统命令
2.2 Linux基本编程
2.2.1 emacs编辑器
2.2.2 使用gcc编译程序
2.2.3 make命令
2.2.4 描述文件
习题2
第3章 嵌入式Linux驱动程序开发环境的建立
3.1 交叉编译环境的建立
3.2 超级终端的配置
3.3 文件共享的配置
3.3.1 配置防火墙
3.3.2 配置samba使Windows与Linux共享
3.3.3 配置NFS使宿主机Linux与目标机Linux共享
习题3
第4章 Linux设备驱动内核基础
4.1 Linux设备的表示
4.2 设备文件系统（devfs）
4.3 模块
4.4 I/O端口的访问
4.5 中断管理
4.5.1 中断的注册
4.5.2 中断的释放
4.5.3 中断处理例程
4.5.4 中断的禁止和使能
4.6 设备驱动程序中的并发控制
4.6.1 信号量的初始化
4.6.2 信号量的申请
4.6.3 信号量的释放
4.7 内核空间和用户空间数据复制
4.8 使用printk()函数调试设备驱动程序
习题4
第5章 字符设备驱动程序
5.1 有关字符设备的数据结构
5.1.1 file_operations结构
5.1.2 file结构
5.1.3 chrdevs数组
5.2 字符设备驱动程序的设计
5.2.1 字符设备驱动程序的组成
5.2.2 file_operations结构体变量
5.2.3 字符设备驱动程序的加载及卸载函数
5.2.4 字符设备驱动程序的接口函数
5.3 访问字符设备的系统调用
5.3.1 open()函数和create()函数
5.3.2 close()函数
5.3.3 read()函数
5.3.4 write()函数
5.3.5 应用举例
5.4 内核访问字符设备驱动程序的流程
5.4.1 open()系统调用的执行流程
5.4.2 read()和write()系统调用的执行流程
5.4.3 close()系统调用的执行流程
5.5 字符设备驱动程序示例：虚拟字符设备驱动程序
5.5.1 虚拟字符设备驱动程序代码
5.5.2 测试程序代码
5.5.3 虚拟字符设备驱动程序的编译
5.5.4 虚拟字符设备驱动程序的测试
习题5
第6章 字符设备驱动程序实例：S3C2410ADC驱动程序
6.1 S3C2410X的ADC概述
6.1.1 S3C2410XADC的转换频率及转换时间
6.1.2 S3C2410X与A/D转换有关的寄存器
6.2 S3C2410X的ADC驱动程序设计
6.2.1 ADC驱动程序需要包含的头文件
6.2.2 ADC驱动程序的file_operations结构体变量
6.2.3 ADC驱动程序的加载函数
6.2.4 ADC驱动程序的卸载函数
6.2.5 ADC驱动程序的接口函数
6.2.6 ADC中断处理函数
6.3 ADC驱动程序的编译及测试
6.3.1 测试程序
6.3.2 ADC驱动程序的编译
6.3.3 ADC驱动程序的测试
习题6
第7章 块设备驱动程序
7.1 有关块设备的数据结构
7.1.1 block_device_operations结构
7.1.2 gendisk结构
7.1.3 request_queue结构
7.1.4 buffer_head结构
7.1.5 request结构
7.2 块设备驱动程序的设计
7.2.1 块设备驱动程序的组成
7.2.2 文件包含与宏定义
7.2.3 block_device_operations结构体变量
7.2.4 块设备驱动程序的接口函数
7.2.5 块设备驱动程序的request()函数
7.2.6 块设备驱动的加载函数
7.2.7 块设备驱动的卸载函数
7.3 块设备驱动程序示例：虚拟块设备驱动程序
7.3.1 虚拟块设备驱动程序代码
7.3.2 虚拟块设备驱动程序的编译
7.3.3 虚拟块设备驱动程序的测试
习题7
第8章 块设备驱动程序实例：SD卡驱动程序
8.1 SD卡功能概述
8.1.1 总线协议
8.1.2 SD卡的引脚
8.1.3 SD卡的命令
8.1.4 SD卡的响应
8.1.5 SD卡的寄存器
8.1.6 SD卡的状态及操作模式
8.2 S3C2410XSDI接口概述
8.2.1 SDI寄存器
8.2.2 SDI的初始化
8.2.3 SD卡命令的发送
8.2.4 数据的读写
8.3 基于S3C2410X的SD卡驱动程序设计
8.3.1 SD卡驱动程序的加载函数
8.3.2 SD卡驱动程序的卸载函数
8.3.3 SD卡驱动程序的接口函数
8.3.4 SD卡驱动程序的request()函数
8.4 SD卡驱动程序的编译及测试
8.4.1 SD卡驱动程序的编译
8.4.2 SD卡驱动程序的测试
习题8
第9章 网络设备驱动程序
9.1 有关网络设备的数据结构
9.1.1 net_device结构体
9.1.2 sk_buff结构体
9.2 网络设备驱动程序开发常用的内核函数
9.2.1 sk_buff结构操作函数
9.2.2 内存申请和释放函数
9.2.3 网络驱动程序注册和解除注册函数
9.2.4 以太网设备通用初始化函数
9.2.5 发送队列的启动、唤醒及停止函数
9.2.6 查询网络设备是否在运行的函数
9.2.7 向上层传递数据包的函数
9.3 网络设备驱动程序的设计
9.3.1 网络设备驱动程序的组成
9.3.2 网络设备驱动程序的加载函数
9.3.3 网络设备驱动程序的卸载函数
9.3.4 网络设备驱动程序的接口函数
9.3.5 网卡中断处理程序
9.4 网络设备驱动程序示例：虚拟网络设备驱动程序
9.4.1 虚拟网络设备驱动程序代码
9.4.2 虚拟网络设备驱动程序的编译
9.4.3 虚拟网络设备驱动程序的测试
习题9
第10章 网络设备驱动程序实例：AX88796驱动程序
10.1 AX88796芯片与CPU的接口
10.1.1 AX88796与CPU的接口信号
10.1.2 S3C2410CPU与AX88796接口的信号
10.1.3 S3C2410CPU与网卡芯片接口相关的寄存器
10.1.4 UP-NETARM2410-S中AX88796与S3C2410CPU的连接
10.2 AX88796MAC核心寄存器
10.2.1 MAC核心寄存器概述
10.2.2 常用的MAC核心寄存器
10.3 AX88796芯片的缓冲区操作
10.3.1 数据包的接收
10.3.2 数据包的发送
10.3.3 填充数据包到发送缓冲区以及从接收缓冲区环移走数据包
10.4 AX88796驱动程序设计
10.4.1 AX88796.h
10.4.2 AX88796驱动程序的加载函数
10.4.3 AX88796驱动程序的卸载函数
10.4.4 AX88796驱动程序的接口函数
10.4.5 AX88796驱动程序的中断处理程序
10.5 AX88796驱动程序的编译及测试
10.5.1 AX88796网络驱动程序的编译
10.5.2 AX88796驱动程序的测试
习题10
参考文献