C語言與嵌入式C語言的區別

cdfarsight發表於2021-04-21

有過嵌入式基礎的都會知道c語言,這也是大家必須要會的,那麼可能大家或許還不知道嵌入式c語言吧,下面可以一起來了解下C語言與嵌入式C語言的區別吧。

嵌入式系統是各行各業的具體應用相結合的產物。例如計算機技術、半導體技術、電子技術。

其更在乎效率和記憶體有效使用。嵌入式系統是一個技術密集、資金密集、高度分散、不斷創新的知識整合系統。

C語言是目前世界使用最廣泛的系統程式語言。嵌入式C是C的擴充套件,在嵌入式系統中應用於編寫嵌入式軟體。針對嵌入式開發的C語言就是嵌入式C語言,嵌入式C與標準C沒有特別大的差別,主要區別在於嵌入式程式設計師思考角度、使用習慣與普通C不一樣。

具體體現在啟動過程、儲存空間的分配、對於硬體的訪問、資源的限制等方面。

1.啟動過程

PC機上普通C語言編譯器會自動完成啟動程式,程式設計師不用製作自己的啟動程式。自動初始化CPU和外設後,呼叫main函式。

而嵌入式C語言搭載微處理器與普通PC機器不同,要求嵌入式系統的啟動程式:要能對搭載微處理器的硬體平臺和所需資料進行初始化操作。所以做嵌入式開發的程式設計師一定要製作特定的啟動程式。

2.儲存空間

RAM:隨機存取儲存器是與CPU直接交換資料的內部儲存器。它可以隨時讀寫,而且速度很快。

ROM:只讀儲存器。ROM所存資料在工作過程中只能讀出,而不像隨機儲存器那樣能快速地、方便地加以改寫。ROM所存資料穩定,斷電後所存資料也不會改變。

RAM和ROM相比,兩者的最大區別是RAM在斷電以後儲存在上面的資料會自動消失,而ROM不會自動消失,可以長時間斷電儲存。如果需要儲存資料,就必須使用ROM(例如硬碟)。

對於普通C程式,作業系統將程式和資料從外部儲存裝置載入RAM中執行。程式碼、資料、堆疊都在RAM中。

對於嵌入式C程式,因沒有通用的作業系統,嵌入式系統必須先將程式碼設定到ROM中,將資料、堆疊設定到RAM中才可以執行。

3.對於硬體的訪問、資源的限制等

對於普通C,作業系統對計算機硬體裝置進行操作,應用程式可以通知作業系統執行某個具體的動作,以便使應用程式間接的通過作業系統對硬體進行操作。

對於作業系統是怎樣控制硬體裝置的只需大致瞭解即可,此過程為應用程式對函式介面呼叫的過程,這一過程稱為系統呼叫,通過系統提供的介面函式就可以指揮作業系統來工作了。

而嵌入式系統在訪問硬體時,必須編寫直接操作硬體的應用程式。

由於在嵌入式系統中使用小而耗電的元件,嵌入式系統具有有限的ROM和RAM以及較少的處理能力,因此在嵌入式C中編寫程式時應該注意有限的資源。

在C語言中,PC機可以訪問系統作業系統,儲存器等,可以利用所有計算機資源。

以上介紹的就是C語言與嵌入式C語言的區別了,既然都準備去學嵌入式了,那麼對於c語言也是要搞清楚的,要不等你真正學習了嵌入式也還是不知道怎麼做。

相關文章