C語言與嵌入式C語言的區別
有過嵌入式基礎的都會知道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語言也是要搞清楚的,要不等你真正學習了嵌入式也還是不知道怎麼做。
相關文章
- Java與C語言的區別?JavaC語言
- C語言---“C語言 誰與爭鋒?”C語言
- 與 C 語言長別離
- go語言與c語言的相互呼叫GoC語言
- C語言的本質(32)——C語言與彙編之C語言內聯彙編C語言
- C語言 C語言野指標C語言指標
- C++和c語言的分別C++C語言
- 概念區別 【編譯型語言與解釋型語言、動態型別語言與靜態型別語言、強型別語言與弱型別語言】編譯型別
- C語言:陣列和指標的區別C語言陣列指標
- c/c++ c語言字元與字串C++C語言字元字串
- C語言C語言
- C語言include關鍵字和引用.h .c的區別C語言
- Java語言與C++語言的差異總結JavaC++
- 聊聊C語言/C++—程式和程式語言C語言C++
- C語言資料型別C語言資料型別
- C語言(共用體型別)C語言型別
- 嵌入式c語言編碼規範C語言
- python和c語言的區別是什麼PythonC語言
- 解釋型語言與編譯型語言的區別?編譯
- Python和C語言有什麼區別?PythonC語言
- Python和C語言區別是什麼?PythonC語言
- C語言的HelloWorldC語言
- c語言的定義與宣告C語言
- C語言字串C語言字串
- C語言: returnC語言
- C語言(一)C語言
- C語言概述C語言
- c語言 %pC語言
- 字串(C語言)字串C語言
- C語言程式C語言
- CUDA C語言C語言
- C語言 typedefC語言
- C語言函式手冊:c語言庫函式大全|C語言標準函式庫|c語言常用函式查詢C語言函式
- C語言緩衝區問題C語言
- 編譯語言、解釋語言與指令碼語言之間的區別編譯指令碼
- c語言的基本資料型別C語言資料型別
- 奇怪的C語言——C51程式設計C語言注意事項C語言程式設計
- C語言學習方法,怎麼學習C語言?C語言