第1章 嵌入式系统概论 1
1.1 嵌入式系统简介 1
1.1.1 嵌入式系统的定义 1
1.1.2 嵌入式系统的组成 2
1.1.3 嵌入式系统的应用与发展 5
1.2 嵌入式微处理器 7
1.2.1 嵌入式微处理器分类 7
1.2.2 ARM嵌入式微处理器 9
1.2.3 嵌入式微处理器选型 11
1.3 嵌入式操作系统 12
1.3.1 概况 12
1.3.2 Windows CE简介 13
1.3.3 嵌入式Linux简介 14
1.3.4 μC/OS-Ⅱ简介 15
习题 17
第2章 ARM9体系结构 18
2.1 ARM9嵌入式微处理器 18
2.1.1 ARM9的结构特点 18
2.1.2 ARM9指令集特点 22
2.1.3 ARM9工作模式 23
2.2 ARM9存储器组织结构 24
2.2.1 大端存储和小端存储 24
2.2.2 I/O端口的访问方式 25
2.2.3 内部寄存器 26
2.3 ARM9异常 31
2.3.1 异常的类型及向量地址 31
2.3.2 异常的优先级 33
2.3.3 进入和退出异常 33
2.4 S3C2410嵌入式微处理器 36
2.4.1 S3C2410及片内外围简介 37
2.4.2 S3C2410引脚信号 38
2.4.3 S3C2410专用寄存器 43
2.4.4 ARM920T总线接口单元简介 48
习题 48
第3章 ARM指令系统 49
3.1 ARM指令集 49
3.1.1 ARM指令分类及格式 49
3.1.2 ARM指令寻址方式 51
3.1.3 常用ARM指令 56
3.2 ARM汇编伪指令与伪操作 70
3.2.1 常用ARM汇编伪指令 70
3.2.2 常用ARM汇编伪操作 71
3.3 Thumb指令集简介 76
3.4 ADS 1.2集成开发环境的使用 76
3.4.1 ADS 1.2使用介绍 77
3.4.2 使用ADS 1.2设计汇编程序举例 78
习题 84
第4章 时钟及电源管理 85
4.1 S3C2410时钟结构 85
4.2 S3C2410电源管理模式 85
4.3 相关特殊功能寄存器 89
4.4 常用单元电路设计 93
4.4.1 电源电路设计 93
4.4.2 晶振电路设计 94
4.4.3 复位电路设计 95
习题 96
第5章 存储器与I/O接口原理 97
5.1 存储器概述 97
5.1.1 SRAM和DRAM 97
5.1.2 NOR Flash和NAND Flash 103
5.2 存储系统机制 107
5.2.1 存储器接口方式 107
5.2.2 高速缓存机制(Cache) 108
5.2.3 存储管理单元(MMU) 109
5.3 S3C2410存储系统 112
5.3.1 S3C2410存储空间 112
5.3.2 S3C2410存储器接口设计 118
5.4 S3C2410 I/O端口 123
5.4.1 I/O端口控制寄存器 123
5.4.2 I/O端口应用举例 124
习题 125
第6章 中断与定时技术 126
6.1 中断概述 126
6.1.1 中断向量 126
6.1.2 中断优先级 127
6.1.3 中断屏蔽 127
6.2 S3C2410中断系统 128
6.2.1 概述 128
6.2.2 中断控制寄存器 131
6.2.3 中断举例 140
6.3 定时器工作原理 143
6.3.1 概述 143
6.3.2 工作原理 143
6.4 S3C2410定时器 144
6.4.1 定时器及PWM 144
6.4.2 看门狗定时器 153
6.4.3 RTC 155
习题 164
第7章 DMA技术 165
7.1 DMA概述 165
7.1.1 DMA简介 165
7.1.2 DMA传输过程 165
7.2 S3C2410 DMA 166
7.2.1 DMA请求源 167
7.2.2 DMA模式 167
7.2.3 DMA操作过程 168
7.2.4 DMA时序 169
7.3 S3C2410 DMA寄存器 171
7.3.1 传输控制寄存器 171
7.3.2 状态寄存器 175
7.4 DMA操作编程 176
7.4.1 DMA操作初始化 176
7.4.2 DMA操作编程举例 176
习题 178
第8章 串行通信接口 179
8.1 串行通信基础知识 179
8.1.1 串行数据传送模式 179
8.1.2 串行通信方式 180
8.1.3 RS-232C串行通信接口 182
8.1.4 RS-422和RS-485标准 183
8.2 S3C2410串行接口 184
8.2.1 S3C2410 UART结构 184
8.2.2 S3C2410 UART工作原理 184
8.2.3 S3C2410 UART专用寄存器 187
8.3 串行通信举例 194
8.3.1 RS-232C接口设计 194
8.3.2 串口初始化 194
8.3.3 发送/接收程序举例 196
8.4 IIS串行数字音频接口 197
8.4.1 IIS接口总线格式 201
8.4.2 IIS接口应用举例 202
习题 205
第9章 网络接口 206
9.1 网络接口技术概述 206
9.1.1 分布嵌入式系统结构 206
9.1.2 分布嵌入式网络通信方式 208
9.2 IIC接口 208
9.2.1 IIC总线 208
9.2.2 S3CC2410 IIC接口 212
9.3 CAN总线接口 219
9.3.1 CAN总线 219
9.3.2 CAN接口 222
9.4 以太网接口 224
9.4.1 嵌入式以太网基础知识 224
9.4.2 S3C2410以太网接口 230
9.4.3 socket网络编程 235
9.4.4 嵌入式Web服务器程序设计 244
习题 250
第10章 人机接口 251
10.1 键盘接口 251
10.1.1 按键的识别 251
10.1.2 键盘接口举例 252
10.2 LED显示器 256
10.2.1 LED显示控制原理 256
10.2.2 LED接口举例 259
10.3 LCD接口 261
10.3.1 LCD显示控制原理 261
10.3.2 S3C2410 LCD控制器 262
10.3.3 S3C2410 LCD寄存器 266
10.3.4 LCD接口举例 272
10.4 ADC和触摸屏接口 275
10.4.1 触摸屏的种类 275
10.4.2 S3C2410 ADC和触摸屏 277
10.4.3 ADC和触摸屏接口举例 281
习题 286
第11章 Linux操作系统基础 287
11.1 Linux操作系统概述 287
11.1.1 Linux的发展历程 287
11.1.2 Linux的特点 289
11.2 Linux内核的结构 290
11.2.1 进程管理 290
11.2.2 内存管理 292
11.2.3 虚拟文件系统 293
11.2.4 网络接口 295
11.2.5 进程间通信 295
11.3 Linux设备管理 297
11.3.1 字符设备 297
11.3.2 块设备 298
11.3.3 可安装模块 299
11.4 Linux的使用 302
11.4.1 Linux常用命令 302
11.4.2 vi编辑器的使用 305
11.4.3 gcc编译器和make工具 308
11.4.4 gdb调试 311
11.5 Linux的安装 312
11.5.1 目前流行的Linux发行版本 312
11.5.2 Linux安装在独立的硬盘分区 313
11.5.3 Linux安装在虚拟机中 313
习题 313
第12章 嵌入式Linux软件设计 314
12.1 Bootloader引导程序 314
12.1.1 Bootloader的概念 314
12.1.2 Bootloader的主要过程与典型结构框架 316
12.1.3 常见Bootloader简介 318
12.2 Linux的移植 322
12.2.1 内核移植 322
12.2.2 系统移植 323
12.3 驱动程序开发 324
12.4 应用程序开发 326
12.4.1 建立连接 326
12.4.2 编写应用程序 327
12.4.3 下载应用程序 328
12.4.4 调试应用程序 329
习题 332
第13章 基于Qt/Embedded的嵌入式GUI设计 333
13.1 嵌入式GUI简介 333
13.1.1 Linux图形领域的基础设施 333
13.1.2 嵌入式GUI高级函数库 336
13.1.3 面向嵌入式Linux的图形用户界面 337
13.2 创建Qt/Embedded嵌入式图形开发环境 340
13.2.1 Qt/Embedded概述 340
13.2.2 创建Qt/Embedded开发环境 342
13.3 Qt/Embedded的使用 344
13.3.1 信号与插槽 344
13.3.2 窗体 346
13.3.3 对话框 353
13.4 Qt/Embedded应用举例 357
13.4.1 Qt/Embedded开发流程 357
13.4.2 基于PC的Hello程序 357
13.4.3 发布Qt/Embedded程序到目标板 365
习题 366
附录 367
参考文献 372