隨著社會的飛速發(fā)展,IT技術(shù)已經(jīng)進入高速發(fā)展階段,互聯(lián)網(wǎng)正在逐步向物聯(lián)網(wǎng)科技時代。發(fā)展。物聯(lián)網(wǎng)通過智能感知、識別技術(shù)與普適計算等通信感知技術(shù),廣泛應(yīng)用于網(wǎng)絡(luò)的融合中,也因此被稱為繼計算機、互聯(lián)網(wǎng)之后世界信息產(chǎn)業(yè)發(fā)展的第三次浪潮,可以說嵌入式開發(fā)技術(shù)在物聯(lián)網(wǎng)領(lǐng)域應(yīng)用最為廣泛。所常見的編程語言有匯編語言、C語言 、SQL語言 、C++語言、 Java語言 、C#語言 、Shell等語言。那么嵌入式開發(fā)中又是用的哪些語言呢?確切的說在嵌入式開發(fā)中這些語言都會用到,下面就我個人看法一一講解。
匯編語言程序設(shè)計
(1)匯編語言:1)面向機器的程序設(shè)計語言,即面向處理器的程序設(shè)計語言,處理器在相應(yīng)的指令控制下工作的,它可以識別的每一條指令稱為機器指令。每一種處理器都有自己可以識別的一整套指令,稱為指令集。比如常見的ARM指令集、Thumb和Thumb2指令集。2)它直接與寄存器或者存儲器打交道,而不是具體的數(shù)據(jù),因此匯編語言的執(zhí)行速度要比其它語言都快,但同時編寫大型程序相當復(fù)雜。3)特定的匯編語言和特定的機器語言指令集是一一對應(yīng)的,不同平臺之間不可直接移植。然而現(xiàn)實中需要編寫大型程序的需求很多,這就造成了匯編語言的使用范圍很狹窄。匯編語言常見的用處是在系統(tǒng)的啟動階段(比如電腦的BIOS啟動階段,因為C語言的運行需要一定的環(huán)境,而系統(tǒng)啟動時這些環(huán)境還沒有建立)。在嵌入式uboot移植和內(nèi)核移植中常見匯編代碼 4)程序員用匯編語言編寫源代碼,然后匯編編譯器將其編譯為機器碼(也就是計算機能夠識別的0和1),由計算機最終執(zhí)行。
C語言
(2) C語言:1)一門面向過程的計算機高級編程語言,廣泛應(yīng)用于底層開發(fā)(特別是linux驅(qū)動開發(fā))和linux應(yīng)用和網(wǎng)絡(luò)編程,效率雖然沒有匯編語言高,但是比匯編語言靈活,可移植性好。2)C語言有豐富的數(shù)據(jù)結(jié)構(gòu)和運算符。提供多種運算符和表達式值的方法,數(shù)據(jù)類型和運算符。3)允許直接訪問物理地址,對硬件進行操作(這個可從51單片機中看出來)。4)C 語言可以像匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單元。5)GCC是其中編譯C語言的一中編譯器,在嵌入式開發(fā)中常用的是交叉編譯即在windows中編輯代碼,在linux中編譯并運行代碼,可以將C語言編譯成匯編語言進而由匯編的編譯器編譯為機器碼,由計算機執(zhí)行。6)C語言的缺點主要表現(xiàn)在數(shù)據(jù)的封裝性上,這一點使得C在數(shù)據(jù)的安全性上有很大缺陷,這也是C和C++的一大區(qū)別。最典型的應(yīng)用是linux操作系統(tǒng)絕大多數(shù)是用C語言和少量匯編語言實現(xiàn)的。C語言雖然不是面向?qū)ο蟮恼Z言,但是內(nèi)核時面向?qū)ο蟮?,這就時C語言的厲害之處。所以學好C語言很重要。
SQL
(3) SQL語言:1)是一種數(shù)據(jù)庫查詢和程序設(shè)計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng);同時也是數(shù)據(jù)庫腳本文件的擴展名(sql)。2)是高級的非過程化編程語言,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。包含6個部分:數(shù)據(jù)查詢語言(比如常見的SELECT、WHERE、ORDER BY和GROUP BY關(guān)鍵字)、數(shù)據(jù)操作語言(比如常見的INSERT、UPDATE和DELETE關(guān)鍵字)、事務(wù)處理語言(比如常見的BEGIN TRANSACTION、COMMIT和ROLLBACK關(guān)鍵字)、 數(shù)據(jù)控制語言(比如常見的GRANT和REVOKE關(guān)鍵字)、數(shù)據(jù)定義語言(比如常見的CREATE和DROP關(guān)鍵字)、指針控制語言(比如常見的DECLARE CURSOR、FETCH INTO和UPDATE WHERE CURRENT關(guān)鍵字)。常見的數(shù)據(jù)庫有MySQL,SQL Server、SQLite。3)通過這種語言,可以在嵌入式開發(fā)中存取相應(yīng)的數(shù)據(jù)。嵌入式開發(fā)中再服務(wù)器端常用的是MySQL,客戶端常用的是SQLite。
聯(lián)系客服