第1章 嵌入式系统基础 1
1.1 嵌入式系统概述 1
1.1.1 什么是嵌入式系统 1
1.1.2 嵌入式系统的组成 1
1.1.3 嵌入式系统与PC系统的区别 3
1.1.4 嵌入式系统的特点 3
1.1.5 嵌入式系统的发展趋势 4
1.1.6 嵌入式系统的应用领域 5
1.2 嵌入式处理器 8
1.3 嵌入式操作系统 10
1.3.1 何谓嵌入式操作系统 10
1.3.2 嵌入式操作系统的特点 10
1.3.3 嵌入式操作系统的种类 11
1.4 嵌入式系统开发过程 13
第2章 嵌入式ARM处理器 15
2.1 ARM公司简介 15
2.2 ARM体系结构发展 15
2.3 ARM Cortex系列微处理器 16
2.3.1 Cortex-A8系列处理器 17
2.3.2 Cortex-A9系列处理器 18
2.3.3 Cortex-A15系列处理器 19
2.3.4 Cortex-A53系列处理器 21
2.4 主流Cortex-A系列处理器对比 23
第3章 嵌入式开发平台 24
3.1 嵌入式软件开发平台 24
3.1.1 安装VMware Workstation软件 24
3.1.2 配置虚拟主机硬件 26
3.1.3 安装Ubuntu 33
3.1.4 安装VMware Tools 37
3.1.5 安装文本编辑器Vim 38
3.1.6 安装g++ 39
3.1.7 安装Android开发工具及依赖库 39
3.1.8 安装TFTP服务 41
3.1.9 安装NFS服务 41
3.2 基于Exynos5260嵌入式硬件平台 42
3.2.1 Exynos5260嵌入式硬件平台简介 42
3.2.2 Exynos5260嵌入式硬件平台资源配置 43
3.2.3 实验开发平台调试 45
3.2.4 Exynos5260开发平台设置 46
3.2.5 系统镜像烧写 48
第4章 Linux应用开发基础 51
4.1 Linux基础命令 51
4.2 Linux下C语言编程环境 60
4.2.1 Linux下C语言编程环境概述 60
4.2.2 Vi编辑器 61
4.2.3 GNU GCC的使用 62
4.2.4 GDB调试器的使用 65
4.3 GNU Make命令和Makefile文件 68
4.4 Linux的Shell编程 72
4.4.1 Shell简介 72
4.4.2 Shell变量与环境变量 72
4.4.3 Shell常用命令 78
4.4.4 Shell函数 82
第5章 嵌入式Linux应用编程 86
5.1 第一个Linux应用程序输出“hello world!” 86
5.2 文件I/O操作 87
5.2.1 Linux文件结构 87
5.2.2 系统调用与库函数 88
5.2.3 文件I/O基本操作 89
5.3 进程 95
5.3.1 Linux进程概述 95
5.3.2 Linux进程控制 98
5.3.3 进程间通信 104
5.4 多线程通信 118
5.4.1 线程简介 118
5.4.2 Linux线程控制 119
5.5 Linux网络编程 131
5.5.1 TCP/IP简介 131
5.5.2 socket通信基本概念 132
5.5.3 网络编程相关函数说明 133
5.5.4 网络编程程序设计 136
第6章 嵌入式系统开发 147
6.1 交叉编译简介 147
6.2 交叉编译器 147
6.3 交叉编译器的安装 148
6.4 U-Boot编译 150
6.5 U-Boot移植 150
6.6 编译内核 155
6.7 内核移植 156
6.8 Android 4.4.2移植 159
第7章 Linux设备驱动开发 162
7.1 Linux驱动程序的基本知识 162
7.2 Linux device driver的概念 163
7.3 Linux内核模块helloworld 163
7.4 驱动程序中编写ioctl函数供应用程序调用 164
7.5 嵌入式Linux下LED驱动程序设计 166
7.6 嵌入式Linux下的按键中断实验 174
7.7 嵌入式Linux的A/D转换实验 184
第8章 Qt编程基础 190
8.1 Qt概述 190
8.1.1 GUI的作用 190
8.1.2 Qt的主要特点 191
8.2 Qt的安装 191
8.3 使用Designer创建“helloworld” Qt窗口 194
8.4 交叉编译Qt Embedded库 197
8.4.1 配置编译选项 197
8.4.2 编译和安装 198
8.4.3 Qt Embedded应用程序编译 198
8.5 开发平台设置Qt Embedded环境 199
第9章 Android应用开发 201
9.1 开发准备 201
9.1.1 下载JDK 201
9.1.2 下载Eclipse 201
9.1.3 下载ADT 202
9.1.4 下载Android SDK 202
9.1.5 下载Android NDK 202
9.2 安装程序 202
9.2.1 安装JDK 202
9.2.2 安装Eclipse 205
9.2.3 安装Android SDK 205
9.2.4 解压Android NDK与配置环境变量 211
9.2.5 配置ADT 215
9.2.6 配置SDK 217
9.2.7 配置NDK 218
9.3 测试模拟器 218
9.4 Android应用开发准备 221
9.5 Android应用开发 223
9.5.1 实验1:LED灯控制程序设计 223
9.5.2 实验2:ADC模块实验 230
9.5.3 实验3:LCD实验 236
第10章 Android多媒体视频播放器 241
10.1 相关知识 241
10.2 开发过程 242
第11章 Android远程控制(智能家居项目) 247
11.1 智能家居概念 247
11.2 背景 247
11.3 发展趋势 247
11.4 智能家居项目 248
11.5 智能家居项目服务端代码编写 250
11.6 智能家居项目客户端代码编写 257
参考文献 263