描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121307188
第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-II粗粒度可重构计算架构 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操作系统的层次 357
7.3.2 Android虚拟机 358
7.3.3 Android的任务间通信机制 366
7.3.4 Android的安全机制 371
案例:基于SEP4020的EPOS软件平台设计 375
思考题 378
扩展阅读 378
第8章 嵌入式系统功耗优化 380
8.1 嵌入式系统功耗优化概述 380
8.1.1 嵌入式系统的功耗问题 380
8.1.2 SoC芯片级功耗优化 381
8.1.3 嵌入式系统级功耗优化 385
8.2 SoC芯片级低功耗设计方法 386
8.2.1 时钟门控 387
8.2.2 多电压域技术 389
8.2.3 电源门控技术 390
8.2.4* 动态电压频率调节和自适应调节 392
案例:SoC芯片低功耗设计 397
8.3 嵌入式系统级低功耗设计方法 400
8.3.1 嵌入式系统级功耗优化技术介绍 400
8.3.2 动态电源管理DPM 401
8.3.3 动态电压调节DVS 403
8.3.4 动态电压频率调节DVFS 405
案例:整机系统级低功耗设计 407
思考题 412
扩展阅读 412
第 2 版
序
《嵌入式系统——基于SEP3203微处理器的应用开发》(版)自2006年底出版以来得到了东南大学以及相关兄弟院校的教学应用,取得了良好的教学效果,并入选了国家“十一五”规划教材。近几年来,嵌入式系统技术的飞速发展正推动整个产业发生着深刻的变化:,移动互联网产业的兴起彻底改变了传统电信运行商、软件服务商、内容提供商、整机制造商等生态环境的商业模式,而物联网技术的迅速发展则推动着传统产业信息化和现代服务业的变革;第二,嵌入式领域虽然不存在传统桌面系统的Wintel联盟,但是在嵌入式CPU和嵌入式操作系统方面已经出现ARM公司系列CPU和Google公司Android系统一枝独秀的局面;第三,国内已经涌现出一批初具规模和实力的嵌入式微处理器设计厂商,自主CPU内核也逐渐成熟,并在部分市场领域得到应用,自主SoC芯片的生态环境已初步形成。
另一方面,嵌入式系统的本质是以应用为核心的专用计算机系统,它的核心是嵌入式微处理器(SoC芯片),围绕应用目标开展软硬件协同设计是嵌入式技术的本质特征。作为专用计算机系统,嵌入式系统技术与通用计算机系统没有本质的区别,但往往对系统的性能、功耗、成本、可靠性与实时性有更加严格的限制,这就决定了其总线架构、CPU内核设计、存储架构设计、媒体与图形系统设计等方面都有自己的设计哲学。传统的嵌入式系统教学往往采用国外SoC芯片作为主要教学内容,由于缺乏芯片的底层实现细节,往往更侧重在如何基于国外芯片厂商封装好的底层软件库进行应用开发。这使得学生缺乏对芯片底层工作机制的了解,从而无法对软硬适配部分进行充分的优化与定制,更不要说参与自主SoC芯片的研发与系统方案设计了。这显然无法满足技术和产业发展的需求。
基于对于以上问题的认识,东南大学国家ASIC工程技术研究中心(以下简称工程中心)的几位老师着手编写了《嵌入式系统——从SoC芯片到系统》(第2版)。正如第2版副标题所表明的,本书将从SoC芯片的视角来分析和介绍嵌入式系统的基础知识。得益于工程中心十多年来在自主SoC芯片设计方面积累的工程经验与研究成果,本书详细介绍了嵌入式微处理器SoC芯片的架构、CPU、存储子系统、外围设备、调试方法、低功耗设计和操作系统基础,力图给读者一个站在SoC芯片设计者的视角了解现代嵌入式系统的构成,并真正理解一个复杂的嵌入式系统应用在芯片层面和软件层面是如何运作的。在第2版中,作者将继续采用工程中心自主研发的SEP4020与SEP6200处理器作为主要案例,其中SEP6200处理器采用了国产UniCore2 CPU内核。
与第1版不同,为了便于教学,本书为几乎所有的章节编写了思考题、案例分析和扩展阅读。当然,这不是一本包罗万象、解决所有问题的教材,正如作者们所希望的,这是一本嵌入式系统入门教材。通过这本书的阅读和学习,作者希望为读者后续进一步的深入学习打下坚实的基础。
时龙兴
2015年10月于东南大学
引 言
关于本书以及如何使用本书
毫无疑问,在大学中讲授嵌入式系统相关的课程是一个巨大的挑战。带来这种挑战的根本原因在于:,嵌入式系统是一个飞速发展的动态系统,新技术、新产品、新应用、新商业模式层出不穷,这一点在这一轮的移动互联网浪潮和物联网浪潮中表现得尤为突出;第二,嵌入式系统技术是一个非常综合的学科门类,其内涵涉及电子与微电子、计算机架构、操作系统、中间件、人机交互、计算机网络、通信甚至整机设计与制造等各领域,很难在有限的课时内将所有的知识点讲深讲透,这一点对于传统的电子信息类专业的本科生而言尤其如此,因为传统的电子信息类专业课程的设置往往很少涉及操作系统等软件方面的内容;第三,嵌入式系统技术的两大基础是微电子技术(尤其是SoC技术)和以嵌入式操作系统为代表的嵌入式软件技术。嵌入式系统对于性能、成本、功耗、实时性与高可靠性的更高要求决定了围绕应用目标开展软硬件协同设计和软硬件适配优化是嵌入式系统技术的本质特征。这就需要对SoC芯片的架构和工作机制有非常深刻的理解;第四,嵌入式系统技术是一门实践性非常强的课程,如何在有限的课时内加强学生的实践能力培养也是一个非常大的挑战。
针对上述这些挑战,东南大学国家专用集成电路系统工程技术研究中心依托电子科学与技术国家重点学科的优势,将多年来承担的国家、省部级科研项目的科研成果应用于教学,开展软硬件协同的嵌入式系统教学,具体举措包括:,建设了以自主SoC芯片为基础的系列嵌入式系统课程。包括面向本科的《嵌入式系统概论》,面向研究生课程的《嵌入式系统》、《SoC设计》、《嵌入式系统高级C语言编程》、《嵌入式操作系统》、《移动互联网应用编程》、《嵌入式系统实训》。课程内容覆盖从SoC芯片到软硬协同设计、适配优化再到应用方案设计的各层次;第二,采用自主SoC芯片设计了多款教学实验平台,并开发了相关实验。在课内有限的学时内重点培养学生基本的实践技能,通过课外实验和综合实训课程培养学生的综合应用能力,通过连续举办多届嵌入式设计竞赛培养学生的创新能力。
本书的写作目的就是为了配合本科课程《嵌入式系统概论》和研究生课程《嵌入式系统》的教学。因为是用作本科概论课程和研究生基础课程用书,本书的目的不是也不可能是讲授嵌入式系统相关的所有内容。事实上,试图在一本书、一门课程中将嵌入式系统的所有内容讲授清楚是不可能的。因此本书的基本定位是基础与入门。为后续课程或进一步的学习打下坚实的基础和扫清概念障碍。我们发现初学者对于现代SoC,尤其是面向移动互联网终端的SoC中出现的新概念、新知识的了解非常匮乏,而这些对于开展软硬件协同设计与软硬件适配优化却是必不可少的。与以往许多教材不同,本书试图站在SoC设计者的角度来介绍嵌入式系统的相关基础知识。这得益于本书作者参与了东南大学国家ASIC工程中心几款自主SoC芯片设计的全过程,全书中我们也将以自主SoC芯片SEP4020和SEP6200作为案例进行介绍。
为了便于教学,本书几乎在所有的章节中都设置了专门的设计案例和思考题。为了适应研究生教学的需要,本书在每章都设置了提高内容(书中带*的章节),将的技术发展融入教学内容。这些内容涉及到新型的片上互联架构、高性能CPU架构、异构计算单元、片上存储架构、多层次低功耗设计等内容,并为研究生和学有余力的本科生设置了扩展阅读单元,读者们可以通过这些扩展阅读进一步深化对相关技术的了解。
本书各章节安排如下:
第1章 嵌入式系统概况
概述了嵌入式系统的概念、嵌入式系统的应用等。作为两个重要也可能是热门的两个应用领域,本章专门对移动互联网终端和物联网进行了介绍。我们还将在本章介绍嵌入式系统的产业链构成,并对学习嵌入式系统的知识体系进行了梳理。本章后通过一个MP3播放器的实例分析引出问题:按下按钮后MP3音乐是怎么播放出来的?
第2章 嵌入式系统的SoC硬件架构
介绍了SoC的硬件架构,由总线互联、处理器、中断控制器、定时器、存储系统、外设接口等组成,由于本书后面的章节将详细阐述处理器、存储系统、各种接口等部分,因此本章重点介绍了SoC芯片的总线互联,并分析了ARM公司的片上互联标准——AMBA。本章还专门介绍了DMA控制器的工作原理。在案例部分,本章给出了几款SoC芯片的架构介绍。
第3章 嵌入式系统的开发和调试
本章首先介绍了嵌入式系统的一般开发过程,并对各种调试方法进行了介绍,包括模拟器、在线仿真、片上在线仿真和跟踪技术,并详细介绍了基于JTAG的调试方法。接着对ARM公司的3款集成开发环境:ADS、MD-5和MDK进行了介绍。
第4章 SoC中的CPU内核
介绍了CPU的基本概念:CPU的流水线技术、分支预测技术、乱序执行技术、超标量处理器、VLIW处理器、EPIC处理器、多核处理器等。接下来重点介绍了ARM处理器的特点、编程模型、指令系统、汇编语言程序结构、异常处理、编程技巧、ARM系列微处理器等。作为对ARM架构的补充,本章还介绍了MIPS、龙芯和众志CPU的基本架构。GPU和可重构计算作为新兴的计算引擎也在本章进行了介绍。
第5章 存储子系统
本章首先介绍嵌入式系统存储子系统的金字塔结构,重点分析了高速缓存(Cache)与虚拟存储器技术。接下来介绍了常用的存储器及其时序,包括SRAM、SDRAM、DDR SDRAM、Flash等。SoC中的外部存储器控制接口EMI及其编程模型,SoC中的SD/MMC控制器及其编程模型也在本章进行了讲解。后介绍了存储子系统的性能和功耗优化技术。
第6章 外设接口
本章分别介绍了低速通信接口控制器(异步串行通信UART、同步串行通信SPI),高速通信接口控制器(通用串行总线USB、10/100M以太网MAC网络接口),人机界面控制器(液晶显示器控制器LCDC、音频接口I2S控制器)。
第7章 嵌入式系统软件概述
本章首先介绍嵌入式系统软件的组成、bootloader引导程序,以及为什么需要嵌入式操作系统和嵌入式操作系统的一些基本概念。在本章的第二部分,重点介绍了与嵌入式操作系统相关的基本原理,包括内核中的任务管理、任务间通信和中断管理。Android作为当前流行的手持终端操作系统在本章的第三部分进行了介绍。
第8章 嵌入式系统功耗优化
本章首先概述了低功耗设计方法。接着分别介绍了SoC级低功耗设计方法和嵌入式系统级低功耗设计方法,并给出了两个与之对应的设计案例。
相应的课程安排
本书可以作为电子类本科生高年级和研究生低年级的教材。按照2学分(本科32学时、研究生36学时,其中实验课时按一半折算)的课程设置,作者给出的参考课时安排如下(教师可根据实际情况进行调整):
l 本科生《嵌入式系统概论》授课学时安排(24学时)
第1章 嵌入式系统概况 2学时
第2章 嵌入式系统中SoC的
评论
还没有评论。