嵌入式计算系统设计原理(原书第4版)
作者 : [美]玛里琳·沃尔夫(Marilyn Wolf)著
译者 : 宫晓利 谢彦苗 张金 译
丛书名 : 计算机科学丛书
出版日期 : 2018-06-27
ISBN : 978-7-111-60148-7
定价 : 99.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 408
开本 : 16
原书名 : Computers as Components:Principles of Embedded Computing System Design, Fourth Edition
原出版社: Elsevier (Singapore) Pte Ltd
属性分类: 教材
包含CD : 无CD
绝版 :
图书简介

本书从组件技术的视角出发,介绍了嵌入式系统设计技术和技巧,并将安全性贯穿全书。全书每一章涵盖一个专题,包括与嵌人式系统设计相关的若干主要内容:指令系统、CPU、计算平台、程序设计与分析、进程和操作系统、系统设计技术、物联网、汽车与航天系统以及嵌入式多处理器等。本书特别适合作为计算机、电子信息、通信工程、自动化、机电一体化、仪器仪表及相关专业高年级本科生和研究生的教材,也适合相关的工程技术人员参考。

图书特色

图书前言

第4版前言

准备本书第4版的过程使我意识到我的年龄有多大。在1999年年底,我完成了第1版的最终草稿。从那时起,嵌入式计算技术发展迅猛,但是核心原理依然基本保持不变。我对整本书进行了修改:整理问题,修改文稿,对某些章节重新排序以改进思路,并删除了一些不重要的内容。
本书在两方面做出了巨大改动。第一,新增了物联网(IoT)这一章;第二,将安全性贯穿全书。自第3版出版以来,IoT就已作为一个重要主题出现,但是它的实现依赖于现存的技术和知识。在第4版中,新的IoT章节综述了几个用于IoT应用的无线网络,也给出了一些IoT系统组织的模型。安全性对于嵌入式系统一直都很重要,虽然本书第1版就已讨论过医疗设备的安全性,但是一系列事件又突出了这一主题的关键特性。
在前几版中,一些高级的知识点都放在第8章,包括多处理器片上系统和网络嵌入式系统等。第4版将这些内容扩展,并分为三章:第8章涵盖OSI和网络协议,以及IoT特定主题的知识;第9章探讨汽车环境中的网络嵌入式系统,并涵盖安全性方面的几个例子;第10章讲述多处理器片上系统及其应用。
和前几版一样,在本书网站http://www.marilynwolf.us可以找到所有相关内容。一些外部Web资源的链接也在该网站上。此外,我的新博客http://embeddedcps.blogspot.com/提供了一些嵌入式计算人员感兴趣的话题。
我要感谢编辑Nate McFadden给予的帮助和指导。当然,本书中的任何问题都是我的责任。

Marilyn Wolf




第3版前言

本书第3版反映了我对嵌入式计算的深入思考以及对本书读者的若干建议,其中一个重要的目标是扩大嵌入式计算应用的范围。学习有关数码相机和汽车之类的主题需要付出很多努力。我希望本书可以为这些系统中直接影响嵌入式计算设计者决策的部分提供一些有用的见解。我也扩大了示例处理器的范围,包括尖端的处理器,如TI C64x和高级ARM扩展(advanced ARM extension),同时还包括PIC16F,并通过它描述小型RISC嵌入式处理器的特性。最后重新组织了网络和多处理器章节,使这些紧密相关的主题看起来更统一。读者可以在课程网站http://www.marilynwolf.us寻找附加的材料,这个网站包含了上面所说的所有内容,还有实验样例以及获取附加信息的提示。
我要感谢Nate McFadden、Todd Green和Andre Cuello的耐心编辑以及在本书修订过程中对我的关心。我还要感谢匿名评论者和科罗拉多大学的Andrew Pleszkun教授对本书草稿的中肯建议。特别感谢David Anderson、Phil Koopman和Bruce Jacob帮助我理解了一些内容。同样要感谢2011年的亚特兰大“末日暴雪”给了我大量不受打扰的写作时间。
最重要的是,这是我感谢父亲的最好时机。他教会我如何工作:不仅仅是教会我怎样做具体的事情,更重要的是教会我如何处理问题,开拓思路,然后把它们转化为成果。一直以来,他教我如何体贴关心他人。感谢您,父亲。

