嵌入式軟件開發(fā)中嵌入式C編程的解析
在嵌入式開發(fā)過程中具有復(fù)雜性,通常不選擇它用于嵌入式系統(tǒng)開發(fā),而C語言是一種“低層次”的語言,已經(jīng)成為嵌入式系統(tǒng)開發(fā)的最佳選擇。 在我們初學(xué)嵌入式開發(fā)的時候,總會出現(xiàn)一個問題。那就是C語言和嵌入式C編程有什么區(qū)別?而嵌入式工程師一般都會告訴你,其區(qū)別在于嵌入式的C語言是跑在嵌入式的開發(fā)板上的,CPU和電腦不一樣,所以編譯器也是不一樣的,生成的可執(zhí)行程序也是不一樣的。不同于一般形式的軟件編程,基于特定的硬件平臺嵌入式系統(tǒng)編程的,勢必要求其編程語言具備較強(qiáng)的硬件直接操作能力。毫無疑問,匯編語言是具備這種特點(diǎn)的。
嵌入式軟件開發(fā)語言 嵌入式C編程:
一、首先我們要明白嵌入式系統(tǒng)不是PC系統(tǒng),是另一種獨(dú)立操作系統(tǒng)。它包括硬件和軟件兩部分。硬件包括處理器/微處理器、存儲器及外設(shè)器件和I/O端口、圖形控制器等。軟件部分包括操作系統(tǒng)軟件(OS)(要求實(shí)時和多任務(wù)操作)和應(yīng)用程序編程,有時設(shè)計(jì)人員把這兩種軟件組合在一起。應(yīng)用程序控制著系統(tǒng)的運(yùn)作和行為;而操作系統(tǒng)控制著應(yīng)用程序編程與硬件的交互作用。
二、嵌入式微處理器是嵌入式系統(tǒng)控制核心。嵌入式微處理器主要功能有四大點(diǎn):
1、對實(shí)時多任務(wù)有很強(qiáng)的支持能力,能完成多任務(wù)并且有較短的中斷響應(yīng)時間,從而使內(nèi)部的代碼和實(shí)時內(nèi)核心的執(zhí)行時間減少到最低限度。
2、嵌入式微處理器必須功耗很低,尤其是用于便攜式的無線及移動的計(jì)算和通信設(shè)備中靠電池供電的嵌入式系統(tǒng),如需要功耗只有mW甚至μW級。
3、具有功能很強(qiáng)的存儲區(qū)保護(hù)功能。這是由于嵌入式系統(tǒng)的軟件結(jié)構(gòu)已經(jīng)模塊化,而為了避免在軟件模塊之間出現(xiàn)錯誤的交叉作用,需要設(shè)計(jì)強(qiáng)大的存儲區(qū)保護(hù)功能,同時也有利于軟件診斷。
4、可擴(kuò)展的處理器結(jié)構(gòu),以便能最迅速地開發(fā)出滿足應(yīng)用的最高性能的嵌入式微處理器。
三、而嵌入式系統(tǒng)有別于其他操作系統(tǒng)最大的核心競爭力有六大特點(diǎn):
1、嵌入式系統(tǒng)為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲器芯片或單片機(jī)本身中,而不是存貯于磁盤等載體中。
2、嵌入式系統(tǒng)的硬件和軟件都必須高效率地設(shè)計(jì),量體裁衣、去除冗余,力爭在同樣的硅片面積上實(shí)現(xiàn)更高的性能,這樣才能在具體應(yīng)用中對處理器的選擇更具有競爭力。
3、嵌入式系統(tǒng)是將先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)與各個行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物。這一點(diǎn)就決定了它必然是一個技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識集成系統(tǒng)。
4、嵌入式系統(tǒng)本身不具備自舉開發(fā)能力,即使設(shè)計(jì)完成以后用戶通常也是不能對其中的程序功能進(jìn)行修改的,必須有一套開發(fā)工具和環(huán)境才能進(jìn)行開發(fā)。
5、嵌入式系統(tǒng)通常是面向特定應(yīng)用的嵌入式CPU,與通用型的最大不同就是嵌入式CPU大多工作在為特定用戶群設(shè)計(jì)的系統(tǒng)中,它通常都具有低功耗、體積小、集成度高等特點(diǎn),能夠把通用CPU中許多由板卡完成的任務(wù)集成在芯片內(nèi)部,從而有利于嵌入式系統(tǒng)設(shè)計(jì)趨于小型化,移動能力大大增強(qiáng),跟網(wǎng)絡(luò)的耦合也越來越緊密。
6、嵌入式系統(tǒng)和具體應(yīng)用有機(jī)地結(jié)合在一起,它的升級換代也是和具體產(chǎn)品同步進(jìn)行,因此嵌入式系統(tǒng)產(chǎn)品一旦進(jìn)入市場,具有較長的生命周期。
上述為華清創(chuàng)客學(xué)院對嵌入式C編程的簡單闡述,可能對較年輕的設(shè)計(jì)工程師來說,C編程或許真的不太好掌握,同時建議想要學(xué)習(xí)或是正在學(xué)習(xí)嵌入式C編程的讀者可以參考華清創(chuàng)客學(xué)院嵌入式開發(fā)工程師學(xué)習(xí)路線和視頻教程。