本文中,小編將對嵌入式開發(fā)予以介紹,如果你想對它的詳細情況有所認識,或者想要增進對它的了解程度,不妨請看以下內容哦。
嵌入式開發(fā)是指利用分立元件或集成器件進行電路設計、結構設計,再進行軟件編程(通常是高級語言),實驗,經過多輪修改設計、制作,最終完成整個系統(tǒng)的開發(fā)。這種嵌入式開發(fā),適用于未來產品比較單一,產量比較大,產品開發(fā)周期比較長,成本控制比較嚴格的系統(tǒng)。
嵌入式技術不是單純的軟件技術,也不是單純的硬件技術,是一門如何在一個特定的硬件環(huán)境上開發(fā)與構建特定的可編程軟件系統(tǒng)的綜合技術。嵌入式技術是在嵌入式系統(tǒng)的發(fā)展中應運而生的,它是依附于嵌入式系統(tǒng),并推動嵌入式系統(tǒng)不斷向前發(fā)展的核心動力。嵌入式是一種專用的計算機系統(tǒng),作為裝置或設備的一部分。通常,嵌入式系統(tǒng)是一個控制程序存儲在ROM中的嵌入式處理器控制板。事實上,所有帶有數(shù)字接口的設備,如手表、微波爐、錄像機、汽車等,都使用嵌入式系統(tǒng),有些嵌入式系統(tǒng)還包含操作系統(tǒng),但大多數(shù)嵌入式系統(tǒng)都是是由單個程序實現(xiàn)整個控制邏輯。嵌入式技術近年來得到了飛速的發(fā)展,但是嵌入式產業(yè)涉及的領域非常廣泛,彼此之間的特點也相當明顯。例如,很多行業(yè):手機、PDA、車載導航、工控、軍工、多媒體終端、網(wǎng)關、數(shù)字電視等。
標準嵌入式開發(fā)架構有兩大體系:CISC(Complex Instruction Set Computer,復雜指令集計算機)和RISC(Reduced Instruction Set Computer,精簡指令集計算機)。
早期的CPU全部是CISC架構,它的設計目的主要用最少的機器語言指令來完成所需的計算任務。這種架構會增加CPU結構的復雜性和對CPU工藝的要求,但對于編譯器的開發(fā)十分有利。只有Intel及其兼容CPU還在使用CISC架構。RISC架構要求軟件來指定各個操作步驟,可以降低CPU的復雜性以及允許在同樣的工藝水平下生產功能更強大的CPU,但對于編譯器的設計有更高的要求。占主要地位的是RISC處理器。
RISC體系的陣營非常廣泛,從ARM、MIPS到PowerPC、ARC、Tensilica等,都是屬于RISC處理器范疇。不過這些處理器雖然同樣是屬于RISC體系,但是在指令設計與處理單元的結構上都各有不同,因此彼此完全不能兼容,在特定平臺上所開發(fā)的軟件無法直接為另一硬件平臺所用,而必須重新經過編譯。CISC和RISC正在逐步走向融合,Pentium Pro、Nx586、K5就是一個明顯的例子,它們的內核都是基于RISC體系結構的,它們接受CISC指令后將其分類成RISC指令以便在同一時間內能夠執(zhí)行多余指令。
二、嵌入式開發(fā)如何入門
嵌入式系統(tǒng)專業(yè)是綜合了計算機硬件技術,計算機軟件技術以及電子電路技術的一門綜合學科,所涉及的內涵和知識非常廣泛。
1. C語言基礎
在開始學習嵌入式之前,首先要打好基礎,其中最重要的是C語言基礎,要至少達到能單獨編寫調試一個500行的小項目(大概是一個本地員工管理系統(tǒng)的代碼量),能夠了解C語言的基本語法規(guī)則,基本語句的使用,理解指針概念并能靈活使用各種指針。在學習C語言的過程中,指針的概念比較難理解,但是如果對計算機組成原理有了解的話,地址和 指針,源碼和可執(zhí)行程序,軟件通過寄存器控制硬件這些概念都會變得很清晰。
2. MCU和CPU
所有編程學習都是在單一的環(huán)境下進行的。即開發(fā)環(huán)境和運行環(huán)境都是一樣的都在Ubuntu下進行。難道嵌入式開發(fā)就是如此嗎,說好的軟硬件可裁剪呢?別急,緊接著我們就需要加入MCU和CPU的學習,要學習ARM是什么,不同系列的MCU開發(fā)方式不同,ARM Cortex?-A 系列應用型處理器,可向托管豐富OS平臺和用戶應用程序的設備提供全方位的解決方案,從超低成本手機、智能手機、移動計算平臺、數(shù)字電視和機頂盒到企業(yè)網(wǎng)絡、打印機和服務器解決方案,是作為學習嵌入式的合適的素材?,F(xiàn)在嵌入式的學習資源豐富,選擇合適的Cortex?-A 系列的開發(fā)板后,根據(jù)裸板開發(fā)、系統(tǒng)移植、驅動開發(fā)這樣的順序學習。裸板開發(fā)的學習主要是感受一下如何通過編程實現(xiàn)控制硬件。系統(tǒng)移植中我們會發(fā)現(xiàn)搭載Linux操作系統(tǒng)的板子功力大增,交叉編譯工具鏈的出現(xiàn)使得我們對架構兩個字有了更深入的認識。剛剛還在懷念在Ubuntu下編寫C代碼運指如飛的感覺,現(xiàn)在可以繼續(xù)編寫Linux風格的C代碼了。
3. 驅動開發(fā)
前面裸板開發(fā)和驅動移植的學習目的是面對接下來的驅動大魔頭,學習驅動開發(fā)我們需要有一個空杯心態(tài),需要有主動理解Linux內核設計理念的意識(但是不要鉆牛角尖),時刻把握Linux下一切皆文件的宗旨和分層的思想。當我們在這一階段點亮開發(fā)板上的一盞明燈,恭喜你,一只腳踏進嵌入式開發(fā)的大門了。
4. C++和Qt
體會了最基本的驅動開發(fā)后,嵌入式學習還未結束,但是之后的學習我們有了一些選擇的主動權,當我們看到一些有意思的嵌入式小項目,我們可以理解它的實現(xiàn)思路。而最好的學習方法是自己實踐完成一些小項目,你也許不滿足之前所學,為什么不能把黑乎乎的命令行終端優(yōu)化成精美的液晶屏顯示,C++和Qt的學習就在所難免了。不過還好,有C語言的加持,C++的學習變得比較順利,最大的困難應該在于面向過程到面向對象思維的轉變。
最后,小編誠心感謝大家的閱讀。你們的每一次閱讀,對小編來說都是莫大的鼓勵和鼓舞。希望大家對嵌入式開發(fā)已經具備了初步的認識,最后的最后,祝大家有個精彩的一天。