第1章 嵌入式系统概述 1
1.1嵌入式系统的基本概念 1
1.1.1嵌入式系统的定义 1
1.1.2嵌入式系统的体系结构 2
1.1.3嵌入式系统的应用 3
1.1.4嵌入式系统的发展 3
1.2嵌入式处理器 4
1.2.1 ARM微处理器概述 4
1.2.2 ARM微处理器系列 5
1.3嵌入式操作系统 8
1.3.1嵌入式操作系统的发展 8
1.3.2嵌入式操作系统的分类 8
1.4嵌入式系统开发的基本流程 9
1.4.1硬件开发流程 10
1.4.2软件开发流程 11
本章小结 11
习题与思考题 12
第2章 Linux应用及编程基础 13
2.1 Linux概述 13
2.1.1 Linux的基本特性 13
2.1.2 Linux的版本 14
2.1.3 Linux的内核架构 15
2.1.4 Linux软件层次结构 16
2.2 Linux的常用命令 17
2.2.1基本操作类命令 18
2.2.2文件系统类命令 21
2.2.3进程控制类命令 25
2.2.4网络管理类命令 26
2.2.5模块操作类命令 27
2.3 Linux下的程序开发工具应用基础 28
2.3.1编辑器 28
2.3.2 GCC编译器 29
2.3.3 GDB调试器 31
2.4 Linux程序编译基础 34
2.4.1 Makefile文件 34
2.4.2 Make工具及其应用 42
本章小结 45
习题与思考题 45
第3章 嵌入式Linux开发环境的构建 46
3.1 Linux环境下的嵌入式系统开发模式 46
3.2嵌入式Linux交叉编译环境的搭建 47
3.2.1宿主机交叉编译工具的配置 47
3.2.2宿主机串口工具的配置与使用 48
3.2.3 NFS安装、配置与测试 52
3.2.4 TFTP安装、配置与测试 53
3.3 UBoot 54
3.3.1 BootLoader简介 54
3.3.2 UBoot代码分析 55
3.3.3 UBoot的移植 59
3.4嵌入式Linux内核的配置编译与移植 65
3.4.1 Linux内核的源代码结构 66
3.4.2 Linux内核中的Kconfig和Makefile文件 67
3.4.3嵌入式Linux内核的配置 69
3.4.4嵌入式Linux内核的编译以及烧写 73
3.5嵌入式Linux根文件系统的构建与移植 74
3.5.1 Linux支持的文件系统 74
3.5.2根文件系统的基础 76
3.5.3 BusyBox的配置与编译 77
3.5.4制作YAFFS2根文件系统镜像 81
本章小结 84
习题与思考题 84
第4章 嵌入式Linux的设备驱动开发基础 85
4.1 Linux设备管理基础 85
4.1.1 Linux设备分类 86
4.1.2 Linux设备文件 86
4.1.3 Linux模块与设备管理 88
4.1.4模块的自动加载 88
4.2 Linux模块化程序的代码结构 88
4.3 Linux字符设备驱动程序 93
4.3.1设备驱动程序框架 94
4.3.2 Linux下设备驱动的数据结构 96
4.3.3 Linux下设备驱动的调用函数 100
4.4 Linux设备驱动的相关技术 101
4.4.1 Linux设备驱动的并发控制 101
4.4.2 Linux设备驱动中的阻塞和非阻塞 104
4.4.3 Linux设备驱动中的异步通知 108
4.5 Linux设备驱动程序的静态编译到内核 109
4.6 Linux设备驱动程序模块的加/卸载 111
4.7 Linux字符设备驱动测试程序代码 113
本章小结 114
习题与思考题 114
第5章 基于S3C2440的嵌入式Linux驱动程序开发 115
5.1 S3C2440的体系结构简介 115
5.2 ARM920T处理器的编程基础 117
5.2.1 ARM9微处理器的工作模式 117
5.2.2 ARM9微处理器的寄存器组织 117
5.2.3 ARM9的存储方式 119
5.2.4 ARM处理器的异常处理 119
5.2.5 S3C2440的存储管理 120
5.2.6 S3C2440的启动过程 122
5.3 S3C2440的GPIO驱动编程 124
5.3.1 S3C2440的GPIO硬件基础 124
5.3.2 S3C2440的GPIO寄存器 125
5.3.3 S3C2440的GPIO驱动程序 126
5.4 S3C2440中断方式的驱动编程 129
5.4.1中断原理 129
5.4.2 S3C2440的中断机制 130
5.4.3 S3C2440的中断寄存器 135
5.4.4 Linux中断相关的API 139
5.4.5 S3C2440的中断程序 140
5.5 S3C2440的串口驱动编程 145
5.5.1 S3C2440的串口通信基础 146
5.5.2 S3C2440的串口驱动编程寄存器 148
5.5.3 S3C2440的串口驱动代码 155
5.6 S3C2440的ADC和触摸屏驱动编程 159
5.6.1 S3C2440的ADC寄存器 159
5.6.2 S3C2440的ADC驱动程序设计 161
5.6.3 S3C2440的触摸屏驱动基础 167
5.6.4 S3C2440的触摸屏寄存器 169
5.6.5 S3C2440的触摸屏程序 170
本章小结 177
习题与思考题 177
第6章 嵌入式Linux系统的Qt编程 178
6.1嵌入式Linux的GUI简介 178
6.2 Qt/Qt/Embedded概述 180
6.2.1 Qt体系架构 180
6.2.2 Qt/Embedded 181
6.2.3 Qtopia 182
6.3 Qt/Embedded程序开发基础 183
6.3.1 Qt对象模型 183
6.3.2 Qt信号与槽 184
6.3.3 Qt/Embedded事件 192
6.3.4 Qt类库基础 197
6.4 Qt的安装与移植 198
6.4.1 Qt的安装 198
6.4.2 Qt4.7.0的移植 200
6.5 Qt编程实例 202
本章小结 209
习题与思考题 209
第7章 SQLite数据库的嵌入式应用 210
7.1数据库概述 210
7.2主流的嵌入式数据库 211
7.3 SQLite应用设计基础 213
7.3.1 SQLite数据类型 213
7.3.2 SQLite“点”命令 213
7.3.3 SQL数据库操作语言 215
7.3.4事务与锁 223
7.4 SQLite3数据库编程API 224
7.4.1 SQLite3 API接口 224
7.4.2 API实例分析 226
本章小结 234
习题与思考题 234
第8章 嵌入式系统应用开发实例 235
8.1停车场管理系统数据库开发 235
8.1.1停车场管理系统简介 235
8.1.2系统总体设计 235
8.1.3数据库模块设计 236
8.1.4系统核心代码及执行 241
8.2贪吃蛇游戏 242
8.2.1游戏功能设计 243
8.2.2游戏界面设计 243
8.2.3 mainWidget类设计 245
8.2.4 gameWidget类设计 247
8.2.5游戏运行 255
8.3 GPS导航系统 256
8.3.1 GPS导航系统设计 257
8.3.2定位与导航 258
8.3.3系统关键功能设计 258
8.3.4 GPS导航系统实现 262
8.4 UPHONE无线商话系统 263
8.4.1 UPHONE无线商话系统设计 264
8.4.2系统模块设计 267
8.4.3系统实现 270
本章小结 271
习题与思考题 271
参考文献 272