当Thmmy Noergaard**次告诉我她想写一本全面介绍构建嵌入式系统的书时,我曾试图劝阻她。因为该领域非常广阔,需要对许多技术都有深入的了解,例如电子学、逻辑电路、计算机设计、软件工程、C语言和汇编语言等。但是当我们一起讨论时,她让我了解了业内非常缺乏一本关于该主题的权威著作,但我提醒她,这将是一项浩大的工程。
期间经过多次讨论,一年后联邦快递终于送来了这本书的审校稿。全书700多页,其厚度大约是同主题其他书籍的两倍,所以你现在阅读的这本书是真正的“嵌入式工程师和程序员的完整指南”。本书的内容包罗万象,涵盖嵌入式系统领域各方面的重要技术,当然一些技术细节(比如PIC计时器的编程)限于篇幅,无法在书中加以详细介绍。
Tammy女士从电子学的基本原理讲起,内容逐步延伸到软件设计,直至成本很高的后期系统维护。她将嵌入式系统的软硬件看成一个整体,反映了嵌入式系统的本质。但是事实上,由于开发人员的技术分工越来越专业化,不少软件人员对晶体管的相关知识知之甚少,许多电子工程师也不能准确地解释中间件的含义。所以,我担心读者可能会跳过书中一些与其手头工作关系不很密切的章节。
亲爱的读者,请一定不要有这种想法!要想成为一名真正的大师,一名嵌入式领域的专家,必须要开阔你的眼界,全面涉猎这一让人着迷的领域内的知识。工程师的专业性很强,这一点你和我心里都很清楚。然而真正的专家应该是那些不断学习新知识,并迅速地将新知识运用到实践中解决问题的人。比女120世纪40年代青霉素的发现和生产根本性地改变了医药领域的专业知识,任何一名医生如果仍然沿用学校里所教的而忽视这一新技术,就会落伍。现在,软硬件开发人员也面临着同样的形势。我上学的时候学校里还没教c语言,FPGA(现场可编程门阵列)也还没发明,谢天谢地GOTO现在还有用武之地。以前我们所学的是用一些原始的工具和机器代码对微处理器进行编程,而今天,我们很清楚变化已是多么巨大了。
技术进步的速度正越来越快。专业的开发人员将会把这本书从头读到尾,并能不断地从书中挖掘出宝贵信息。如果你不能做到平均每月至少浏览六七本科技杂志以及每年至少读几本这样的书,那么你就会落伍了。
书中的一些内容也许会让你惊讶,比如竟然用近10页来介绍阅读数据手册!事实上,特定芯片的数据手册是大量规范数据的信息汇编。芯片制造商承诺只要我们按约定的规程操作,芯片就会完成相应的任务。在数以千计的规范中,只要我们没有满足其中的一条,芯片就有可能工作不正常或不可靠。对于一些耗电达100 w甚至更高的芯片而言,数据手册中即便是像发热特性这样的小细节也将和嵌入式处理器的指令集同等重要。
Tammy女士运用了大量的实例来阐明一些较难理解的知识点。工程技术(无论是硬件还是软件)是用于制造系统并解决问题的一门艺术。大学的教授们通过纯理论开展研究,而对于注重实践的开发人员,*好的学习方式就是观察系统是如何工作的。因此,关于设备驱动程序的章节不仅讲解了如何构建这些复杂的代码,而且还结合了大量的实例来进行阐述。
*后,Tammy女士关于嵌入式系统体系结构业务周期的观点引起了我强烈的共鸣。我们考虑这个问题并不只是为了自娱自乐(尽管我们确实得到了很多快乐),而是为了解决嵌入式产品重要的商务问题。我们的每一项决定都对商务运作产生影响,较小的系统功率设计和飞涨的开发成本都可能使项目夭折。一个糟糕的需求分析让你选用了过多的闪存,这可能会使产品的成本高得让人无法接受。使用一个衰落公司提供的软硬件组件来设计系统,将导致你的产品与那个公司一起走向衰落。
尽情享用本书吧,它将使你的职业生涯长青。