一文(wen)了解C語言(yan)與嵌入(ru)式C語言(yan)的區別?
時間:2020-06-02 來源(yuan):未(wei)知
有過嵌入式基礎的學員都會知道c語言,這也是大家必須要會的,那么可能大家或許還不知道嵌入式c語言吧,下面可以一起來了解下C語言與嵌入式C語言的區別吧。
嵌入式系統是各行各業的具體應用相結合的產物。例如計算機技術、半導體技術、電子技術。
其更在乎效率和內存有(you)效使用。嵌入(ru)式系統是一(yi)個技術密集(ji)(ji)、資金密集(ji)(ji)、高度分散、不斷(duan)創(chuang)新的知識(shi)集(ji)(ji)成系統。
C語言是(shi)目前(qian)世界使用(yong)(yong)最廣(guang)泛的(de)(de)系統編程語言。嵌(qian)(qian)入(ru)(ru)(ru)式C是(shi)C的(de)(de)擴(kuo)展,在嵌(qian)(qian)入(ru)(ru)(ru)式系統中應(ying)用(yong)(yong)于編寫嵌(qian)(qian)入(ru)(ru)(ru)式軟件。針對嵌(qian)(qian)入(ru)(ru)(ru)式開發的(de)(de)C語言就是(shi)嵌(qian)(qian)入(ru)(ru)(ru)式C語言,嵌(qian)(qian)入(ru)(ru)(ru)式C與標準C沒有特別大的(de)(de)差別,主要區別在于嵌(qian)(qian)入(ru)(ru)(ru)式程序員思考角度(du)、使用(yong)(yong)習慣與普通C不一樣。

具體體現在啟動過(guo)程、存儲空間的分配、對(dui)于硬件的訪問(wen)、資源的限制(zhi)等方面(mian)。
1.啟動過(guo)程
PC機上(shang)普通C語言編(bian)譯器(qi)會自動完(wan)成啟動程序,程序員不用制作自己的啟動程序。自動初始化(hua)CPU和外設后,調用main函數。
而嵌入式C語言搭載微處理器與普通PC機器不同,要求嵌入式系統的啟動程序:要能對搭載微處理器的硬件平臺和所需數據進行初始化操作。所以做嵌入式開發的程序員一定要制作特定的啟動程序。
2.存儲空間
RAM:隨(sui)機存取(qu)存儲(chu)器(qi)是與CPU直(zhi)接(jie)交換數據的內部存儲(chu)器(qi)。它可以隨(sui)時讀寫,而且速度很快。
ROM:只讀存(cun)儲(chu)器。ROM所存(cun)數據在工作過程(cheng)中(zhong)只能讀出,而不像隨機存(cun)儲(chu)器那樣能快(kuai)速地、方便地加以(yi)改寫。ROM所存(cun)數據穩定,斷電后所存(cun)數據也不會改變(bian)。
RAM和(he)ROM相比,兩者的最大區別是RAM在(zai)斷電(dian)以后保(bao)存在(zai)上(shang)面的數據會自動消失,而ROM不會自動消失,可以長時間斷電(dian)保(bao)存。如果需要保(bao)存數據,就必須使用(yong)ROM(例如硬盤)。
對于普通C程(cheng)序(xu),操作(zuo)系統將程(cheng)序(xu)和(he)數據從外部存(cun)儲設(she)備載入RAM中運行(xing)。代碼、數據、堆棧都在(zai)RAM中。
對于嵌入式C程序,因沒有通用的操作系統,嵌入式系統必須先將代碼設置到ROM中,將數據、堆棧設置到RAM中才可以運行。
3.對(dui)于(yu)硬件(jian)的(de)訪(fang)問、資源的(de)限制等
對(dui)于普通(tong)C,操(cao)作(zuo)系統對(dui)計算機硬(ying)件(jian)設備進(jin)行操(cao)作(zuo),應用(yong)程序可以(yi)通(tong)知(zhi)操(cao)作(zuo)系統執(zhi)行某(mou)個(ge)具體(ti)的動作(zuo),以(yi)便使應用(yong)程序間接的通(tong)過操(cao)作(zuo)系統對(dui)硬(ying)件(jian)進(jin)行操(cao)作(zuo)。
對于操作(zuo)(zuo)系統是怎樣控制(zhi)硬件設備的只(zhi)需大(da)致了解(jie)即可,此過(guo)程(cheng)為(wei)應用程(cheng)序(xu)對函(han)數接(jie)口調(diao)用的過(guo)程(cheng),這一過(guo)程(cheng)稱為(wei)系統調(diao)用,通過(guo)系統提供的接(jie)口函(han)數就可以指揮操作(zuo)(zuo)系統來(lai)工作(zuo)(zuo)了。
而嵌入式系統在訪問硬件時,必須編寫直接操作硬件的應用程序。
由于在嵌(qian)入式(shi)系(xi)統(tong)中使(shi)用小而耗電的(de)組件,嵌(qian)入式(shi)系(xi)統(tong)具有有限(xian)的(de)ROM和RAM以(yi)及較少(shao)的(de)處(chu)理能力,因此在嵌(qian)入式(shi)C中編寫程序時應該注意有限(xian)的(de)資源(yuan)。
在C語言中,PC機可以(yi)訪(fang)問系(xi)統(tong)操(cao)作(zuo)系(xi)統(tong),存(cun)儲(chu)器等,可以(yi)利用所有計算機資源。
以上介紹的就是C語言與嵌入式C語言的區別了,既然都準備去學嵌入式了,那么對于c語言也是要搞清楚的,要不等你真正學習了嵌入式也還是不知道怎么做。

