![ARM嵌入式Linux系统构建与驱动开发范例](https://cover.qianqiantushu.cc/21/s6d287f3.jpg)
![ARM嵌入式Linux系统构建与驱动开发范例](https://cover.qianqiantushu.cc/21/s6d287f3.jpg)
ARM嵌入式Linux系统构建与驱动开发范例PDF电子书下载
- 电子书积分:13 积分如何计算积分?
- 作 者:周立功,陈明计,陈渝著
- 出 版 社:北京:北京航空航天大学出版社
- 出版年份:2006
- ISBN:7810777491
- 页数:385 页
1.1 μClinux简介 1
第1章 μClinux内核简介 1
1.2 μClinux内核与传统Linux内核的比较 2
1.3 μClinux运行条件 5
1.4 μClinux的目录结构 5
1.5 μClinux的开发流程 6
1.5.1 编译μClinux内核 6
1.5.2 创建文件系统 8
本章小结 10
2.1 GNU Tools简介 11
第2章 使用GNU Tools建立μClinux开发环境 11
2.2 GCC编译器 13
2.2.1 GCC使用示例 14
2.2.2 编译内核时使用的编译选项 20
2.3 binutils二进制工具集 21
2.3.1 ar软件 22
2.3.2 nm软件 24
2.3.3 objcopy软件 27
2.3.4 objdump软件 29
2.3.5 readelf软件 32
2.4 ld链接器 33
2.4.1 ld选项 34
2.4.2 链接描述文件介绍 35
2.4.3 链接描述文件的语法 36
2.4.4 链接描述文件例子 39
2.5 make介绍 42
2.5.1 GNU make简介 42
2.5.2 Makefile及其语法 43
2.5.3 μClinux-dist2.4中的Makefile分析 52
2.6.1 GDB简介 58
2.6 GDB调试器 58
2.6.2 GDB调试程序示例 59
2.6.3 gdbserver介绍 62
2.7 GNU Tools的制作和安装 63
2.7.1 从源码制作交叉编译环境 63
2.7.2 安装二进制的交叉工具链arm-elf工具 63
2.8 使用GNU Tools编译μClinux内核和应用程序 64
2.8.1 使用GNU Tools编译μClinux内核 64
2.8.2 使用GNU Tools在μClinux中编译应用程序 68
本章小结 70
3.2 移植内核 71
3.1 选择开发环境 71
第3章 移植μClinux到LPC2200实例 71
3.2.1 增加体系架构和机型相关的代码 72
3.2.2 添加中断系统 74
3.2.3 增加其他代码 83
3.2.4 修改Makefile和配置菜单 95
3.3 移植驱动程序 98
3.3.1 时钟驱动程序的移植 98
3.3.2 串口驱动程序的移植 100
本章小结 101
4.1.1 驱动程序分类 102
第4章 μClinux设备驱动程序概述 102
4.1 设备驱动程序基础知识 102
4.1.2 加载和删除驱动程序 103
4.2 最简单的内核模块 104
4.2.1 内核模块的概念 104
4.2.2 编写内核模块 104
4.2.3 关于内核模块初始化(加载)函数 106
4.2.4 关于内核模块清除(卸载)函数 106
4.2.5 关于printk()函数 106
4.3.1 Makefile文件整体介绍 107
4.3 编写Makefile文件 107
4.3.2 Makefile文件中的变量 108
4.3.3 Makefile文件中的规则 109
本章小结 111
第5章 字符设备驱动程序初步 112
5.1 几个概念 112
5.1.1 关于主设备号和从设备号 112
5.1.2 关于设备节点、节点文件和设备文件 112
5.2 最简单的字符设备驱动程序 113
5.2.1 驱动程序代码 113
5.2.3 驱动程序的清除函数 116
5.2.2 驱动程序的初始化函数 116
5.2.4 保存设备信息的结构体 117
5.2.5 关于file结构 122
5.2.6 内核空间与用户空间交换数据 125
5.2.7 内核空间与I/O空间交换数据 126
5.2.8 ioctl()方法的编写 127
5.2.9 一些宏定义 130
5.2.10 关于头文件 130
5.3.3 接口函数 131
5.3.2 加载驱动程序 131
5.3 使用字符设备驱动程序 131
5.3.1 建立设备文件 131
5.2.11 其他说明 131
5.3.4 示例代码 137
5.3.5 编写Makefile文件 138
本章小结 139
第6章 GPIO(字符设备)驱动程序编写范例 140
6.1 在应用程序中使用GPIO驱动程序 140
6.1.1 建立设备文件 140
6.1.2 可使用的函数 140
6.1.3 提供给应用程序的头文件 141
6.1.4 设置GPIO口数据传输方向 142
6.1.5 让GPIO口输出指定电平 144
6.1.6 读GPIO口输出电平 146
6.1.7 读GPIO口引脚上的电平 147
6.2 编译 148
6.3 源码分析 149
6.3.1 初始化函数 149
6.3.2 清除函数 150
6.3.3 open()方法 150
6.3.5 ioctl()方法 151
6.3.4 release()方法 151
6.3.6 其他说明 158
本章小结 159
第7章 PWM(字符设备)驱动程序编写范例 160
7.1 在应用程序中使用PWM驱动程序 160
7.1.1 建立设备文件 160
7.1.2 可使用的函数 161
7.1.3 提供给应用程序的头文件 161
7.1.4 PWM总体控制 163
7.1.6 禁止某路PWM输出 164
7.1.5 允许某路PWM输出 164
7.1.7 设置某路PWM高电平宽度 165
7.2 编译 166
7.3 源码分析 167
7.3.1 为驱动程序增加中断服务程序 167
7.3.2 关于临界区 169
7.3.3 初始化函数 170
7.3.4 清除函数 170
7.3.5 open()方法及中断处理 171
7.3.6 release()方法 172
7.3.7 ioctl()方法 173
7.3.8 其他说明 179
本章小结 179
第8章 A/D(字符设备)驱动程序编写范例 180
8.1 在应用程序中使用A/D驱动程序 180
8.1.1 建立设备文件 180
8.1.2 可使用的函数 181
8.1.3 提供给应用程序的头文件 181
8.1.4 设置A/D工作频率 182
8.1.5 设置A/D转换精度 182
8.2 编译 183
8.1.6 读取A/D转换结果 183
8.3 源码分析 184
8.3.1 初始化函数 184
8.3.2 清除函数 185
8.3.3 open()方法 186
8.3.4 release()方法 187
8.3.5 ioctl()方法 188
8.3.6 read()方法 189
8.3.7 其他说明 191
本章小结 191
9.1.1 建立设备文件 192
第9章 SPI(字符设备)驱动程序编写范例 192
9.1 在应用程序中使用SPI驱动程序 192
9.1.2 使用SPI的特殊注意点 193
9.1.3 可使用的函数 193
9.1.4 提供给应用程序的头文件 194
9.1.5 设置SPI分频值 195
9.1.6 SPI时钟相位控制 195
9.1.7 SPI时钟极性控制 196
9.1.8 SPI数据传输顺序控制 197
9.1.10 发送同时接收一字节数据 198
9.1.9 开始和结束SPI操作 198
9.1.11 写数据到SPI从器件 199
9.1.12 从SPI从器件读数据 199
9.2 编译 200
9.3 源码分析 201
9.3.1 初始化函数 201
9.3.2 清除函数 201
9.3.3 open()方法 202
9.3.4 release()方法 204
9.3.5 ioctl()方法 205
9.3.6 write()方法 209
9.3.7 read()方法 211
9.3.8 其他说明 212
本章小结 212
第10章 I2C(字符设备)驱动程序编写范例 213
10.1 在应用程序中使用I2C总线驱动程序 213
10.1.1 建立设备文件 213
10.1.2 可使用的函数 214
10.1.3 提供给应用程序的头文件 214
10.1.5 写数据到I2C从器件 215
10.1.4 设置I2C总线频率 215
10.1.6 从I2C从器件读数据 216
10.2 编译 216
10.3 源码分析 217
10.3.1 初始化函数 217
10.3.2 清除函数 218
10.3.3 open()方法 218
10.3.4 release()方法 220
10.3.5 I2C中断处理 220
10.3.6 ioctl()方法 223
10.3.7 write()方法 225
10.3.8 read()方法 226
本章小结 227
10.3.9 其他说明 227
第11章 块设备驱动程序初步 228
11.1 几个概念 228
11.1.1 关于主设备号和从设备号 228
11.1.2 关于设备节点、节点文件和设备文件 228
11.2 最简单的块设备驱动程序 229
11.2.1 驱动程序代码 229
11.2.2 注册初始化函数和清除函数 231
11.2.4 驱动程序的清除函数 232
11.2.3 驱动程序的初始化函数 232
11.2.5 保存设备信息的结构体 233
11.2.6 一些宏定义 238
11.2.7 关于头文件 238
11.2.8 其他说明 239
11.3 使用块设备 239
11.3.1 建立设备文件 239
11.3.2 加载驱动程序 239
本章小结 240
11.3.5 卸载驱动程序 240
11.3.4 取消目录映射 240
11.3.3 把块设备(的某个分区)映射到指定的目录 240
第12章 简单的块设备编写范例 241
12.1 使用范例 241
12.1.1 范例简介 241
12.1.2 编译驱动程序 241
12.1.3 使用驱动程序 242
12.2 范例程序源码分析 244
12.2.1 关于主设备号 244
12.2.3 驱动程序的初始化函数 246
12.2.2 几个数据结构 246
12.2.4 驱动程序的清除函数 247
12.2.5 open()方法 248
12.2.6 release()方法 250
12.2.7 ioctl()方法 251
12.2.8 check_media_change()方法 253
12.2.9 revalidate()方法 253
12.2.10 关于数据传输 254
12.2.11 其他说明 260
本章小结 260
13.1.2 ZLG/FS简介 261
13.1.1 驱动程序简介 261
第13章 基于ZLG/FS驱动程序的通用块设备驱动程序 261
13.1 背景知识 261
13.2 ZLG/FS V1.10驱动程序使用指南 263
13.2.1 接口函数 263
13.2.2 参数 263
13.3 使用范例 266
13.3.1 编译驱动程序 266
13.3.2 使用驱动程序 267
13.4 范例程序源码分析 269
13.4.1 块设备信息结构体 270
13.4.2 注册ZLG/FS V1.10驱动程序 271
13.4.3 注销ZLG/FS V1.10驱动程序 271
13.4.4 关于分区设备 272
13.4.5 检测分区 273
13.4.6 驱动程序的初始化函数 276
13.4.7 驱动程序的清除函数 277
13.4.8 open()方法 278
13.4.9 release()方法 280
13.4.10 ioctl()方法 282
13.4.11 check_media change()方法 284
13.4.12 revalidate()方法 285
13.4.13 数据传输 286
13.4.14 其他说明 290
本章小结 290
第14章 转换ZLG/FS V1.10驱动为μClinux驱动 291
14.1 转换步骤 291
14.2 转换实例之CF卡驱动 295
14.3 转换实例之SD卡驱动 297
14.4 转换实例之ZLG/FFS驱动 299
14.5.1 驱动程序的初始化函数 302
14.5 模板源码分析 302
14.5.2 驱动程序的清除函数 303
14.5.3 open()方法 303
14.5.4 release()方法 304
14.5.5 get_info()方法 304
14.5.6 其他说明 306
本章小结 306
第15章 网络设备驱动程序初步 307
15.1 最简单的网络设备驱动程序 307
15.1.1 驱动程序代码 307
15.1.2 驱动程序的初始化函数 310
15.1.3 驱动程序的清除函数 311
15.1.4 保存设备信息的结构体 311
15.1.5 数据接收与中断服务程序 319
15.1.6 关于头文件 321
15.1.7 其他说明 321
15.2 使用网络设备驱动程序 321
本章小结 322
第16章 RTL8019驱动程序编写范例 323
16.1 硬件原理 323
16.2 使用源代码 325
16.3 源码分析 326
16.3.1 初始化函数 326
16.3.2 清除函数 327
16.3.3 init()方法 327
16.3.4 open()方法 329
16.3.5 stop()方法 332
16.3.6 set_config()方法 333
16.3.7 hard_start_xmit()方法 333
16.3.8 set_mac_address()方法 335
16.3.9 中断服务程序 336
本章小结 340
第17章 DM9000驱动程序编写范例 341
17.1 硬件原理 341
17.2 使用源代码 341
17.3 源码分析 344
17.3.1 头文件DM9000.h 344
17.3.2 底层硬件操作函数 346
17.3.3 初始化函数 348
17.3.4 清除函数 349
17.3.5 init()方法 349
17.3.6 open()方法 351
17.3.7 stop()方法 354
17.3.8 set_config()方法 355
17.3.9 hard_start_xmit()方法 356
17.3.10 set_mac_address()方法 357
17.3.11 中断服务程序 358
本章小结 360
附录A 版权声明及许可协议 363
附录B SmartARM2200教学实验开发平台 363
B.1 产品概述 363
B.3 产品特点 364
B.2 产品目标 364
B.4 产品组成 368
B.5 硬件结构说明 369
B.6 应用环境 369
B.7 产品部件规格描述 369
附录C MagicARM2200教学实验开发平台 370
C.1 产品概述 370
C.2 产品目标 371
C.3 产品特点 371
C.4 产品组成 376
C.7 产品部件规格描述 377
C.5 硬件结构说明 377
C.6 应用环境 377
附录D MagicARM2200-S教学实验开发平台 378
D.1 产品概述 378
D.2 产品目标 379
D.3 产品特点 379
D.4 产品组成 382
D.5 硬件结构说明 384
D.6 应用环境 384
D.7 产品部件规格描述 384
- 《物联网与嵌入式技术及其在农业上的应用》马德新 2019
- 《学校教育指标系统的构建》杨向东著 2019
- 《中国二氧化碳减排和环境协同效益评价模型的构建与研究》杨曦,滕飞著 2019
- 《磁性核壳结构吸波材料构建与制备》刘渊,陈桂明,王炜著 2019
- 《地方文化特色历史课堂与学科体系的构建》刘金林,聂亚珍 2019
- 《“一带一路”倡议下中国城市形象与城市文化的构建》李莹著 2019
- 《深圳市土壤环境技术体系构建研究》郗秀平等编著 2019
- 《新中东秩序构建与中国对中东战略》唐志超著 2018
- 《四川省广场健身舞科学理论与实践体系构建》李鸿,王莉丽,邱建钢著 2017
- 《软权力构建路径之探讨 以英法在非洲软权力构建为例》杨鸿柳著 2019
- 《中风偏瘫 脑萎缩 痴呆 最新治疗原则与方法》孙作东著 2004
- 《水面舰艇编队作战运筹分析》谭安胜著 2009
- 《王蒙文集 新版 35 评点《红楼梦》 上》王蒙著 2020
- 《TED说话的力量 世界优秀演讲者的口才秘诀》(坦桑)阿卡什·P.卡里亚著 2019
- 《燕堂夜话》蒋忠和著 2019
- 《经久》静水边著 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《微表情密码》(波)卡西亚·韦佐夫斯基,(波)帕特里克·韦佐夫斯基著 2019
- 《看书琐记与作文秘诀》鲁迅著 2019
- 《酒国》莫言著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019