官术网_书友最值得收藏!

1.1 嵌入式Linux下C語言概述

在嵌入式系統中,應用程序的主體是在宿主機中開發完成的。就嵌入式 Linux 而言,此過程則一般是在安裝有Linux的宿主機中完成的。

本章中介紹的是嵌入式Linux下C語言的開發工具,用戶在開發時往往是在Linux宿主機中對程序進行調試,然后再進行交叉編譯。

1.1.1 C語言簡史

C語言于20世紀70年代誕生于美國的貝爾實驗室。在此之前,人們編寫系統軟件主要使用匯編語言。匯編語言編寫的程序依賴于計算機硬件,其可讀性和可移植性都比較差。而高級語言的可讀性和可移植性雖然較匯編語言好,但一般又不具備低級語言的能夠直觀地對硬件實現控制和操作而且執行速度快等特點。

在這種情況下,人們迫切需要一種既具有一般高級語言特性,又具有低級語言特性的語言,于是 C語言就應運而生了。由于 C 語言既具有高級語言的特點又具有低級語言的特點,因此迅速普及,成為當今最有發展前途的計算機高級語言之一。C 語言既可以用來編寫系統軟件,也可以用來編寫應用軟件。現在,C語言已經被廣泛地應用在除計算機行業外的機械、建筑、電子等各個行業中。

C語言的發展歷程如下。

① C語言最初是美國貝爾實驗室的D. M. Ritchie在B語言的基礎上設計出來的,此時的C語言只是為了描述和實現UNIX操作系統的一種工作語言。在一段時間里,C語言還只是在貝爾實驗室內部使用。

② 1975年,UNIX第6版公布后,C語言突出的優點引起人們的普遍注意。

③ 1977年出現了可移植的C語言。

④ 1978年UNIX第7版的C語言成為后來被廣泛使用的C語言版本的基礎,被稱為標準C語言。

⑤ 1983年,美國國家標準學會(ANSI)根據C語言問世以來的各種版本,對C語言進行發展和擴充,并制定了新的標準,稱為ANSI C。

⑥ 1990年,國際標準化組織(ISO)制定了ISO C標準,目前流行的C語言編譯系統都是以它為標準的。

1.1.2 C語言特點

C 語言兼有匯編語言和高級語言的優點,既適合于開發系統軟件,又適合于編寫應用程序,被廣泛應用于事務處理、科學計算、工業控制、數據庫技術等領域。

C語言之所以能存在和發展,并具有強大的生命力,都要歸功于其鮮明的特點。這些特點如下。

1.C語言是結構化的語言

C 語言采用代碼及數據分隔的方式,使程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便于使用、維護以及調試。

C 語言是以函數形式提供給用戶的,這些函數可被方便地調用,并具有多種循環語句、條件語句控制程序流向,從而使程序完全結構化。

2.C語言是模塊化的語言

C 語言主要用于編寫系統軟件和應用軟件。一個系統軟件的開發需要很多人經過幾年的時間才能完成。一般來說,一個較大的系統程序往往被分為若干個模塊,每一個模塊用來實現特定的功能。

在 C 語言中,用函數作為程序的模塊單位,便于實現程序的模塊化。在程序設計時,將一些常用的功能模塊編寫成函數,放在函數庫中供其他函數調用。模塊化的特點可以大大減少重復編程。程序設計時,善于利用函數,可以減少勞動量,提高編程效率。

3.程序可移植性好

C語言程序便于移植。目前C語言在許多計算機上的實現大都是由C語言編譯移植得到的,不同計算機上的編譯程序大約有 80%的代碼是公共的。程序不做任何修改就可用于各種型號的計算機和各種操作系統。因此,特別適合在嵌入式開發中使用。

4.C語言運算符豐富、代碼效率高

C語言共有34種運算符,使用各種運算符可以實現在其他高級語言中難以實現的運算。在代碼質量上,C語言可與匯編語言媲美,其代碼效率僅比用匯編語言編寫的程序低10%~20%。

1.1.3 嵌入式Linux C語言編程環境

嵌入式Linux C語言程序設計與在其他環境中的C程序設計很類似,也涉及編輯器、編譯鏈接器、調試器及項目管理工具的使用。現在我們先對這4種工具進行簡單介紹,后面會一一進行講解。

1.編輯器

嵌入式Linux下的編輯器就如Windows下的Word、記事本等一樣,完成對所錄入字符的編輯功能。最常用的編輯器有vi(vim)和Emacs,它們功能強大、使用方便,本書重點介紹vi。

2.編譯鏈接器

編譯過程包括詞法、語法和語義的分析、中間代碼的生成和優化、符號表的管理和出錯處理等。在嵌入式Linux中,最常用的編譯器是GCC編譯器。它是GNU推出的功能強大、性能優越的多平臺編譯器,其執行效率與一般的編譯器相比平均效率要高20%~30%。

3.調試器

調試器可以方便程序員在程序運行時進行源代碼級的調試,但不是代碼執行的必備工具。在程序開發的過程當中,調試所消耗的時間遠遠大于編寫代碼的時間。因此,有一個功能強大、使用方便的調試器是必不可少的。GDB可以方便地設置斷點、單步跟蹤等,足以滿足開發人員的需要。

4.項目管理器

嵌入式Linux中的項目管理器“make”類似于Windows中Visual C++里的“工程”管理,它是一種控制編譯或者重復編譯代碼的工具。另外,它還能自動管理軟件編譯的內容、方式和時機,使程序員能夠把精力集中在代碼的編寫上而不是在源代碼的組織上。

主站蜘蛛池模板: 镇平县| 常德市| 时尚| 陆河县| 渝北区| 仙桃市| 临高县| 出国| 玉屏| 夹江县| 四平市| 佛学| 邵阳市| 星子县| 顺平县| 安陆市| 溧水县| 清新县| 盱眙县| 秭归县| 庆阳市| 灌南县| 共和县| 静乐县| 武川县| 凌海市| 凌云县| 正安县| 紫云| 科技| 玉龙| 皮山县| 泾川县| 雷波县| 乌什县| 沐川县| 万州区| 家居| 太保市| 南京市| 张北县|