Marilyn Wolf




第2版前言

相对2000年本书第1版出版的时候,如今嵌入式计算更为重要。更多的产品中使用了嵌入式处理器,从玩具到飞机都有应用。片上系统现在使用几百个CPU。手机朝着新的标准计算平台方向发展。就像2006年9月《IEEE Computer》杂志上我的专栏中所指出的那样,当今世界至少有50万嵌入式系统程序员,可能接近80万。
在这一版中,我尽力做了更新和补充。本书的一个主要改变是使用TI C55x DSP。我慎重地重写了关于实时调度的讨论。尝试将性能分析主题尽可能在更多的抽象层次上扩展。指出多处理器在甚至最平凡的嵌入式系统中的重要性,此版对硬/软件协同设计和多处理器也进行了更通用的介绍。
计算机教学领域的一个改变是,本教材成为越来越低年级的课本。过去用于研究生的教材现在用于高年级本科生;在可预见的未来,本书的部分内容将可作为大学二年级教材。我认为可以选取本书的部分内容去覆盖更先进和更基础的课程。一些高年级学生可能不需要前面章节的背景知识,这样可以把更多时间花在软件性能分析、调度和多处理器上。当开设介绍性课程时,软件性能分析可作为探索微处理器体系结构和软件体系结构的一个可选方案;这样的课程可以关注前几章的内容。
本书和我的其他书的新网站是http://www.waynewolf.us。在这个网站里,可以找到本书相关材料的概括、实验建议,还可找到关于嵌入式系统的更多信息的网站链接。
致谢
感谢许多帮助我完成第2版的人。德州仪器的Cathy Wicks和Naser Salameh在理解C55x上给了我非常有价值的帮助。FreeRTOS.org的Richard Barry不仅慷慨地允许我引用其操作系统的源码,还帮我澄清代码的解释。本书的编辑是Morgan Kaufmann出版社的Chuck Glaser,他知道何时需要耐心,何时需要鼓励,何时需要诱导。当然,还要感谢Nancy和Alec耐心为我录入。本书的任何问题,不管是大是小,自然都是我个人的责任。

Marilyn Wolf




第1版前言

