图书前言

当今嵌入式系统的发展日新月异。在过去的几年里,计算的主体已经从大型、静止的桌面机器向微型、可移动、网络化和嵌入式设备方向演变,计算的内容也已经从传统的数据、文字、表格更多地向图像、视频、语音转变。而移动网络、云计算和数据中心的发展,更是把嵌入式设备的普及推向了一个新的高潮。

狭义上的嵌入式系统通常指的是手持设备、移动终端或其他类似的消费类电子产品。而广义上嵌入式系统的内涵则要丰富得多。它通常是集成在一个大系统中的一部分。嵌入式系统包括硬件和软件的组合,该组合可以形成能够运行某些特定功能的计算引擎。在这个定义下,除了包括上述狭义的嵌入式设备之外,嵌入式系统还涵盖了诸如路由器、交换机、基站、网络打印机和数据中心这样的网络设备; 发动机控制、底盘控制、智能辅助驾驶和车载娱乐这样的汽车控制系统; 以及医疗电子、智能电网和工厂自动化这样的工业系统等。本书所讨论的嵌入式系统均指广义上的嵌入式系统。

嵌入式系统的多样性大大提高了嵌入式软件的计算复杂度。不同的嵌入式系统对软件可靠性、稳定性、鲁棒性和性能具有不同的要求,而它们又往往运行在一个资源有限、可移动和高度分散的环境中。那些已经成功运用于传统计算机软件开发中的方法、技术和工具,并不太适用于嵌入式系统,因此对嵌入式软件的开发提出了新的挑战。

正是在这种背景下,Robert Oshana与Mark Kraeling两位主编联合了16位作者,向业界推出了这本《嵌入式系统软件工程——方法、实用技术及应用》。本书重点讲述了嵌入式软件的重要特性及主流的软件工程方法和技术,如软件设计、基于组件的开发、软件架构、系统集成和测试,以及与之配套的方法论、语言、工具和流程等。

对于嵌入式软件的初学者来说,这是一本很好的教材。本书共有25章和4个应用实例,内容翔实、实例丰富。它涵盖了嵌入式软件的建模、软/硬件协同设计、操作系统、编程规范、性能与优化、集成测试、质量控制、多核软件、知识产权与项目管理等主要问题,并列举了存储器I/O、Linux与开源软件及面向网络和汽车的应用,最后的应用实例可以进一步帮助读者加深对嵌入式软件的理解。

对于经验丰富的嵌入式软件高级开发人员来说,这又是一本实用性极强的参考手册。本书的25个章节各自独立,互不影响。各章所描述的问题都是在嵌入式软件开发过程中常见的问题,每章都有对各自问题的背景介绍、问题求解以及实例和总结。即使资深的开发人员,常翻看此书作为参考,也必将大有裨益。

嵌入式系统是一门实践性非常强的学科,而这也是本书的最大特点。本书的两位主编和16位作者全部来自于世界著名的IT公司和厂商,从事着嵌入式软件的开发与项目管理工作。他们在嵌入式领域的经验累积起来甚至超过了300年。正是这批专家丰富的一线实际工作经验,保证了本书在嵌入式软件实践领域高屋建瓴的指导性作用。

首先感谢原书主编之一Robert Oshana先生。在本书的中文翻译过程中,他非常关心翻译中所遇到的问题和中文读者所关心的内容。还要感谢清华大学出版社的编辑盛东亮先生,他积极促成了本书中译本的完成并提供了大量帮助。

本书的翻译工作全部是由高校从事计算机领域教学的优秀青年教师完成。其中,第1、2、3、23、25章、案例研究1~4由单波翻译; 第5、8、11、12、13、17章由苏林萍翻译; 第4、9、10、15、18、20、21、24章由谢萍翻译; 第6、7、14、16、19、22章、附录由刘向军翻译。另外,贾静平也参与了第2、3、4、7、10、16、17章的翻译工作。全书由原书英文版作者之一、飞思卡尔半导体(中国)有限公司数字网络软件技术方案部总监杨欣欣博士统一审稿。

由于译者水平有限,书中难免有错误和不妥之处,恳请广大读者批评指正。

译者