shell Firefox 程序员 云计算 centos 编程 wordpress java php apache Python mysql Android nginx linux Ubuntu 开源 微软 Windows google

《 嵌入式系統設計與實踐》一一1.1 編譯器、編程語言以及面向對象編程

1.1 編譯器、編程語言以及面向對象編程
嵌入式系統的另一個特點就是在開發中都使用交叉編譯器。雖然交叉編譯器運行在臺式計算機或者筆記本計算機上,但編譯出來的代碼卻不是。交叉編譯的映像文件在目標嵌入式系統上運行。由於編譯完的代碼需要在嵌入式處理器上運行,所以目標系統的供應商通常會提供一個交叉編譯器或者一系列的交叉編譯器供選擇。不少大的處理器供應商使用基於GNU工具系列的交叉編譯器。
嵌入式軟件編譯器通常只支持C或者同時支持C和C++。而且,許多嵌入式C++編譯器只實現了C++語言的子集(一般來說,多重繼承、異常處理以及模板都沒有實現)。JAVA在嵌入式系統中日益流行,但其內在的內存管理問題使得它只能使用在大型系統中。
不管你在軟件中使用什麽語言,都可以使用面向對象的設計。封裝、模塊化以及數據抽象的設計原則可以應用在幾乎任何應用程序和任何語言中。目的是讓設計健壯、易維護和靈活。我們應該使用面向對象技術的所有優點。
從總體上說,嵌入式系統可以看做是對象,尤其是作為一個更大系統的一部分時(如,與機頂盒通信的遙控器、工廠的分布式控制系統、汽車上的氣囊展開傳感器)。從更高的層面上說,一切都是面向對象的,因此把這一結論向下擴展到嵌入式軟件是合乎邏輯的。
另一方面,我不主張嚴格地遵循所有面向對象的設計原則。嵌入式系統有太多的設計目標,因此不可能確立一個一成不變的原則。一旦我們認識到了需要權衡之處,就可以在軟件設計目標和系統設計目標之間進行權衡。
本書中的大部分例子都使用C或者C++。我認為概念比語言更重要,所以即使不熟悉語法,閱讀代碼也沒有太大問題。本書不介紹任何編程語言(除了一些匯編語言之外)。正如我所說,設計原則高於編程語言。

延伸阅读

    评论