注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书人文社科法律法律法规经济法ARM嵌入式Linux系统构建与驱动开发范例

ARM嵌入式Linux系统构建与驱动开发范例

ARM嵌入式Linux系统构建与驱动开发范例

定 价:¥38.00

作 者: 周立功等编著
出版社: 北京航空航天大学出版社
丛编项: 周立功公司策划系列丛书
标 签: 微处理器 ARM

ISBN: 9787810777490 出版时间: 2006-02-01 包装: 平装
开本: 16开 页数: 384 字数:  

内容简介

  《ARM嵌入式Linux系统构建与驱动开发范例》介绍μClinux内核编程的一个方面,使用内核模块编写设备驱动程序。主要内容包括:介绍如何建立基于ARM7的交叉开发环境以及如何向ARM7芯片上移植μClinux;分析μClinux上一个已在ARM7上成功运行的最简单的内核模块;介绍μClinux的字符设备驱动程序、块设备驱动程序和网络设备驱动程序的编写、编译及使用,这些范例均在ARM7平台编译和使用,但可以方便地移植到其他平台。《ARM嵌入式Linux系统构建与驱动开发范例》通俗易懂,是一本面向初学者的μClinux内核编程图书,对资深μClinux内核编程人员也有参考价值。可作为高等院校相关专业师生以及从事嵌入式系统应用开发工程师的参考资料。

作者简介

  作者:周立功周立功,男,1964年3月出生,毕业于东华大学自动化及计算机系,高级工程师,中国单片机学会理事,中国海洋大学讲座教授,硕士生导师,主要研究方向为嵌入式系统与现场总线,目前正在从事80C51、ARM与NiosII等软核SoC的研究与开发。1981年6月参加工作,先后在大型国有企业担任过工段长、车间主任、团委书记、厂长、党委书记,先后被评为省及国家级劳动模范与新长征突击手,长期从事微机、单片机与嵌入式系统应用推广、开发工作。早期主要从事6502、Z80、8080及其5G14500(一位机)微机应用开发及工业低温辐射远红外节电技术应用与研究等工作,在1987年就出版过《工业低温辐射远红外节电技术》专著。从1994年11月开始创办了广州周立功单片机发展有限公司、广州致远电子有限公司除担任董事长与总经理之外,还继续从事实际的技术开发工作并任首席系统设计师和软件架构师,致力于单片机与嵌入式系统技术的推广及其产业化工作。深入浅出ARM7:LPC213x/214x(下册)>>更多作品

图书目录

第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章 使用GNU Tools建立μClinux开发环境
2.1 GNU Tools简介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 GDB调试器58
2.6.1 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章 移植μClinux到LPC2200实例
3.1 选择开发环境71
3.2 移植内核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章 μClinux设备驱动程序概述
4.1 设备驱动程序基础知识102
4.1.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 编写Makefile文件107
4.3.1 Makefile文件整体介绍107
4.3.2 Makefile文件中的变量108
4.3.3 Makefile文件中的规则109
本章小结111
第5章 字符设备驱动程序初步
5.1 几个概念112
5.1.1 关于主设备号和从设备号112
5.1.2 关于设备节点、节点文件和设备文件112
5.2 最简单的字符设备驱动程序113
5.2.1 驱动程序代码113
5.2.2 驱动程序的初始化函数116
5.2.3 驱动程序的清除函数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.2.11 其他说明131
5.3 使用字符设备驱动程序131
5.3.1 建立设备文件131
5.3.2 加载驱动程序131
5.3.3 接口函数131
5.3.4 示例代码137
5.3.5 编写Makefile文件138
本章小结139
第6章 GPIO(字符设备)驱动程序编写范例
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.4 release()方法151
6.3.5 ioctl()方法151
6.3.6 其他说明158
本章小结159
第7章 PWM(字符设备)驱动程序编写范例
7.1 在应用程序中使用PWM驱动程序160
7.1.1 建立设备文件160
7.1.2 可使用的函数161
7.1.3 提供给应用程序的头文件161
7.1.4 PWM总体控制163
7.1.5 允许某路PWM输出164
7.1.6 禁止某路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(字符设备)驱动程序编写范例
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.1.6 读取A/D转换结果183
8.2 编译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章 SPI(字符设备)驱动程序编写范例
9.1 在应用程序中使用SPI驱动程序192
9.1.1 建立设备文件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.9 开始和结束SPI操作198
9.1.10 发送同时接收一字节数据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(字符设备)驱动程序编写范例
10.1 在应用程序中使用I2C总线驱动程序213
10.1.1 建立设备文件213
10.1.2 可使用的函数214
10.1.3 提供给应用程序的头文件214
10.1.4 设置I2C总线频率215
10.1.5 写数据到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
10.3.9 其他说明227
本章小结227
第11章 块设备驱动程序初步
11.1 几个概念228
11.1.1 关于主设备号和从设备号228
11.1.2 关于设备节点、节点文件和设备文件228
11.2 最简单的块设备驱动程序229
11.2.1 驱动程序代码229
11.2.2 注册初始化函数和清除函数231
11.2.3 驱动程序的初始化函数232
11.2.4 驱动程序的清除函数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
11.3.3 把块设备(的某个分区)映射到指定的目录240
11.3.4 取消目录映射240
11.3.5 卸载驱动程序240
本章小结240
第12章 简单的块设备编写范例
12.1 使用范例241
12.1.1 范例简介241
12.1.2 编译驱动程序241
12.1.3 使用驱动程序242
12.2 范例程序源码分析244
12.2.1 关于主设备号244
12.2.2 几个数据结构246
12.2.3 驱动程序的初始化函数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章 基于ZLG/FS驱动程序的通用块设备驱动程序
13.1 背景知识261
13.1.1 驱动程序简介261
13.1.2 ZLG/FS简介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驱动

14.1 转换步骤291
14.2 转换实例之CF卡驱动295
14.3 转换实例之SD卡驱动297
14.4 转换实例之ZLG/FFS驱动299
14.5 模板源码分析302
14.5.1 驱动程序的初始化函数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章 网络设备驱动程序初步
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驱动程序编写范例
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驱动程序编写范例
17.1 硬件原理341
17.2 使用源代码341
17.3 源码分析344
17.3.1 头文件DM9000.h344
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 版权声明及许可协议
附录B SmartARM2200教学实验开发平台
B.1 产品概述363
B.2 产品目标364
B.3 产品特点364
B.4 产品组成368
B.5 硬件结构说明369
B.6 应用环境369
B.7 产品部件规格描述369
附录C MagicARM2200教学实验开发平台
C.1 产品概述370
C.2 产品目标371
C.3 产品特点371
C.4 产品组成376
C.5 硬件结构说明377
C.6 应用环境377
C.7 产品部件规格描述377
附录D MagicARM2200S教学实验开发平台
D.1 产品概述378
D.2 产品目标379
D.3 产品特点379
D.4 产品组成382
D.5 硬件结构说明384
D.6 应用环境384
D.7产品部件规格描述384
参考文献  

本目录推荐