有過嵌入式基礎的學員都會知道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語言也是要搞清楚的,要不等你真正學習了嵌入式也還是不知道怎么做。