微处理器早已成为我们生活的一部分,然而,微处理器足够强大到能执行真正复杂的功能还是近几年的事。在摩尔定律的驱动下,微处理器飞速发展,同时促使嵌入式计算成为一门学科。在微处理器的早期阶段,所有组件相对较小也较简单,需要且期望把一些单独的指令和逻辑门集中在一起。今天,当系统包含了几千万个晶体管和数万行高级语言代码时,我们必须使用有助于处理复杂性的设计技术。
本书试图捕捉嵌入式计算这一新学科的某些基本原理和技术。嵌入式计算所面临的一些挑战在台式机计算世界中是众所周知的。例如,为从带流水线的高速缓存体系结构中获得最高性能,经常需要仔细分析程序轨迹。类似地,随着嵌入式系统的复杂性不断增加,在软件工程中针对特定复杂系统开发的技术变得十分重要。另外一个例子是设计多进程系统。对于台式机上使用的通用操作系统和嵌入式系统使用的实时操作系统,二者的需求是截然不同的。过去30年针对大型实时系统开发的实时技术如今已普遍应用于基于微处理器的嵌入式系统中。
嵌入式计算还面临一些新的挑战。一个较好的例子是功耗问题。在传统计算机系统中功耗已经不是一个主要考虑因素,但是对于用电池供电的嵌入式计算机,这是一个基本考虑因素,而且在功耗容量受重量、成本或噪声等限制的情况下是十分重要的。另外一个挑战是截止时限驱动的程序设计。嵌入式计算机常常对程序完成的期限做硬性限制,这种形式的限制在台式机世界里是罕见的。随着嵌入式处理器越来越快,高速缓存和其他CPU单元也使得执行时间越来越难以预测。然而,通过仔细分析和巧妙编程,即使面对高速缓存等不可预测的系统组件,我们也可以设计出可预测执行时间的嵌入式程序。
幸运的是,有许多工具可用来处理复杂嵌入式系统所面临的挑战:高级语言、程序性能分析工具、进程和实时操作系统,等等。但是理解这些工具如何协调地一起工作,这本身就是一项很复杂的任务。本书提供了一种自底向上的方法来理解嵌入式系统设计技术。通过先理解微处理器硬件和软件的基础知识,我们就能获得有助于创建复杂系统的强有力的抽象能力。
写给嵌入式系统专业人员
本书不是一本用来理解某种特定微处理器的手册。为什么在这里呈现的技术你会感兴趣呢?有两个理由。第一,诸如高级语言编程和实时操作系统这样的技术对于构造实际的大型复杂嵌入式系统是非常重要的。生产会因为不能工作的错误系统设计而被弄得杂乱无章,系统之所以不能工作是因为它们的设计者试图从出现的问题中寻求解决方法,而不是从问题中走出来换个更大的视角研究问题。第二,用于构造嵌入式系统的组件是经常变化的,但其原理不变。一旦你掌握了创建复杂嵌入式系统所涉及的基本原理,就可以迅速地学习一种新的微处理器(或编程语言),并且把同样的基本原理用于新的组件。
写给教师
传统的微处理器系统设计起源于20世纪70年代,当时微处理器的种类相对有限。传统课程强调定制硬件和软件来构建一个完整系统。因此,它只强调某一特定微处理器的特性,包括其指令系统、总线接口,等等。
本书采用更抽象的途径研究嵌入式系统。书中利用一切机会来讨论实际组件和应用,但本质上不是一本微处理器数据手册,因此它的论述方法初看起来是新奇的。本书不专注于某种特定类型的微处理器,而是试图研究更通用的例子,以得出更普遍适用的原理。我认为这种方法更有利于教学,而从长远角度来看对于学生也更有用。对于教学更有利是因为不必太过于依赖复杂的实验室装置,而只需花费一些时间在纸上练习,进行模拟和编程练习。对于学生更有用是因为他们在这一领域最终工作时所使用的组件和设施与学校的肯定是不同的,一旦学生掌握了基础知识,他们学习新组件的细节就会容易得多。
对于获得有关嵌入式系统的物理直觉,实践经验特别重要。某些硬件设计经验是非常宝贵的,我认为每一个学生都应该知道燃烧塑封集成电路包装盒的气味。但我强烈建议你避免专注于硬件设计。如果花费太多的时间去构建硬件平台,你将没有足够的时间去编写有趣的程序。一个实际问题是,大多数课程没有时间让学生用高性能I/O设备和可能的多处理器来建造复杂的硬件平台。多数学生可以通过测量和评价一个现有的硬件平台来学习硬件知识。编制复杂嵌入式系统程序的实践也可以教给学生相当多的硬件知识,调试中断驱动代码是学生基本不会忘记的一种经验。
本书的主页(www.mkp.com/embed)中包括本书相关材料的概括、教师手册、实验材料、到相关Web站点的链接,以及包含习题解答的受密码保护的ftp站点的链接。
致谢
感谢许多帮助我准备这本书的人。一些人给了我关于本书各个方面的建议:关于规格说明的Steve Johnson(印第安纳大学),关于程序跟踪的Louise Trevillyan和Mark Charney(均在IBM研究院),关于高速缓存失效方程的Margaret Martonosi(普林斯顿大学),关于低功耗的Randy Harr(美国新思科技公司),关于分布式系统的Phil Koopman(卡内基-梅隆大学),关于低功耗计算与累加器的Joerg Henkel(NEC C&C实验室),关于实时操作系统的Lui Sha(伊利诺伊大学),关于ARM体系结构的John Rayfield(ARM公司),关于编译器和SHARC的David Levine(美国模拟器件公司),以及关于SHARC的Con Korikis(美国模拟器件公司)。许多人员在各阶段对本书进行了审阅:David Harris(哈维姆德学院),Jan Rabaey(加州大学伯克利分校),David Nagle(卡内基-梅隆大学),Randy Harr(美国新思科技公司),Rajesh Gupta、Nikil Dutt、Frederic Doucet和Vivek Sinha(加州大学欧文分校),Ronald D. Williams(弗吉尼亚大学),Steve Sapiro(SC 协会),Paul Chow(多伦多大学),Bernd G. Wenzel(Eurostep),Steve Johnson(印第安纳大学),H. Alan Mantooth(阿肯色大学),Margarida Jacome(得克萨斯大学奥斯汀分校),John Rayfield(ARM公司),David Levine(美国模拟器件公司),Ardsher Ahmed(马萨诸塞大学/达特茅斯大学),Vijay Madisetti(佐治亚理工学院)。还要特别感谢编辑Denise Penrose,Denise费了很大精力寻找本书的潜在用户并和他们交流,帮助我们了解读者想要学什么。特别感谢她的洞察力和坚持。Cheri Palmer和她的出版团队在令人难以置信的紧迫日程内出色地完成了工作。当然,所有的错误和失误都是我的。

