好像所有讲述编程的书都用同一个例子来开始,就是在用户的屏幕上显示出“Hello,World!”。总是使用这个例子可能有一点叫人厌烦,可是它确实可以帮助读者迅速地接触到在编程环境中书写简单程序时的简便方法和可能的困难。就这个意义来说,“Hello,World!”可以作为检验编程语言和计算机平台的一个基准。
不幸的是,如果按照这个标准来说,嵌入式系统可能是程序员工作中碰到的最难的计算机平台了。甚至在某些嵌入式系统中,根本无法实现“Hello,World!”程序。即使在那些可以实现这个程序的嵌入式系统里面,文本字符串的输出也更像是目标的一部分而不是开始的一部分。
你看,“Hello,World!”示例隐含的假设,就是有一个可以打印字符串的输出设备。通常使用的是用户显示器上的一个窗口来完成这个功能。但是大多数的嵌入式系统并没有一个显示器或者类似的输出设备。即使是对那些有显示器的系统,通常也需要用一小段嵌入式程序,通过调用显示驱动程序来实现这个功能。这对一个嵌入式编程者来说绝对是一个相当具有挑战性的开端。
看起来我们还是最好以一个小的,容易实现并且高度可移植的联人式程序来开始,这样的tb程序也不太会有编程错误。归根到底,我这本书继续选用“Hello,World!”。这个例子的原因是,实现这个程序实在太简单了。这起码在读者的程序第一次就运行不起来的时候,会去掉一个可能的原因,即:错误不是因为代码里的缺陷:相反,问题出在开发工具或者创建可执行程序的过程里面。
嵌人式程序员在很大程度上必须要依靠自己的力量来工作。在开始一个新项目的时候,除了他所熟悉的编程语言的语法,他必须首先假定什么东西都没有运转起来,甚至连标准库都没有,就是类似printf()和scanf()的那些程序员常常依赖的辅助函数。实际上,库例程常常作为编程语言的基本语法出现。可是这部分标准很难支持所有可能的计算平台,并且常常被嵌入式系统编译器的制造商们所忽略。
所以在这一章里你实际上将找不到一个真正的”Hello,World!”程序,相反,我们假定在第一个例子中只可以使用最基本的C 语言语法。随着本书的进一步深人,我们会逐步向我们的指令系统里添加C++的语法、标准库例程和一个等效的字符输出设备。然后,在第九章“综合所学的知识”里面。我们才最终实现一个“Hello,World!”程序。到那时候你将顺利地走上成为一个嵌入式系统编程专家的道路。