第1章 C语言编程技术要点 1
1.1 数据类型 1
1.1.1 C语言基本数据类型的实现 1
1.1.2 C语言基本数据类型的转换 3
1.1.3 C语言复合数据类型的实现 4
1.1.4 C语言的数据管理 9
1.2 函数 12
1.3 C语言预处理 13
1.3.1 宏定义 13
1.3.2 条件编译 14
1.3.3 头文件 15
1.4 C语言编程规范 17
1.4.1 命名规则 17
1.4.2 程序版式 17
第2章 计算机硬件平台技术要点 19
2.1 CPU的结构 19
2.2 CPU指令 20
2.2.1 CPU指令格式 21
2.2.2 寻址 22
2.2.3 x86 CPU指令系统 24
2.3 实模式和保护模式 26
第3章 Linux操作系统原理与使用 28
3.1 操作系统原理概述 28
3.1.1 进程管理 29
3.1.2 内存管理 31
3.1.3 文件管理 37
3.1.4 设备管理 39
3.2 Linux内核 40
3.2.1 Linux内核结构 41
3.2.2 Linux进程管理 43
3.2.3 内存管理 46
3.2.4 文件管理 48
3.2.5 设备管理 51
3.3 Linux操作系统的使用 52
3.3.1 安装红旗Linux 6.0 52
3.3.2 红旗Linux 6.0的使用 56
第4章 LinuX应用程序开发 70
4.1 GCC 70
4.1.1 GCC工作流程 71
4.1.2 Glibc 74
4.2 工程管理器 76
4.2.1 Makefile 77
4.2.2 Makefile特性介绍 79
4.3 Makefile的自动生成 89
4.4 GDB调试器 103
4.5 Eclipse程序开发 107
4.5.1 Eclipse环境安装 107
4.5.2 Eclipse C程序开发 109
第5章 嵌入式系统基础 116
5.1 嵌入式系统概述 116
5.1.1 嵌入式系统简介 116
5.1.2 嵌入式系统的结构 117
5.2 嵌入式处理器 117
5.2.1 ARM处理器介绍 117
5.2.2 ARM处理器指令 121
5.2.3 S3C2410/S3C2440介绍 125
5.3 嵌入式操作系统 132
第6章 嵌入式Linux C应用开发 134
6.1 嵌入式Linux开发环境 134
6.1.1 交叉编译器 134
6.1.2 交叉编译器的使用 135
6.2 Eclipse交叉编译 145
第7章 嵌入式Linux系统开发 148
7.1 嵌入式Linux内核 148
7.1.1 内核的定制原理 148
7.1.2 内核的配置 162
7.1.3 编译内核 166
7.1.4 内核启动过程 168
7.2 根文件系统 174
7.2.1 根文件系统的结构 174
7.2.2 init进程与配置文件 176
7.2.3 BusyBox 180
7.2.4 文件系统类型 185
7.3 SkyEye模拟运行嵌入式Linux内核 190
7.3.1 SkyEye介绍 190
7.3.2 SkyEye运行嵌入式Linux系统的方法 194
第8章 Linux设备驱动程序开发 200
8.1 Linux模块 200
8.1.1 Linux模块介绍 200
8.1.2 Linux模块编程 201
8.2 设备驱动程序原理 203
8.2.1 字符设备驱动概述 205
8.2.2 并发控制 209
8.2.3 同步控制 215
8.2.4 中断处理 219
第9章 Bootloader 222
9.1 Bootloader的工作原理 222
9.1.1 Bootloader概述 222
9.1.2 Bootloader的工作过程分析 223
9.2 ViVi 224
9.2.1 ViVi的源代码结构 225
9.2.2 ViVi的启动过程 225
9.2.3 ViVi的基本命令 231
9.3 U-Boot 233
9.3.1 U-Boot的源代码结构 234
9.3.2 U-Boot的启动过程 234
9.3.3 U-Boot命令 236
第10章 嵌入式GUI开发 240
10.1 MiniGUI系统介绍 240
10.1.1 嵌入式GUI系统介绍 240
10.1.2 MiniGUI介绍 241
10.2 MiniGUI使用介绍 242
10.2.1 MiniGUI的安装与使用 242
10.2.2 MiniGUI的定制 244
10.3 MiniGUI编程 251
10.3.1 MiniGUI的窗口和消息 251
10.3.2 MiniGUI实例分析 255
第11章 嵌入式数据库 261
11.1 嵌入式数据库概述 261
11.2 SQLite3的使用 262
11.2.1 SQLite3的命令 262
11.2.2 SQLite3的C接口 264
第12章 嵌入式Linux开发环境的搭建 271
12.1 Minicom的使用 271
12.2 Bootloader的烧写 273
12.3 使用Supervivi搭建开发环境 275
12.3.1 Supervivi使用介绍 275
12.3.2 分区 277
12.3.3 烧写镜像 280
12.3.4 调试内核 282
12.4 NFS 284
12.5 Tftp 286
第13章 电子菜单的设计与实现 288
13.1 电子菜单介绍 288
13.2 电子菜单程序的设计与实现 290
13.2.1 源文件结构 290
13.2.2 源代码分析 290
13.2.3 Makefile设计 314
13.3 电子菜单结构的设计与实现 316
13.3.1 Bootloader镜像 316
13.3.2 内核镜像 318
13.3.3 文件系统设计 326
13.3.4 文件系统镜像的设计与制作 337
参考文献 341