Wayne Wolf

上架指导

计算机/嵌入式

封底文字

本书自第1版出版至今,记录了近20年来嵌入式领域的技术变革,成为众多工程师和学生的必备参考书。全书从组件技术的视角出发,以嵌入式系统的设计方法和过程为主线,涵盖全部核心知识点,并辅以大量有针对性的示例分析,同时贯穿着对安全、性能、能耗和可靠性等关键问题的讨论,构建起一个完整且清晰的知识体系。
为便于教学,书中每一章都包含习题和上机练习,配套网站www.marilynwolf.us免费提供PPT、实验指导及相关Web资源链接。

第4版重要更新
新增一章讲解物联网。介绍了物联网的体系结构、网络和数据库等基础知识,并以智能家居为例展示了物联网的实际应用。
将安全问题贯穿全书。安全是本书各版本始终关注的主题,随着嵌入式系统应用范围的扩大,这一主题也得到了更深入的讨论。
更加丰富的高级主题。扩展了关于多处理器片上系统和网络嵌入式系统的内容,这些前沿知识也拓宽了嵌入式领域的内涵和外延。

作者简介
玛里琳·沃尔夫(Marilyn Wolf) 佐治亚理工学院教授,佐治亚研究联合会优秀学者,IEEE会士,ACM会士。1984~1989年任职于贝尔实验室,1989~2007年执教于普林斯顿大学。她于2003年获得ASEE Frederick E. Terman奖,于2006年获得IEEE电路与系统教育奖。

译者简介
宫晓利 2011年博士毕业于南开大学,同年留校任教,现为南开大学计算机与控制工程学院副教授,研究方向包括嵌入式系统、移动云计算和物联网。

图书序言

