C/C++嵌入式系统编程
Micbael Barr 著
于志宏 译
作者简介
Michael Barr 是 Netrino 公司(一个嵌入式系统共享软件和软件工程服务提
供商)的创始人兼总裁。Netrino 公司鼓励所有职员通过为杂志撰稿和在业界会
议演讲来分享自己的专业知识。这些资料可以在公司的网站
http://www.netrino.com 找到。
Michael 拥有马里兰大学的电机工程学士和硕士学位。他的大部分时间都用
在嵌入式软件、设备驱动和实时操作系统的开发上了。他还喜欢写作、教书,
并期待着开始下一部著作的创作。目前他有好几个计划,其中包括一部小说。
前言
首先需要弄清楚,你为什么希望你的学生学习某个主题,
以及你希望他们学到什么,那么一般来说,
你授课的方法或多或少就有了。
-Richard Feynman
今天,几乎所有电子设备里面部包含了嵌人式的软件系统。这些软件隐藏在
我们的手表里、录像机里、蜂窝电话里,甚至可能在烤面包机里面。军事上会
使用嵌入式软件来引导导弹。侦测敌方的飞行物。外太空探测器和许多医疗仪
器离开嵌人式软件几乎不可能工作。
设计人员不得不写所有的代码,实际上,成千上万的电子工程师 计算机科
学家和其他专业人员正在这样做。我也是其中的一员,从我的个人经验来说,
我很清楚掌握这门技术是多么的困难。学校军从未开设有关嵌入式系统的课程。
而我也没能从哪个图书馆里找到一本有关这个题目的像样的书。
每一个嵌入式系统都是独特的,其硬件部分对它的应用目标来说是高度专用
的。这就导致了嵌入式系统编程的涉及面很广,而且可能会需要很多年才能掌
握它。不过,几乎所有的嵌入式软件开发都使用了 C 语言。这本书就是要教你
怎样在嵌入式系统中使用 C 和 C 的派生语言,C++。
即使你已经知道如问编写嵌入式软件,你还是可以从这本书里学到很多东
西。除了了解如何更有效地使用 C 和 C++你还将会从本书中对常见的嵌人式软
件问题的详细解释,并从本书所提供的源代码中得到益处。本书中包含的高级
主题有存储器检测和验证、设备驱动程序的设计和实现.实时操作系统的内部
机理,还有代码优化技术。
我为什么写这本书
我曾经听到一个统计数字,在美国,平均下来大概每个人拥有八个微处理器。
我当时很惊讶,怎么可能呢?难道我们周围真的有这么多计算机吗?后来.当
我有更多时间来想这个问题的时候,我开始把我用过的并且可能含有一个微处
理器的东西逐一列出来。短短三分钟内,我的清单已经包含了十样物品了 它们
是:电视机、录音机、咖啡机、报时闹钟、录像机、微波炉、洗碗机、遥控器、
烤面包机、还有数字式手表。这还只是我的个人物品——我很快就可以拿出我
工作中用到的另外十样东西。
进一步的发现是很自然的。那些产品里的每一个都不仅仅包含一个处理器。
还有软件在里面。最终,我知道在我一生里我想做些什么了。我希望能用我的
编程技能来开发这种嵌入式的什算机系统。但是我如问能得到必要的知识呢?
当时我正在该大学的最后一年,而学校里迄今为止没有关干嵌入式系统编程的
课程。
幸运的是、虽然我那时还处在学习的过程中 但当我毕业的时候我还是找到
了一家公司,从事编写嵌人式软件的工作。不过在这里我必须要靠自己的努力,
因为为数不多的了解嵌人式软件的几个人通常都非常的忙,以至于很少有时间
来解答我的问题,所以找到处找能给我教益的书、最后。才发现我必须自学所
有的东西因为我从没有找到这么一本书,并且我很奇怪为什么会没有人来写这
么一本书。
现在我决定自己来写这样一本书了。在此过程中 我也发现了为什么以前没
有人做这件事。关于这个题目最困难的是,决定什么时候可以收笔封稿了。每
一个嵌八式系统都是独一无二的,并且就我所知,每一条法则同时都会存在例
外倩况。不过,我已经尝试着提取出这个主题的本质的东西,并且仅仅讲述嵌
人式系统程序员们必须要了解的那些部分。
面向的读者
这是一本关于使用 C 和 C++来进行嵌人式系统编程的书。同样,这里假定
读者已经有了一些编程经验,并且至少熟悉这两种语言的语法。如果你比较熟