嵌入式系统是从单片机、微控制器等工业控制技术发展而来的,一种流行的定义认为,除PC为代表的通用计算机之外,几乎所有信息处理系统,包括网络设备、信息家电、工业控制、医疗设备、测试仪器、通信设备、汽车电子等等都属于嵌入式系统。显然,我们早已经被嵌入式系统所包围。
嵌入式系统技术主要有硬件和软件两个层面。硬件包括处理器、存储、接口、总线和其他电路设计,软件则包括操作系统、编程语言与开发工具、驱动程序、接口程序、联网程序、用户界面等等内容。
本文将只选择讲述主流技术的图书推荐。
嵌入式系统开发大全
人民邮电出版社(即将出版)
学习内容繁复庞杂的嵌入式系统,掌握宏观图景(big picture)是非常重要的。从一本好的总论型图书入手很可能会使你以后的旅途更加顺利。可以归入本类的图书大多是各种教材,而且往往局限于理论,与工程现场有隔阂。正因为如此,当曾经供职于风河公司(以开发VxWorks而占据嵌入式市场大半份额的龙头企业)的嵌入系统专家T a m m yNoergaard 撰写的本书原版出版之后,迅速得到了广泛的欢迎,成为畅销之作。
本书的特点一是全面,不仅涵盖了前面我们提到的几乎所有方面:嵌入式标准、处理器、内存、I/O、总线、设备驱动程序、操作系统、中间件,而且还讨论了分析到实现、测试等完整的嵌入式系统设计流程,后者是大部分相关图书都很少讲述的。其次,由于作者实践经验和经历都很丰富(除风河外,还曾效力于索尼和Esmertec,负责过消费电子、操作系统等等项目的开发和管理),加上曾经执教于加州大学伯克利分校和斯坦福大学,书中很好地做到了理论和实践的结合。当然,不要希望从书中学到各种技术细节,那是后面介绍的几本书地任务。
时间触发嵌入式系统设计模式
中国电力出版社
这也是一本综合性图书,不过它的价值不在引导读者入门,而是实践经验的总结。是的,这是嵌入式系统领域中模仿《设计模式》风格的一本书。所以,Kent Beck 为其作序也就不足为奇了。书中以模式形式总结了来自各种文献资料中振荡器、硬件复位、存储器、驱动、各种软件应用(端口、延迟和看门狗等)、各种接口、外围模块乃至监控组件(PFM、PWM、ADC、DAC等等)等等诸多问题的解决方案(许多还给出了电路和C语言源代码),可以很快地应用到实际工作中去。书中对时间调度的讲解非常细致。看得出来,本书的作者肯定花了不少功夫才得以完成此作。对实际开发人员来说,本书是一本非常方便、能够事半功倍的优秀参考书。
值得一提的是,作者是英国一所大学的讲师,本书是其嵌入式系统三部曲之二,第一本是《C语言嵌入式系统开发》一书,讲述8051 C语言编程,也值得推荐,比同一类型的《C/C++嵌入式系统编程》(中国电力出版社)更贴近实际。另外还有一本讲操作系统的,目前尚未出版。
Bruce Douglass 所著由机械工业出版社出版的《嵌入式与实时系统开发:使用UML·对象技术·框架与模式》与本书类似,也采用了模式方法,但是该书更注重软件工程,而且侧重于讲面向对象方法在嵌入系统中的应用,总体感觉有与现实脱节之嫌。
嵌入式硬件设计
中国电力出版社
专讲硬件的图书少之又少,似乎也只有本书可以推荐。书中基本上覆盖了前面讲到的硬件知识领域,处理器讲述了PIC、Atmel AVR 和Motorola 68000 系列,涉及了CAN总线,最后有一个电动机控制的实例。需要指出,本书主要面对的是初学者以及硬件和电气知识比较缺乏的软件工程师。如果你是有一定经验的硬件工程师,或者本身出自电气类学科,可能会觉得太浅。许多读者还抱怨书中用一整章讲述Forth这样罕用的语言。本书原版已有第二版,不过国内尚未引进。
ARM SoC 体系结构
北京航空航天大学出版社
虽然绝对的使用量可能还比不上8051和PIC这样8位的低档竞争者,但ARM无疑已经成为目前最炙手可热的嵌入式系统处理器。本书作者Steve Furber是ARM的最初设计者之一,权威性显然毋庸置疑。书中讲述了ARM的体系结构、指令集、汇编语言、存储器和处理器核、CPU核以及对编程语言和操作系统的支持等等,应该是从事ARM开发者的必读之作。Furber 本人是英国皇家学院和工程院的双料院士,也是英国计算机学会和IEEE的会士。他年青时曾经是国际数学奥林匹克比赛英国代表队成员。
另外一本值得推荐的ARM图书应该是北京航空航天大学出版社翻译出版Andrew Sloss 等所著的《ARM 嵌入式系统开发:软件设计与优化》。此书属于中高级著作,侧重于软件层面,重点是如何编写高效程序,与上面的一本书配合阅读绝佳。
嵌入式系统软件教程
机械工业出版社
专门讲述嵌入式软件的图书,大多以“XX处理器XX操作系统嵌入式编程/系统开发”之类的名字出现,内容以翻抄处理器或者操作系统的文档为主,另外再加一些实例。
本书超越了这种模式,作为一本导论性的教材,它以作者在加州大学伯克利分校教课的讲义基础上,全面讲述了初学者必须掌握的嵌入式软件相关知识:中断、软件架构、实时操作系统、开发环境、调试等等,深浅适度,理论编排非常清晰,而且字里行间不时透露出作者的实践经验和技巧。书中对各种工程问题也有很到位的分析和解决。书中对几种软件架构的比较分析,对于理解实时操作系统的设计原则很有帮助。
嵌入式Linux 系统设计与开发
人民邮电出版社(尚未出版)
由于VxWorks方面没有发现值得推荐的图书,我们直接跳到Linux。嵌入式Linux方面的书中,Karim Yaghmour的《构建嵌入式Linux系统》(中国电力出版社)一直处于主导地位,而且也广受好评。但是该书主要讲述的是“构建”开发环境,对程序设计本身涉及较少,而且更重要的是,该书缺乏实际项目所必需的驱动程序、实时Linux、uCLinux和图形界面等关键内容。本书去年刚刚出版,正好填补了上述空白,因此尽管售价是竞争对手的两倍都不止,仍然很快得到市场的欢迎,大有后来居上的势头。作者均为一线应用工程师(印度飞利浦),所以对读者的需求心知肚明。BSP架构,串口、I2C和USB设备驱动程序,减少系统启动时间、优化内存、找到内存泄漏等等内容非常贴近实际。而对uCLinux架构和编程模型的透彻叙述, 则得到了uCLinux内核维护者David McCullough的称赞。
嵌入式实时操作系统
μ C/OS-II(第2 版)
北京航空航天大学出版社
我2000 年决定将这本书的第一版引入国内时,国内知道μC/OS-II这个操作系统的人似乎还非常少。实际上,这个操作系统是Labrosse 自己一个人用C 编写的,他没有将内核发布为产品,因为这样的产品已经够多了。他选择了撰写文章,但是没有被杂志接受。最后,他得到了一个机会,出版了一本专门的书。令Minix名扬天下的在书中附带全部源代码的做法,同样也使这个名字怪怪的操作系统终于呈燎原之势。并在译者不遗余力的宣传推广下,成为国内嵌入式系统界追捧的对象。时至今日,该书仍是本领域最畅销的图书之一,而且被许多学校指定为教材。而Labrosse也开设了一家专门从事该系统和其他附加产品的销售和支持。应该说,μC/OS-II 的代码编写得非常干净,符合规范,核心算法也设计得很妙,移植性、可剪裁性都非常优秀,的确值得学习。而且Labrosse的书将内核知识讲得很透,胜过其他各种形式的文档。这些都是它成功的要素。不过,必须了解的是,这个操作系统虽然开发源代码,但并非开源软件。事实上,商业应用是必须付费的。
阅读(1032) | 评论(0) | 转发(1) |