描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111601487
出版者的话
译者序
第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
本书在两方面做出了巨大改动。,新增了物联网(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版前言微处理器早已成为我们生活的一部分,然而,微处理器足够强大到能执行真正复杂的功能还是近几年的事。在摩尔定律的驱动下,微处理器飞速发展,同时促使嵌入式计算成为一门学科。在微处理器的早期阶段,所有组件相对较小也较简单,
评论
还没有评论。