数字系统设计已经进入新的时代。当微处理器设计转向一种典型的优化工作时,只把微处理器作为其部件的嵌入式计算系统设计已经成为一个广阔的新领域。无线系统、可穿戴系统、网络系统、智能家电、工业过程系统、先进汽车系统以及生物接口系统与这个新领域均有交叉,是嵌入式系统设计的热门应用方向。
受传感器、转换器、微电子学、处理器性能、操作系统、通信技术、用户接口和封装技术进步的推动,以及对于用户需要和市场潜能的深入理解,正在涌现出大量新的系统和应用。现在系统设计师和嵌入式系统设计人员的职责就是把这些可能变成现实。
然而现在,嵌入式系统设计仍处于手工阶段。虽然有关硬件组件和软件子系统的知识是很清楚的,但是还没有通用的统筹整个设计过程的系统设计方法,在大多数情况下,仍然是为每个项目完成一个专门的设计。
嵌入式系统设计所面临的某些挑战源于基础技术的改变以及系统各部件全部正确地混合和集成在一起的奥妙,另一些挑战源于新的并且常常是不熟悉的系统需求。此外,通信和协作基础设施及技术的改善使得设计对市场需求的响应达到了前所未有的速度。但是,还没有有效的设计方法和相关的设计工具足以迅速应对这些挑战。
在VLSI时代的开始阶段,晶体管和导线是基本部件,快速设计单芯片计算机是一种梦想。今天,CPU和各种专用处理器以及子系统仅是一些基本部件,但快速、高效地设计极复杂的嵌入式系统却仍是一个梦想。现在不但系统规格说明极其复杂,而且面临着实时期限、低功耗、有效地支持复杂实时用户界面、强劲的成本竞争以及设计的系统必须可升级等问题。
Wayne Wolf教授编写了系统地处理大量新的系统设计需求和挑战的第一本教科书。Wolf提出了嵌入式系统设计的形式体系和方法学,可以为嵌入式系统架构师提供帮助。这些架构师要真正理解各种组件的技术原理和系统设计基础,并运用书中的方法构造出新型的“超薄”系统。
从分析每一种技术基础出发,Wolf教授为规范和建造系统结构及行为提供了形式化方法,然后通过一系列示例解析这些思想,而且还仔细研究了所涉及的复杂性以及如何系统地处理这些复杂问题。你会提前清楚地理解这些设计问题的本质,并知道攻克这些难关的关键方法和工具。
作为嵌入式系统设计的第一本教科书,本书必将成为在这个重要和最新出现的领域里获得知识的无价工具。本书亦可以作为实际设计工作的可靠指南。我向读者强烈推荐本书。

Lynn Conway
密歇根大学电子工程和计算机科学系名誉教授

作者简介

[美]玛里琳·沃尔夫(Marilyn Wolf)著:---作者简介---
玛里琳·沃尔夫(Marilyn Wolf) 佐治亚理工学院教授,佐治亚研究联合会优秀学者,IEEE会士,ACM会士。1984~1989年任职于贝尔实验室,1989~2007年执教于普林斯顿大学。她于2003年获得ASEE Frederick E. Terman奖,于2006年获得IEEE电路与系统教育奖。

---译者简介---
林水生 电子科技大学通信与信息工程学院教授,物联网工程系主任,全国物联网工程及相关专业教学指导小组成员。目前主要从事无线通信系统、无线传感器网络、通信集成电路设计等方面的研究工作。

译者序

从承载人类梦想刺破天际的嫦娥号,漫步火星的太空车,在光滑如镜的冰面上穿梭自如的军用机器人,到时刻伴随身边的智能手机和自动变频的智能空调,嵌入式系统似乎无处不在。
但嵌入式系统的准确界定是什么?这却又是同时困扰初学者和很多业内资深人士的共同问题。嵌入式系统是一个复杂的概念,涉及硬件、指令、编程、操作系统、人机交互等诸多方面的知识。如果以概念为主,容易过于抽象而使得初学者难于理解;如果以应用案例为主,又会陷入到某一个场景之中失之偏颇。
嵌入式系统领域的资深教授Marilyn Wolf则以嵌入式系统的设计方法和过程为主线,讲解嵌入式系统每个重要环节的知识,并辅以针对性的案例分析以便读者理解。同时交织穿插讲解嵌入式系统所关注的性能、能耗、可靠性等关键问题,将原本零散、晦涩的嵌入式知识完整地构建成了一个易于学习的体系。不仅于此,作者在本书中还扩展到了物联网、嵌入式多核等新兴知识,极大丰富了嵌入式领域的内涵和外延。因此,我们选择本书进行翻译,希望能在国内嵌入式系统的相关教材中增加一部重量级的著作。
原书作者经验丰富,高屋建瓴,导致本书论述过程中偶有跳跃,为便于读者阅读,我们在翻译过程中增加了一些译者注以使得思路更加连贯,但因水平有限,难免出现画蛇添足的情况,如有不妥之处,请读者不吝赐教。
本书能够顺利成稿,要衷心感谢南开大学嵌入式系统与信息安全实验室的魏鑫、杨皓翔、刘未来、李雨轩、冯帆、孙承君、张瑞等同学在全书的翻译过程中付出的辛苦努力。此外,还要感谢南开大学计算机与控制工程学院的各位老师在本书翻译过程中提供的指导和支持。
本书已更新至第4版,前几版均由国内的同行前辈进行翻译,使得我们在此版翻译的过程中受益良多。限于译者的水平和经验,译文中难免存在不当之处,恳请读者见谅并提出宝贵意见。

