嵌入式Linux驱动程序开发实例教程PDF格式文档图书下载
第1章 设备驱动概述 1
1.1 设备驱动程序的作用 1
1.1.1 嵌入式系统的硬件组成 1
1.1.2 嵌入式系统的软件组成 2
1.1.3 驱动程序的作用 3
1.2 Linux设备驱动 3
1.2.1 Linux设备驱动程序的分类及特点 3
1.2.2 Linux设备驱动程序与整个软件系统的关系 4
1.3 Linux设备驱动程序开发技术的学习方法 5
习题1 5
第2章 Linux基本操作 6
2.1 Linux常用命令 6
2.1.1 文件及目录操作命令 6
2.1.2 显示命令 11
2.1.3 文件压缩及解压命令 11
2.1.4 网络命令 13
2.1.5 改变文件访问权限的命令 14
2.1.6 帮助命令 15
2.1.7 安装卸载文件系统命令 15
2.2 Linux基本编程 17
2.2.1 emacs编辑器 17
2.2.2 使用gcc编译程序 19
2.2.3 make命令 21
2.2.4 描述文件 22
习题2 24
第3章 嵌入式Linux驱动程序开发环境的建立 25
3.1 交叉编译环境的建立 25
3.2 超级终端的配置 26
3.3 文件共享的配置 27
3.3.1 配置防火墙 28
3.3.2 配置samba使Windows与Linux共享 29
3.3.3 配置NFS使宿主机Linux与目标机Linux共享 31
习题3 33
第4章 Linux设备驱动内核基础 34
4.1 Linux设备的表示 34
4.2 设备文件系统(devfs) 34
4.3 模块 36
4.4 I/O端口的访问 38
4.5 中断管理 39
4.5.1 中断的注册 39
4.5.2 中断的释放 39
4.5.3 中断处理例程 40
4.5.4 中断的禁止和使能 40
4.6 设备驱动程序中的并发控制 41
4.6.1 信号量的初始化 41
4.6.2 信号量的申请 42
4.6.3 信号量的释放 42
4.7 内核空间和用户空间数据复制 42
4.8 使用printk()函数调试设备驱动程序 43
习题4 43
第5章 字符设备驱动程序 44
5.1 有关字符设备的数据结构 44
5.1.1 file_operations结构 44
5.1.2 file结构 45
5.1.3 chrdevs数组 46
5.2 字符设备驱动程序的设计 47
5.2.1 字符设备驱动程序的组成 47
5.2.2 file_operations结构体变量 47
5.2.3 字符设备驱动程序的加载及卸载函数 48
5.2.4 字符设备驱动程序的接口函数 48
5.3 访问字符设备的系统调用 49
5.3.1 open()函数和create()函数 50
5.3.2 close()函数 51
5.3.3 read()函数 51
5.3.4 write()函数 52
5.3.5 应用举例 52
5.4 内核访问字符设备驱动程序的流程 53
5.4.1 open()系统调用的执行流程 53
5.4.2 read()和write()系统调用的执行流程 53
5.4.3 close()系统调用的执行流程 54
5.5 字符设备驱动程序示例:虚拟字符设备驱动程序 54
5.5.1 虚拟字符设备驱动程序代码 55
5.5.2 测试程序代码 57
5.5.3 虚拟字符设备驱动程序的编译 58
5.5.4 虚拟字符设备驱动程序的测试 59
习题5 59
第6章 字符设备驱动程序实例:S3C2410.ADC驱动程序 60
6.1 S3C2410X的ADC概述 60
6.1.1 S3C2410X ADC的转换频率及转换时间 60
6.1.2 S3C2410X与A/D转换有关的寄存器 60
6.2 S 3C2410X的ADC驱动程序设计 61
6.2.1 ADC驱动程序需要包含的头文件 62
6.2.2 ADC驱动程序的file_operations结构体变量 62
6.2.3 ADC驱动程序的加载函数 62
6.2.4 ADC驱动程序的卸载函数 63
6.2.5 ADC驱动程序的接口函数 64
6.2.6 ADC中断处理函数 66
6.3 ADC驱动程序的编译及测试 66
6.3.1 测试程序 66
6.3.2 ADC驱动程序的编译 67
6.3.3 ADC驱动程序的测试 68
习题6 69
第7章 块设备驱动程序 70
7.1 有关块设备的数据结构 70
7.1.1 block device operations结构 70
7.1.2 gendisk结构 71
7.1.3 request queue结构 72
7.1.4 buffer_head结构 72
7.1.5 request结构 73
7.2 块设备驱动程序的设计 74
7.2.1 块设备驱动程序的组成 74
7.2.2 文件包含与宏定义 74
7.2.3 block device operations结构体变量 75
7.2.4 块设备驱动程序的接口函数 75
7.2.5 块设备驱动程序的request()函数 79
7.2.6 块设备驱动的加载函数 80
7.2.7 块设备驱动的卸载函数 84
7.3 块设备驱动程序示例:虚拟块设备驱动程序 85
7.3.1 虚拟块设备驱动程序代码 86
7.3.2 虚拟块设备驱动程序的编译 89
7.3.3 虚拟块设备驱动程序的测试 90
习题7 91
第8章 块设备驱动程序实例:SD卡驱动程序 92
8.1 SD卡功能概述 92
8.1.1 总线协议 92
8.1.2 SD卡的引脚 92
8.1.3 SD卡的命令 92
8.1.4 SD卡的响应 96
8.1.5 SD卡的寄存器 97
8.1.6 SD卡的状态及操作模式 101
8.2 S3C2410X SDI接口概述 103
8.2.1 SDI寄存器 103
8.2.2 SDI的初始化 106
8.2.3 SD卡命令的发送 107
8.2.4 数据的读写 107
8.3 基于S3C2410X的SD卡驱动程序设计 107
8.3.1 SD卡驱动程序的加载函数 107
8.3.2 SD卡驱动程序的卸载函数 111
8.3.3 SD卡驱动程序的接口函数 111
8.3.4 SD卡驱动程序的request()函数 111
8.4 SD卡驱动程序的编译及测试 122
8.4.1 SD卡驱动程序的编译 122
8.4.2 SD卡驱动程序的测试 123
习题8 123
第9章 网络设备驱动程序 124
9.1 有关网络设备的数据结构 124
9.1.1 net_device结构体 124
9.1.2 sk_buff结构体 130
9.2 网络设备驱动程序开发常用的内核函数 134
9.2.1 sk_buff结构操作函数 134
9.2.2 内存申请和释放函数 136
9.2.3 网络驱动程序注册和解除注册函数 136
9.2.4 以太网设备通用初始化函数 136
9.2.5 发送队列的启动、唤醒及停止函数 137
9.2.6 查询网络设备是否在运行的函数 137
9.2.7 向上层传递数据包的函数 137
9.3 网络设备驱动程序的设计 137
9.3.1 网络设备驱动程序的组成 137
9.3.2 网络设备驱动程序的加载函数 138
9.3.3 网络设备驱动程序的卸载函数 139
9.3.4 网络设备驱动程序的接口函数 139
9.3.5 网卡中断处理程序 141
9.4 网络设备驱动程序示例:虚拟网络设备驱动程序 142
9.4.1 虚拟网络设备驱动程序代码 142
9.4.2 虚拟网络设备驱动程序的编译 144
9.4.3 虚拟网络设备驱动程序的测试 145
习题9 146
第10 章网络设备驱动程序实例:AX88796驱动程序 147
10.1 AX88796芯片与CPU的接口 147
10.1.1 AX88796与CPU的接口信号 147
10.1.2 S3C2410 CPU与AX88796接口的信号 148
10.1.3 S3C2410 CPU与网卡芯片接口相关的寄存器 149
10.1.4 UP-NETARM 2410-S中AX88796与S3C2410 CPU的连接 151
10.2 AX88796 MAC核心寄存器 152
10.2.1 MAC核心寄存器概述 152
10.2.2 常用的MAC核心寄存器 154
10.3 AX88796芯片的缓冲区操作 157
10.3.1 数据包的接收 157
10.3.2 数据包的发送 160
10.3.3 填充数据包到发送缓冲区以及从接收缓冲区环移走数据包 161
10.4 AX88796驱动程序设计 162
10.4.1 AX88796.h 162
10.4.2 AX88796驱动程序的加载函数 165
10.4.3 AX88796驱动程序的卸载函数 165
10.4.4 AX88796驱动程序的接口函数 165
10.4.5 AX88796驱动程序的中断处理程序 169
10.5 AX88796驱动程序的编译及测试 173
10.5.1 AX88796网络驱动程序的编译 173
10.5.2 AX88796驱动程序的测试 174
习题10 175
参考文献 176
- 《嵌入式GUI开发设计 基于MiniGUI》北京亚嵌教育研究中心组编;韩超编著 2009
- 《嵌入式Linux驱动程序开发实例教程》张光建,刘政编著 2011
- 《嵌入式ARM系统原理与实例开发》杨宗德编著 2007
- 《嵌入式软件开发》陈文智主编;王总辉,胡威编 2015
- 《嵌入式Linux设备驱动开发详解》李俊编著 2008
- 《嵌入式Linux应用程序开发详解》孙琼编著 2006
- 《嵌入式Linux开发教程》宋娟,马华杰主编;王秀友,岳国庆,金京犬副主编 2017
- 《从实践中学嵌入式Linux应用程序开发》华清远见嵌入式学院编著 2012
- 《嵌入式ARM系统原理与实例开发》杨宗德编著 2010
- 《嵌入式Linux驱动程序和系统开发实例精讲》罗苑棠编著 2009
- 《嵌入式Linux驱动程序开发实例教程》张光建,刘政编著 2011
- 《C++语言程序设计》张思民,刘政宇,张光南主编;宋毅,蔡明副主编;杨天明参编 2014
- 《实用外科学 上》张延龄,吴肇汉;蔡端,王国民,秦新裕,丁强,张光健,黄广建副主编 2012
- 《实用外科学 下》张延龄,吴肇汉;蔡端,王国民,秦新裕,丁强,张光健,黄广建副主编 2012
- 《过程控制系统与装置》张宏建,张光新,戴连奎等编著 2012
- 《传感器技术及技能训练》张光建编著 2014
- 《中学历史表解》刘瑞环,刘政编著 1994
- 《数字图象恢复与重建》刘政凯,瞿建雄编著 1989
- 《机械电子学》刘政华等编著 1999
- 《间歇运动机构》刘政昆编著 1991
- 《THE GOVERNMENT/PRESS CONNECTION PRESS OFFICERS AND THEIR OFFICES》STEPHEN HESS 1984
- 《PRESS》POLITICS & PUBLIC OPINION IN BIHAR 1912-1947 2010
- 《Press law》Robin Callender Smith. 1978
- 《SUING THE PRESS》RODNEY A.SMOLLA 1986
- 《THE PRESS AND AMERICA》 2222
- 《FREEDOM OF THE PRESS》ERIC BARENDT 2009
- 《FREEDOM OF THE PRESS》ROB EDELMAN 2006
- 《FREEDOM OF THE PRESS》DAVID L.GEBERT 2005
- 《Racism and the press》Teun A.van Dijk 2016
- 《Im spiegel per presse 1》Albert Schmitz 1983