且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《 嵌入式系统设计与实践》一一1.1 编译器、编程语言以及面向对象编程

更新时间:2022-09-15 08:27:52

1.1 编译器、编程语言以及面向对象编程
嵌入式系统的另一个特点就是在开发中都使用交叉编译器。虽然交叉编译器运行在台式计算机或者笔记本计算机上,但编译出来的代码却不是。交叉编译的映像文件在目标嵌入式系统上运行。由于编译完的代码需要在嵌入式处理器上运行,所以目标系统的供应商通常会提供一个交叉编译器或者一系列的交叉编译器供选择。不少大的处理器供应商使用基于GNU工具系列的交叉编译器。
嵌入式软件编译器通常只支持C或者同时支持C和C++。而且,许多嵌入式C++编译器只实现了C++语言的子集(一般来说,多重继承、异常处理以及模板都没有实现)。Java在嵌入式系统中日益流行,但其内在的内存管理问题使得它只能使用在大型系统中。
不管你在软件中使用什么语言,都可以使用面向对象的设计。封装、模块化以及数据抽象的设计原则可以应用在几乎任何应用程序和任何语言中。目的是让设计健壮、易维护和灵活。我们应该使用面向对象技术的所有优点。
从总体上说,嵌入式系统可以看做是对象,尤其是作为一个更大系统的一部分时(如,与机顶盒通信的遥控器、工厂的分布式控制系统、汽车上的气囊展开传感器)。从更高的层面上说,一切都是面向对象的,因此把这一结论向下扩展到嵌入式软件是合乎逻辑的。
另一方面,我不主张严格地遵循所有面向对象的设计原则。嵌入式系统有太多的设计目标,因此不可能确立一个一成不变的原则。一旦我们认识到了需要权衡之处,就可以在软件设计目标和系统设计目标之间进行权衡。
本书中的大部分例子都使用C或者C++。我认为概念比语言更重要,所以即使不熟悉语法,阅读代码也没有太大问题。本书不介绍任何编程语言(除了一些汇编语言之外)。正如我所说,设计原则高于编程语言。