嵌入式開發(fā)中C語言編程的一些要點(diǎn)簡(jiǎn)述
在嵌入式Linux的C語言開發(fā)中,C語言的基本編程依然是最重要的內(nèi)容。除此之外,與一般的C語言編程相比,嵌入式Linux的C語言編程有以下一些要點(diǎn):
1、庫函數(shù)與系統(tǒng)調(diào)用
在進(jìn)行C語言編程的時(shí)候,使用庫函數(shù)是不可避免的。關(guān)于使用庫函數(shù)的最簡(jiǎn)單的例子就是printf()。在Linux環(huán)境下的C語言編程中,庫函數(shù)包括兩個(gè)部分:一種是C語言的標(biāo)準(zhǔn)庫函數(shù),例如包含srting.h頭文件的字符處理函數(shù)、包含stdio.h頭文件的標(biāo)準(zhǔn)輸入/輸出函數(shù)、包含math.h頭文件的數(shù)學(xué)函數(shù)等;另一種是UNIX和Linux特定的庫函數(shù),例如UNIX特定的文件操作函數(shù)、權(quán)限處理函數(shù)以及特定的系統(tǒng)調(diào)用等。
類似其它的UNIX系統(tǒng),Linux的很多庫函數(shù)是通過系統(tǒng)調(diào)用完成的。庫函數(shù)依然通過包含標(biāo)準(zhǔn)C語言頭文件的方式使用,在庫函數(shù)實(shí)現(xiàn)中使用Linux的系統(tǒng)調(diào)用完成。在嵌入式Linux中,很多標(biāo)準(zhǔn)的C語言庫函數(shù)需要考慮系統(tǒng)特定的情況。
例如printf()的功能是將內(nèi)容打印到標(biāo)準(zhǔn)的輸出。在通用的計(jì)算機(jī)中,標(biāo)準(zhǔn)的輸出一般默認(rèn)是顯示器。但是在嵌入式的系統(tǒng)中,標(biāo)準(zhǔn)的輸出是不確定的,可能是某種顯示設(shè)備(比如顯示器),也可能是串口等。這些與嵌入式Linux操作系統(tǒng)內(nèi)核的配置有關(guān)。
2、C語言高級(jí)應(yīng)用
目前,計(jì)算機(jī)技術(shù)高速發(fā)展,各種編程語言發(fā)展迅速。各種高級(jí)語言有著各自的優(yōu)勢(shì):C 具有完全面向?qū)ο蟮奶攸c(diǎn)以及非常全面的功能;Java具有與平臺(tái)無關(guān)的特性;C#借助微軟的強(qiáng)力支持,前景也非常廣闊;各種腳本語言則有著無需編譯、簡(jiǎn)單易懂等特點(diǎn)。與上訴語言相比,C語言是一種面向過程的語言,介于高級(jí)語言與低級(jí)語言之間。確切地說,在通用計(jì)算機(jī)應(yīng)用層的軟件開發(fā)部分,C語言與各種高級(jí)語言相比沒有優(yōu)勢(shì)。這是由于各種高級(jí)語言不但適合復(fù)雜應(yīng)用邏輯的組織和實(shí)現(xiàn),而且提供了更好的編程環(huán)境和應(yīng)用程序接口。開發(fā)者使用高級(jí)語言可以快速、高效地開發(fā)出各種的應(yīng)用程序。
C語言的優(yōu)勢(shì)在于它有著高效地運(yùn)行效率,因此雖然在應(yīng)用程序的開發(fā)領(lǐng)域C語言并不占優(yōu)勢(shì),但是在嵌入式Linux的開發(fā)中,C語言卻占據(jù)主導(dǎo)的地位。
事實(shí)上,C語言的一些高級(jí)技術(shù),在嵌入式Linux的開發(fā)中得到很好的發(fā)揮和使用。這些技術(shù)讓C語言這種面向過程、與硬件聯(lián)系緊密的計(jì)算機(jī)語言可以完成更復(fù)雜的邏輯組織功能。這對(duì)于非常重視效率,而又具有特定程序邏輯的嵌入式系統(tǒng)是非常重要的。
3、嵌入式系統(tǒng)開發(fā)中C語言特殊語法
在嵌入式的C語言編程中,所使用的語言依然在C語言的范疇內(nèi),但是一些用法和傳統(tǒng)的C語言編程有一定的差別。這些特殊的語法包括:使用C語言對(duì)目標(biāo)硬件寄存器的操作問題;不同體系的處理器的大寫端問題;內(nèi)存操作的對(duì)齊問題;程序中絕對(duì)內(nèi)存地址的跳轉(zhuǎn)等。
4、嵌入式系統(tǒng)開發(fā)中C語言編程的要點(diǎn)
在嵌入式系統(tǒng)中,由于資源非常有限,對(duì)程序運(yùn)行效率的要求比較高。因此,一些在通用計(jì)算機(jī)系統(tǒng)中不用考慮的性能問題,在嵌入式系統(tǒng)中都需要考慮。在嵌入式開發(fā)中,性能是一個(gè)核心的問題,也是C語言編程的要點(diǎn)所在。對(duì)于一種程序?qū)崿F(xiàn)的評(píng)價(jià),主要可以從兩個(gè)方面考慮,一個(gè)方面是程序運(yùn)行的效率,另一個(gè)是程序需要的存儲(chǔ)器空間。對(duì)于前者,主要是指程序運(yùn)行所需要的處理器空間,與占用系統(tǒng)處理器地時(shí)間有關(guān);對(duì)于后者,包括程序存儲(chǔ)所占用的空間和程序運(yùn)行所占用的空間,與占用系統(tǒng)ROM和RAM大小有關(guān)。由于C語言自身的性質(zhì),也使其在嵌入式開發(fā)的性能優(yōu)化以及調(diào)試方面具有獨(dú)特的方法。
本文來源網(wǎng)絡(luò),版權(quán)歸原作者所有。如涉及作品版權(quán)問題,請(qǐng)聯(lián)系我進(jìn)行刪除。