译者
2018年3月于南开园

图书目录

出版者的话
译者序
第1版序言
第4版前言
第3版前言
第2版前言
第1版前言
第1章 嵌入式计算1
1.1 引言1
1.2 复杂系统与微处理器1
1.2.1 嵌入式计算机2
1.2.2 嵌入式计算应用的特点3
1.2.3 为什么使用微处理器4
1.2.4 信息物理系统6
1.2.5 防危性和安全性6
1.2.6 嵌入式计算系统设计所面临的挑战8
1.2.7 嵌入式计算系统的性能9
1.3 嵌入式系统设计过程9
1.3.1 需求10
1.3.2 规格说明14
1.3.3 体系结构设计14
1.3.4 设计硬件与软件组件16
1.3.5 系统集成16
1.3.6 系统设计的形式化方法16
1.3.7 结构描述17
1.3.8 行为描述20
1.4 设计示例:模型火车控制器22
1.4.1 需求23
1.4.2 DCC24
1.4.3 概念性规格说明25
1.4.4 详细规格说明27
1.4.5 经验总结32
1.5 本书导读32
1.5.1 第2章:指令集33
1.5.2 第3章:CPU33
1.5.3 第4章:计算平台33
1.5.4 第5章:程序设计与分析34
1.5.5 第6章:进程和操作系统34
1.5.6 第7章:系统设计技术35
1.5.7 第8章:物联网系统35
1.5.8 第9章:汽车和航天系统35
1.5.9 第10章:嵌入式多处理器36
1.6 总结36
我们学到了什么36
扩展阅读36
问题37
上机练习38
第2章 指令集39
2.1 引言39
2.2 预备知识39
2.2.1 计算机体系结构分类39
2.2.2 汇编语言41
2.2.3 VLIW处理器42
2.3 ARM处理器43
2.3.1 处理器和存储体系44
2.3.2 数据运算44
2.3.3 控制流程49
2.3.4 ARM的高级特性54
2.4 PICmicro系列中端微处理器55
2.4.1 处理器和存储体系55
2.4.2 数据操作55
2.4.3 控制流程57
2.5 TI C55x DSP58
2.5.1 处理器和存储体系58
2.5.2 寻址模式61
2.5.3 数据操作62
2.5.4 控制流程63
2.5.5 C语言编程指南64
2.6 TI C64x65
2.7 总结68
我们学到了什么68
扩展阅读68
问题68
上机练习69
第3章 CPU70
3.1 引言70
3.2 输入/输出编程70
3.2.1 输入/输出设备70
3.2.2 输入/输出原语72
3.2.3 忙等待I/O73
3.2.4 中断74
3.3 特权模式、异常和陷阱85
3.3.1 特权模式85
3.3.2 异常85
3.3.3 陷阱86
3.4 协处理器86
3.5 存储系统机制86
3.5.1 高速缓存87
3.5.2 存储管理单元和地址转换91
3.6 CPU性能94
3.6.1 流水线技术94
3.6.2 高速缓存的性能98
3.7 CPU的功耗99
3.7.1 CMOS功耗99
3.7.2 电源管理模式99
3.7.3 程序级电源管理101
3.8 防危性和安全性102
3.9 设计示例:数据压缩器103
3.9.1 需求和算法103
3.9.2 规格说明105
3.9.3 程序设计106
3.9.4 测试111
3.10 总结112
我们学到了什么112
扩展阅读112
问题112
上机练习115
第4章 计算平台116
4.1 引言116
4.2 基本的计算平台116
4.2.1 平台硬件组件116
4.2.2 平台软件组件118
4.3 CPU总线119
4.3.1 总线结构和协议119
4.3.2 直接内存访问124
4.3.3 系统总线配置125
4.4 存储设备和系统127
4.5 基于计算平台的系统设计129
4.5.1 示例平台129
4.5.2 选择平台129
4.5.3 知识产权131
4.5.4 开发环境132
4.5.5 看门狗定时器132
4.5.6 调试技术133
4.5.7 调试中的困难和挑战135
4.6 消费类电子设备的体系结构136
4.6.1 消费类电子设备的用例和需求136
4.6.2 文件系统137
4.7 平台级性能分析138
4.8 平台级电源管理141
4.9 设计示例:闹钟142
4.9.1 需求142
4.9.2 规格说明143
4.9.3 系统体系结构146
4.9.4 组件设计和测试147
4.9.5 系统集成和测试147
4.10 设计示例:音频播放器147
4.10.1 工作原理和需求147
4.10.2 规格说明149
4.10.3 系统体系结构150
4.10.4 组件设计和测试151
4.10.5 系统集成和调试151
4.11 总结151
我们学到了什么151
扩展阅读151
问题152
上机练习154
第5章 程序设计与分析155
5.1 引言155
5.2 嵌入式程序的组件155
5.2.1 状态机155
5.2.2 循环缓冲区和面向流的程序设计157
5.2.3 队列与生产者/消费者系统161
5.3 程序模型163
5.3.1 数据流图163
5.3.2 控制/数据流图164
5.4 汇编、链接和加载166
5.4.1 汇编器167
5.4.2 链接170
5.4.3 目标代码设计171
5.5 编译技术172
5.5.1 编译过程172
5.5.2 基本编译方法173
5.5.3 编译器优化方法179
5.6 程序级性能分析185
5.6.1 程序性能分析186
5.6.2 测量驱动的性能分析190
5.7 软件性能优化193
5.7.1 循环的基本优化193
5.7.2 针对高速缓存的优化194
5.7.3 性能优化策略196
5.8 程序级的能量和功率分析及优化197
5.9 程序长度的分析和优化199
5.10 程序验证和测试200
5.10.1 白盒测试201
5.10.2 黑盒测试205
5.10.3 功能性测试206
5.11 防危性与安全性207
5.12 设计示例:软件调制解调器207
5.12.1 工作原理和需求207
5.12.2 规格说明209
5.12.3 系统体系结构209
5.12.4 组件设计和测试210
5.12.5 系统集成和测试210
5.13 设计示例:数码相机210
5.13.1 工作原理和需求210
5.13.2 规格说明214
5.13.3 系统体系结构216
5.13.4 组件设计和测试218
5.13.5 系统集成和测试218
5.14 总结218
我们学到了什么218
扩展阅读218
问题219
上机练习225
第6章 进程和操作系统227
6.1 引言227
6.2 多任务和多进程227
6.3 多速率系统229
6.3.1 进程的时间约束230
6.3.2 CPU使用效率度量标准234
6.3.3 进程状态和调度234
6.3.4 运行周期性进程235
6.4 抢占式实时操作系统237
6.4.1 两个基本概念237
6.4.2 进程和上下文238
6.4.3 进程和面向对象设计240
6.5 基于优先级的调度241
6.5.1 单调速率调度242
6.5.2 最早截止时限优先调度244
6.5.3 RMS与EDF比较248
6.5.4 共享资源248
6.5.5 优先级反转250
6.5.6 低功耗调度250
6.5.7 对模型假设的进一步分析250
6.6 进程间通信机制252
6.6.1 共享内存通信252
6.6.2 消息传递253
6.6.3 信号254
6.6.4 信箱254
6.7 评估操作系统性能255
6.8 实时操作系统示例258
6.9 设计示例:电话答录机263
6.9.1 工作原理和需求263
6.9.2 规格说明265
6.9.3 系统体系结构267
6.9.4 组件设计和测试268
6.9.5 系统集成和测试269
6.10 设计示例:发动机控制单元269
6.10.1 工作原理和需求269
6.10.2 规格说明270
6.10.3 系统体系结构270
6.10.4 组件设计和测试272
6.10.5 系统集成和测试272
6.11 总结272
我们学到了什么273
扩展阅读273
问题273
上机练习277
第7章 系统设计技术279
7.1 引言279
7.2 设计方法279
7.2.1 为什么需要设计方法279
7.2.2 设计流程281
7.3 需求分析285
7.4 规格说明286
7.4.1 面向控制的规格说明语言286
7.4.2 改进的规格说明288
7.5 系统分析和架构设计290
7.6 可靠性、防危性和安全性293
7.6.1 示例293
7.6.2 质量保证技术296
7.6.3 验证规格说明297
7.6.4 设计审查298
7.6.5 面向安全的方法299
7.7 总结301
我们学到了什么301
扩展阅读301
问题301
上机练习302
第8章 物联网系统303
8.1 引言303
8.2 IoT系统应用303
8.3 IoT系统体系结构304
8.4 IoT网络305
8.4.1 OSI模型306
8.4.2 互联网协议306
8.4.3 IoT网络的概念308
8.4.4 蓝牙和低功耗蓝牙310
8.4.5 802.15.4和无线个域网312
8.4.6 Wi-Fi313
8.5 数据库和时间轮315
8.5.1 数据库315
8.5.2 时间轮317
8.6 示例:智能家居317
8.7 总结319
我们学到了什么319
扩展阅读320
问题320
上机练习320
第9章 汽车和航天系统321
9.1 引言321
9.2 汽车和飞机中的网络控制系统321
9.3 车载网络323
9.3.1 CAN总线323
9.3.2 其他汽车网络325
9.4 防危性和安全性326
9.5 总结327
我们学到了什么328
扩展阅读328
问题328
上机练习328
第10章 嵌入式多处理器329
10.1 引言329
10.2 为什么需要多处理器329
10.3 多处理器的种类331
10.4 MPSOC和共享内存多处理器332
10.4.1 异构共享内存多处理器333
10.4.2 加速器333
10.4.3 加速器性能分析335
10.4.4 调度和分配337
10.4.5 系统集成339
10.4.6 调试342
10.5 设计示例:视频加速器342
10.5.1 视频压缩342
10.5.2 算法和需求344
10.5.3 规格说明345
10.5.4 架构345
10.5.5 组件设计347
10.5.6 系统测试348
10.6 应用示例:光盘348
10.7 总结351
我们学到了什么351
扩展阅读351
问题351
上机练习352
术语表353
参考文献366
索引374

教学资源推荐
作者: [美]胡文美(Wen-mei W. Hwu)编著
作者: 江国强
作者: [美]陈昱廷(Yu-Ting Chen) 丛京生(Jason Cong) 迈克尔·吉尔(Michael Gill) 格伦·雷曼(Glenn Reinman) 肖冰峻(Bingjun Xiao) 著
参考读物推荐
作者: 陆平 赵培 左奇 等编著
作者: (美)Elecia White 著
作者: 赵建领; 薛园园
作者: [美] 沃尔弗拉姆·多纳特(Wolfram Donat) 著