嵌入式c語言與c語言的區(qū)別
最廣泛使用的系統(tǒng)編程語言是C語言,它是使用自由格式源代碼的簡單編程語言;它曾用于以前用匯編語言構(gòu)建的應(yīng)用程序中。嵌入式C是C語言的擴(kuò)展,它在嵌入式系統(tǒng)中應(yīng)用于編寫嵌入式軟件。
1、啟動過程
1)通用c語言程序的啟動過程
普通c語言啟動程序搭載了windows或linux等通用操作系統(tǒng)的PC機(jī),編譯器會自動完成啟動程序,對微處理器和外圍設(shè)備進(jìn)行初始化,然后再調(diào)用main函數(shù),用戶沒有必要制作自己的啟動程序。

2)嵌入式c語言程序的啟動過程
嵌入式c語言搭載微處理器,用于嵌入式系統(tǒng)的啟動程序要能夠?qū)δ繕?biāo)系統(tǒng)的硬件和數(shù)據(jù)進(jìn)行初始化,因此,用戶必須做特定的啟動程序。一般情況下,在支持微處理器的編譯器中會捆綁相應(yīng)的啟動程序,如下圖:

2、存儲空間的分配
存儲器ROM和RAM
RAM:隨機(jī)存取存儲器(random access memory)又稱作“隨機(jī)存儲器”,是與CPU直接交換數(shù)據(jù)的內(nèi)部存儲器,也叫主存(內(nèi)存)。它可以隨時讀寫,而且速度很快,通常作為操作系統(tǒng)或其他正在運行中的程序的臨時數(shù)據(jù)存儲媒介。
當(dāng)電源關(guān)閉時RAM不能保留數(shù)據(jù)。如果需要保存數(shù)據(jù),就必須把它們寫入一個長期的存儲設(shè)備中(例如硬盤)。
RAM和ROM相比,兩者的最大區(qū)別是RAM在斷電以后保存在上面的數(shù)據(jù)會自動消失,而ROM不會自動消失,可以長時間斷電保存。
ROM:只讀存儲器。ROM所存數(shù)據(jù),一般是裝入整機(jī)前事先寫好的,整機(jī)工作過程中只能讀出,而不像隨機(jī)存儲器那樣能快速地、方便地加以改寫。ROM所存數(shù)據(jù)穩(wěn)定,斷電后所存數(shù)據(jù)也不會改變。
1. 對于普通c程序,操作系統(tǒng)將程序和數(shù)據(jù)從外部存儲設(shè)備載入RAM中運行。代碼、數(shù)據(jù)、堆棧都在RAM中。
2. 對于嵌入式c程序,因沒有通用的操作系統(tǒng),嵌入式系統(tǒng)必須先將代碼設(shè)置到ROM中,將數(shù)據(jù)、堆棧設(shè)置到RAM中才可以運行。
3、對于硬件的訪問

應(yīng)用程序可以通知操作系統(tǒng)執(zhí)行某個具體的動作,以便使應(yīng)用程序間接的通過操作系統(tǒng)對硬件進(jìn)行操作。
對于操作系統(tǒng)是怎樣控制硬件設(shè)備的只需大致了解即可,此過程為應(yīng)用程序?qū)PI調(diào)用的過程,這一過程稱為系統(tǒng)調(diào)用,通過系統(tǒng)提供的接口函數(shù)就可以指揮操作系統(tǒng)來工作了。

4、資源的限制
1.由于在嵌入式系統(tǒng)中使用小而耗電的組件,嵌入式系統(tǒng)具有有限的ROM和RAM以及較少的處理能力,因此在嵌入式C中編寫程序時應(yīng)該注意有限的資源。
2.在C語言中,臺式計算機(jī)可以訪問系統(tǒng)操作系統(tǒng),存儲器等,可以利用所有計算機(jī)資源。
5、應(yīng)用方向
1.C主要用于簡單但邏輯的程序,基于操作系統(tǒng)的軟件等。
2.嵌入式C用于電視,洗衣機(jī)等微控制器。

版權(quán)聲明:本文為CSDN博主「艾卡西亞沒有雨」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/WANGXINGYUUUUU/article/details/108125004
版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系刪除??!