嵌入式C語言是C語言的擴(kuò)展,在嵌入式系統(tǒng)中應(yīng)用于編寫嵌入式軟件。與普通C語言沒有特別大的區(qū)別,主要區(qū)別在于嵌入式開發(fā)人員的思考角度,使用習(xí)慣與普通C語言不一樣。
大多數(shù)嵌入式系統(tǒng)用C語言作為編程語言,是因?yàn)镃語言介于高級(jí)語言和低級(jí)語言之間。與低級(jí)匯編語言不同的是,C語言是可移植的。它可以在多種處理器上運(yùn)行,而不管它們的體系結(jié)構(gòu)如何。與高級(jí)語言不同的是,C語言需要更少的資源來運(yùn)行,也沒有那么復(fù)雜。C語言的另一個(gè)優(yōu)點(diǎn)是它相對(duì)容易調(diào)試。
嵌入式C語言與普通C語言
作為嵌入式系統(tǒng)程序員,你的目標(biāo)是編寫能夠利用這種有限的處理能力以獲得最大效果的程序。作為一個(gè)普通的C語言程序員,就沒有那么多的約束。
普通的C語言編程是在OS之上,有很多的標(biāo)準(zhǔn)庫函數(shù)可以調(diào)用,分配的內(nèi)存就是PC機(jī)的內(nèi)存,處理器就是PC的CPU。 而嵌入式C語言編程的話會(huì)涉及到操作硬件,所以底層沒有庫函數(shù)調(diào)用,需要自己編寫操作硬件的函數(shù),另外編譯的時(shí)候是用交叉編譯器,內(nèi)存是芯片上的ram, 處理器就是芯片帶的處理器,還有就是在寫程序的時(shí)候更注重程序的優(yōu)化和效率,因?yàn)榍度胧接布Y源相對(duì)PC有限,實(shí)時(shí)性較強(qiáng)等等。
嵌入式C語言和普通C語言在寫代碼上完全沒有區(qū)別。區(qū)別在于嵌入式的C語言是跑在嵌入式的開發(fā)板上的(普通C語言是基于電腦上的),CPU和我們電腦不一樣,所以編譯器也是不一樣的,生成的可執(zhí)行程序也是不一樣的。
從語法上來說C語言并不復(fù)雜, 但編寫優(yōu)質(zhì)可靠的嵌入式C語言程序并非易事,不僅需要熟知硬件特性和缺陷,還需要對(duì)編譯原理和計(jì)算機(jī)技術(shù)知識(shí)有著一定的了解。
嵌入式專業(yè)是一門實(shí)踐性非常強(qiáng)的學(xué)科,也是一門綜合性、涉及知識(shí)面非常廣的學(xué)科,只有多動(dòng)手,多實(shí)踐,多編程,多調(diào)試,多看書,多思考才能真正掌握好嵌入式開發(fā)技術(shù)。