第1篇 Linux基础知识 2
第1章 嵌入式基础入门 2
1.1 嵌入式操作系统简介 2
1.1.1 嵌入式系统的基本概念 2
1.1.2 嵌入式系统的内核介绍 3
1.1.3 嵌入式系统的应用领域 4
1.2 Linux操作系统概述 5
1.2.1 嵌入式Linux发展现状 5
1.2.2 Linux相关的常用术语 6
1.3 Linux操作系统的移植 8
1.3.1 BootLoader技术详解 8
1.3.2 Linux内核基本结构 17
1.3.3 移植Linux操作系统 28
1.4 本章总结 32
第2章 Linux系统开发环境平台 33
2.1 进程/线程管理 33
2.1.1 进程/线程的概念 33
2.1.2 进程基本操作 37
2.1.3 进程通信与同步 49
2.1.4 线程基本操作 57
2.1.5 简单的多线程编程 59
2.2 文件系统结构和类型 62
2.2.1 FAT文件系统 62
2.2.2 RAMFS内核文件系统 66
2.2.3 JFFS与YAFFS文件系统 68
2.2.4 EXT2/EXT3文件系统 71
2.2.5 /proc文件系统 74
2.2.6 Linux文件操作函数 75
2.3 存储管理 79
2.3.1 MTD内存管理 79
2.3.2 Linux内存管理 83
2.4 设备管理 84
2.4.1 概述 84
2.4.2 字符设备与块设备 84
2.4.3 主设备号和次设备号 87
2.5 本章总结 88
第3章 嵌入式Linux程序设计基础 89
3.1 建立嵌入式Linux交叉编译环境 89
3.1.1 编译环境概述 89
3.1.2 建立交叉编译环境流程 92
3.2 工程管理器make 97
3.2.1 make概述 97
3.2.2 Makfile文件书写规则 101
3.3 Linux C/C++程序设计 104
3.3.1 C/C++程序结构 104
3.3.2 C/C++数据类型 107
3.3.3 表达式/语句、函数 108
3.3.4 C/C++设计注意事项 111
3.4 Linux汇编程序设计 117
3.4.1 Linux汇编语法格式 118
3.4.2 汇编程序实例 119
3.5 Linux Shell语言编程 120
3.5.1 Shell环境变量及配置文件 121
3.5.2 Shell编程实例 123
3.6 Linux Perl语言编程 124
3.6.1 Perl基本程序 124
3.6.2 Perl变量 125
3.6.3 文件句柄和文件操作 128
3.6.4 循环结构 129
3.6.5 条件结构 130
3.7 本章总结 131
第4章 Linux常用开发工具 132
4.1 GCC编译器 132
4.1.1 GCC版本信息 132
4.1.2 GCC目录结构 132
4.1.3 GCC执行过程 133
4.1.4 GCC的基本用法和选项 134
4.1.5 g++ 134
4.2 gdb调试器 135
4.2.1 基本用法和选项 135
4.2.2 gdb常用命令 135
4.3 Linux汇编工具 136
4.3.1 汇编器 136
4.3.2 链接器&1 36
4.3.3 调试器 137
4.3.4 系统调用 137
4.3.5 命令行参数 137
4.3.6 GCC内联汇编 138
4.4 Linux调试工具 139
4.4.1 JTAG调试工具 139
4.4.2 kgdb内核调试环境 144
4.5 Linux图形开发工具 149
4.5.1 GUI图形界面开发 149
4.5.2 GTK图形开发工具 157
4.5.3 QT图形开发工具 161
4.6 本章总结 167
第2篇 Linux驱动程序开发与实例第5章 Linux设备驱动基础 170
5.1 驱动程序基本概念 170
5.1.1 驱动程序与应用程序的区别 170
5.1.2 内核版本与编译器的版本依赖 171
5.2 设备驱动模块概述 171
5.2.1 模块的基本概念 171
5.2.2 模块的初始化和退出 172
5.2.3 Linux内核模块加载 174
5.3 Linux设备驱动结构分析 176
5.3.1 内核和用户接口 176
5.3.2 inode节点 177
5.3.3 File结构 178
5.4 常用接口函数介绍 181
5.5 驱动程序的调试 187
5.6 本章总结 189
第6章 网卡驱动程序开发 190
6.1 网卡概述 190
6.2 RTL8193网卡驱动 190
6.2.1 网卡驱动的初始化 191
6.2.2 网卡数据收发 197
6.3 典型实例——Ralink无线网卡驱动开发 198
6.3.1 Ralink无线网卡 198
6.3.2 802.11无线通信协议的选用 199
6.3.3 设备驱动关键数据结构 200
6.3.4 rt2500无线网卡驱动分析 202
6.3.5 rt2500程序源代码 207
6.4 本章总结 215
第7章 显卡驱动程序开发 216
7.1 显卡驱动概述 216
7.1.1 Linux framebuffer 216
7.1.2 帧缓冲设备数据结构 220
7.2 典型实例——显卡Framebuffer驱动实现 225
7.2.1 Framebuffer驱动框架程序 225
7.2.2 NVDIA显卡设备驱动文件 231
7.3 本章总结 233
第8章 声卡驱动程序开发 234
8.1 声卡驱动概述 234
8.2 OSS声卡驱动 234
8.3 ALSA声卡驱动 235
8.4 典型实例——AC97声卡驱动实现 237
8.4.1 AC97驱动分析 237
8.4.2 Realtek声卡驱动配置 241
8.5 本章总结 243
第9章 USB驱动程序开发 244
9.1 USB设备驱动概述 244
9.2 USB驱动设备示例 245
9.2.1 Linux驱动程序概述 245
9.2.2 驱动程序分析 246
9.3 典型实例——单片机的主从通信实例 253
9.3.1 主从通信介绍 253
9.3.2 USB设备驱动程序 254
9.3.3 主机程序源代码 260
9.4 本章总结 261
第10章 闪存Flash驱动程序开发 262
10.1 Flash闪存基础 262
10.2 Flash MTD技术 264
10.3 典型实例1——NAND Flash驱动实例 265
10.3.1 NAND Flash驱动设备 265
10.3.2 NAND Flash驱动源代码 266
10.4 典型实例2——NOR Flash驱动实例 270
10.4.1 芯片驱动与MTD原始设备 270
10.4.2 NOR Flash驱动分析 270
10.4.3 NOR Flash驱动源代码 274
10.5 本章总结 276
第3篇 Linux系统开发实例第11章 嵌入式系统开发的模式与流程 278
11.1 嵌入式系统的结构 278
11.1.1 嵌入式系统的硬件架构 278
11.1.2 嵌入式系统的软件结构 278
11.2 嵌入式开发的模式及流程 279
11.2.1 嵌入式系统开发模式 279
11.2.2 嵌入式系统开发流程 280
11.3 本章总结&. 282
第12章 工业温度监控设备开发实例 283
12.1 应用环境与硬件设计概要 283
12.1.1 嵌入式Linux在工业控制领域的应用 283
12.1.2 工控串行通信协议标准 286
12.2 相关开发技术——异步串行通信接口 288
12.2.1 异步串行通信标准 288
12.2.2 设置串口控制信号 290
12.2.3 读入串口控制信号 291
12.2.4 文件Open()系统调用 292
12.3 实例——基于DS1820的实时温度监控系统 292
12.3.1 系统基本结构 293
12.3.2 系统工作流程 296
12.3.3 系统模块源代码实现 298
12.4 本章总结 306
第13章 实时视频采集系统开发实例 307
13.1 应用环境与硬件设计概要 307
13.2 相关开发技术 308
13.2.1 视频图像压缩技术 308
13.2.2 视频采集驱动 310
13.2.3 视频驱动加载运行 313
13.3 实例——基于MV86S02实时视频采集系统设计 313
13.3.1 系统基本结构 313
13.3.2 系统工作流程 316
13.3.3 系统模块源代码实现 319
13.3.4 视频数据比较及分析 335
13.4 本章总结 336
第14章 指纹识别门禁系统开发实例 337
14.1 应用环境与硬件设计概要 338
14.2 相关开发技术 340
14.2.1 指纹识别原理 340
14.2.2 设备驱动编写框架 344
14.2.3 指纹芯片驱动 346
14.3 实例——基于ARM Linux的指纹识别门禁系统 347
14.3.1 系统基本结构 347
14.3.2 系统工作流程 349
14.3.3 系统模块源代码实现 350
14.4 本章总结 360
第15章 基于RTL8019的以太网应用系统开发实例 361
15.1 以太网应用技术概述 361
15.2 相关开发技术 362
15.2.1 基于RTL8019的以太网帧传输原理 362
15.2.2 RTL8019的初始化 363
15.2.3 RTL8019驱动程序的框架 364
15.2.4 数据结构和函数 365
15.2.5 RTL8109驱动程序的加载 368
15.3 实例——基于RTL8019的以太网应用系统设计 368
15.3.1 系统基本结构 368
15.3.2 系统工作流程 371
15.3.3 系统模块源代码实现 372
15.3.4 系统调试 380
15.4 本章总结 381
第16章 无线网络数据传输系统开发实例 382
16.1 无线网络传输系统简介 382
16.2 相关开发技术 383
16.2.1 无线网络接入技术 383
16.2.2 基于PCMCIA的无线网卡接口 385
16.2.3 PCMCIA驱动程序 386
16.3 实例——基于PCMCIA的无线网络嵌入式前端系统设计 387
16.3.1 系统基本结构 387
16.3.2 系统工作流程 389
16.3.3 系统模块源代码实现 391
16.3.4 系统调试 398
16.4 本章总结 398
第17章 基于PDIUSBD12的数据传输系统实例 399
17.1 USB应用环境与硬件设计概要 400
17.2 相关开发技术——USB系统与总线驱动 401
17.2.1 USB系统组成 401
17.2.2 USB Host总线驱动 402
17.2.3 USB Device总线驱动 403
17.3 实例——基于PDIUSBD12的数据传输设计 406
17.3.1 系统基本结构 406
17.3.2 系统工作流程 412
17.3.3 系统模块源代码实现 412
17.4 本章总结 424
第18章 家庭安全监控系统设计实例 425
18.1 应用环境与硬件设计概要 425
18.1.1 系统功能和组成 425
18.1.2 系统模块功能描述 426
18.2 系统硬件结构 430
18.2.1 Linux客户端系统硬件结构 430
18.2.2 传感器系统硬件结构 433
18.3 系统软件结构 435
18.3.1 Linux客户端系统软件结构 435
18.3.2 传感器系统软件结构 438
18.4 Linux客户端系统设计实现 440
18.4.1 系统数据结构设计 440
18.4.2 通信模块设计说明 441
18.4.3 显示模块设计说明 442
18.4.4 用户管理模块设计说明 443
18.4.5 系统设置模块设计说明 445
18.4.6 客户端主要代码与注释 445
18.5 系统主要模块设计实现 447
18.5.1 红外监控模块设计说明 447
18.5.2 报警模块(warnning) 448
18.5.3 触发监控模块 449
18.5.4 管理模块 450
18.5.5 主要代码与注释 453
18.6 本章总结 459
第19章 移动校园系统设计实例 460
19.1 应用环境与硬件设计概要 460
19.1.1 系统功能和组成 460
19.1.2 系统模块功能和软件图 460
19.2 系统硬件结构 462
19.3 系统软件结构 463
19.3.1 软件整体结构 463
19.3.2 软件模块结构 464
19.3.3 接口设计 467
19.3.4 运行过程设计 468
19.3.5 系统数据结构设计 469
19.3.6 搭建开发环境 470
19.4 系统模块程序代码 472
19.4.1 主函数 472
19.4.2 Syllabus课表模块 472
19.4.3 BBS论坛模块 474
19.4.4 Map地图模块 476
19.4.5 Message系统消息模块 478
19.5 本章总结 478