第1章 嵌入式系统概况 1
1.1 什么是嵌入式系统 1
1.2 嵌入式系统的应用与分类 2
1.2.1 基于实时性的分类 2
1.2.2 基于应用的分类 2
1.2.3 移动互联网 3
1.2.4 物联网 4
1.3 嵌入式系统的产业链 6
1.4 嵌入式系统的知识体系 7
1.5 案例:MP3播放器 9
思考题 10
扩展阅读 11
第2章 嵌入式系统中SoC的硬件架构 12
2.1 SoC硬件架构概述 12
2.2 互联结构 15
2.2.1 常见互联结构分类 15
2.2.2 地址空间 20
2.2.3 常见互联结构接口协议 23
2.3 中央处理器 32
2.4 中断控制器 32
2.5 存储子系统 34
2.6 直接存储器访问(DMA) 35
2.6.1 scatter-gather DMA 36
2.6.2 SEP4020芯片中的DMA控制器 37
2.6.3 DMAC驱动 40
2.7 外设接口控制器 40
2.7.1 高速通信接口控制器 40
2.7.2 低速通信接口控制器 41
2.7.3 人机界面控制器 41
2.8 案例:SoC架构设计 41
2.8.1 S3C44B0X 41
2.8.2 S3C6410 42
2.8.3 OMAP3530 43
2.8.4 SEP4020 43
2.8.5 SEP6200 44
思考题 47
扩展阅读 47
第3章 嵌入式系统的开发和调试 48
3.1 嵌入式系统的一般开发过程 48
3.1.1 交叉编译 49
3.1.2 链接 50
3.1.3 调试 50
3.2 调试方式介绍 51
3.2.1 模拟器 53
3.2.2 驻留监控软件 60
3.2.3 在线仿真调试 62
3.2.4 片上在线仿真调试 62
3.2.5 跟踪(Trace)技术 63
3.2.6 CoreSight调试与跟踪技术简介 65
3.3 基于JTAG接口的片上在线仿真 70
3.3.1 JTAG简介 70
3.3.2 基于JTAG的片上在线仿真的系统结构 75
3.3.3 ARM7TDMI内核调试原理 76
3.4 ARM的集成开发环境 82
3.4.1 ADS集成开发环境 83
3.4.2 DS-5集成开发环境 83
3.4.3 MDK集成开发环境 89
3.5 嵌入式软件的执行镜像与启动过程 94
3.5.1 ARM链接器的输出文件的加载视图与执行视图 95
3.5.2 基于ROM的程序执行 97
3.5.3 基于RAM的程序执行 97
3.5.4 ROM/RAM重映射 98
思考题 98
扩展阅读 98
第4章 SoC中的CPU内核 100
4.1 CPU的基本概念 100
4.1.1 CPU的发展 100
4.1.2 复杂指令集(CISC)与精简指令集(RISC) 103
4.1.3 CPU的流水线技术 104
4.1.4 CPU的分支预测技术 106
4.1.5 乱序超标量处理器 110
4.1.6 SIMD和向量处理器 114
4.1.7 VLIW处理器 115
4.1.8 EPIC处理器 116
4.2 ARM内核 116
4.2.1 ARM介绍 116
4.2.2 ARM7TDMI编程模型 121
4.2.3 ARM7TDMI的指令集 131
4.2.4 ARM7TDMI汇编语言 143
4.2.5 ARM7TDMI异常处理 146
4.2.6 ARM汇编程序与C程序 153
4.2.7 ARM处理器的多核技术 158
4.2.8 ARM处理器的最新发展 164
4.3 其他CPU介绍 169
4.3.1 MIPS体系架构 170
4.3.2 龙芯处理器 175
4.3.3 UniCore-2处理器 178
4.4 其他类型的计算引擎 181
4.4.1 GPU 181
4.4.2 可重构计算 187
案例:REMUS-Ⅱ粗粒度可重构计算架构 196
思考题 201
扩展阅读 202
第5章 存储子系统 203
5.1 存储子系统概述 203
5.2 高速缓存Cache 204
5.2.1 Cache的基本组成 204
5.2.2 Cache的基本原理 206
5.2.3 Cache缺失与访问冲突 212
5.2.4 Cache一致性问题 216
5.2.5 Cache和SPM的比较 218
5.2.6 ARM Cortex A8处理器的Cache架构 221
5.3 虚拟存储器 222
5.3.1 虚拟内存技术的基本原理 222
5.3.2 虚实地址映射与转换 224
5.3.3 快速地址转换技术 227
5.3.4 地址保护机制 228
5.3.5 处理缺页和TLB缺失 230
5.3.6 ARM Cortex A系列处理器的虚存管理 230
5.4 片外存储器 234
5.4.1 静态随机存储器(SRAM) 235
5.4.2 动态随机存储器(DRAM) 237
5.4.3 非易失性存储器 250
5.5 外部存储器接口 258
5.5.1 SEP4020芯片的外部存储器接口EMI 258
5.5.2 SEP4020芯片EMI的初始化与配置 261
5.5.3 OMAP4460处理器的外部存储器接口 266
5.6 存储子系统优化技术 267
5.6.1 存储子系统的技术指标 267
5.6.2 DDR控制器的优化 271
5.6.3 片上存储器布局优化技术 276
案例:高能效高清媒体处理器的访存QoS 279
思考题 284
扩展阅读 285
第6章 外设接口 288
6.1 低速通信接口 288
6.1.1 异步串行通信UART 288
6.1.2 同步串行通信 294
6.2 高速通信接口 299
6.2.1 通用串行总线USB 299
6.2.2 10/100M以太网MAC网络接口 304
6.3 人机接口 313
6.3.1 液晶显示器接口 313
6.3.2 音频接口 322
6.3.3 触摸屏接口 326
6.4 定时器 332
6.4.1 通用定时器 332
6.4.2 RTC 333
思考题 335
扩展阅读 336
第7章 嵌入式系统软件概述 337
7.1 嵌入式系统的软件框架 337
7.1.1 嵌入式系统软件所面临的挑战 337
7.1.2 嵌入式软件的层次框架 338
7.2 嵌入式操作系统的基本原理 340
7.2.1 嵌入式操作系统简介 340
7.2.2 嵌入式操作系统的内核 341
7.2.3 任务管理与调度 342
7.2.4 任务间通信 348
7.2.5 中断管理 350
7.3 Android操作系统简介 356
7.3.1 Android操作系统的层次 356
7.3.2 Android虚拟机 358
7.3.3 Android的任务间通信机制 366
7.3.4 Android的安全机制 371
案例:基于SEP4020的EPOS软件平台设计 375
思考题 378
扩展阅读 378
第8章 嵌入式系统功耗优化 379
8.1 嵌入式系统功耗优化概述 379
8.1.1 嵌入式系统的功耗问题 379
8.1.2 SoC芯片级功耗优化 380
8.1.3 嵌入式系统级功耗优化 384
8.2 SoC芯片级低功耗设计方法 385
8.2.1 时钟门控 386
8.2.2 多电压域技术 388
8.2.3 电源门控技术 389
8.2.4 动态电压频率调节和自适应调节 391
案例:SoC芯片低功耗设计 396
8.3 嵌入式系统级低功耗设计方法 399
8.3.1 嵌入式系统级功耗优化技术介绍 399
8.3.2 动态电源管理DPM 400
8.3.3 动态电压调节DVS 402
8.3.4 动态电压频率调节DVFS 404
案例:整机系统级低功耗设计 406
思考题 411
扩展阅读 411