嵌入式C語(yǔ)言與C語(yǔ)言有哪些區(qū)別?
請(qǐng)問嵌入式C語(yǔ)言與C語(yǔ)言有哪些區(qū)別?

推薦答案
同學(xué),您好!C語(yǔ)言是目前世界上使用最廣泛的系統(tǒng)編程語(yǔ)言,嵌入式C語(yǔ)言是C語(yǔ)言的擴(kuò)展,用于嵌入式系統(tǒng)中編寫嵌入式軟件。 嵌入式C語(yǔ)言和普通C語(yǔ)言沒有太大區(qū)別,嵌入式開發(fā)的C語(yǔ)言就是嵌入式C語(yǔ)言。嵌入式C語(yǔ)言與C語(yǔ)言主要區(qū)別在于嵌入式程序員的思維角度和使用習(xí)慣與普通的C語(yǔ)言不同。具體體現(xiàn)在啟動(dòng)過程、存儲(chǔ)空間分配、硬件訪問、資源限制等方面。
1.啟動(dòng)過程
嵌入式C語(yǔ)言配備微處理器,要求嵌入式系統(tǒng)的啟動(dòng)程序:必須能夠初始化配備微處理器的硬件平臺(tái)和所需數(shù)據(jù)。 因此,做嵌入式開發(fā)的程序員一定要制作特定的啟動(dòng)程序。
而PC上普通的C語(yǔ)言編譯器會(huì)自動(dòng)完成啟動(dòng),自動(dòng)初始化CPU和外設(shè),并調(diào)用main函數(shù),程序員不需要自己制作啟動(dòng)程序。
2.儲(chǔ)物空間
嵌入式C程序,由于沒有通用的操作系統(tǒng),嵌入式系統(tǒng)必須先在ROM中設(shè)置代碼,在RAM中設(shè)置數(shù)據(jù)和堆棧才能運(yùn)行。
對(duì)于普通的C程序,操作系統(tǒng)將程序和數(shù)據(jù)從外部存儲(chǔ)設(shè)備加載到RAM中運(yùn)行。代碼、數(shù)據(jù)、堆棧都在 RAM 中。
3.資源訪問
嵌入式C語(yǔ)言編程涉及操作硬件,所以底層沒有庫(kù)函數(shù)調(diào)用,需要自己寫函數(shù)操作硬件。另外編譯的時(shí)候用到了交叉編譯器。內(nèi)存在芯片上,處理器在芯片上。處理器,寫程序的時(shí)候更注重程序的優(yōu)化和效率,所以用嵌入式C寫程序要注意資源有限。
普通的C語(yǔ)言編程是在OS之上,有很多標(biāo)準(zhǔn)庫(kù)函數(shù)可以調(diào)用,分配的內(nèi)存就是PC的內(nèi)存,處理器就是PC的CPU。對(duì)于普通的C,操作系統(tǒng)操作計(jì)算機(jī)硬件設(shè)備,應(yīng)用程序可以通知操作系統(tǒng)執(zhí)行特定的動(dòng)作,從而使應(yīng)用程序通過操作系統(tǒng)間接操作硬件。在C語(yǔ)言中,PC機(jī)可以訪問系統(tǒng)操作系統(tǒng)、內(nèi)存等,可以利用計(jì)算機(jī)的一切資源。
總之,嵌入式開發(fā)是一門非常實(shí)用的技術(shù)。不僅要掌握C語(yǔ)言編程,還要熟悉硬件特性和缺陷,對(duì)編譯原理和計(jì)算機(jī)技術(shù)有深刻理解。
以上就是關(guān)于嵌入式C語(yǔ)言和C語(yǔ)言的區(qū)別的介紹。如果對(duì)嵌入式感興趣,可以關(guān)注千鋒教育嵌入式課程,和老師一起深入了解。

熱議問題






