什麼是嵌入式開發?嵌入式學哪些?
隨著智慧硬體的爆發和物聯網時代到來,嵌入式技術飛速發展。作為一名網際網路從業者如果你還不知道嵌入式開發那就有點跟不上時代了。簡單的來說,嵌入式技術是以應用為中心,以計算機技術為基礎,並且軟硬體可定製化,以適應於應用對功能、可靠性、成本、體積、功耗的要求。
舉個例子,我們每天使用的智慧手機其實就是一個嵌入式系統,它的系統由一些基本硬體組成,比如儲存、CPU、電池等等,考慮到功耗,所以智慧手機定製了一個作業系統。如果把電腦的硬體提供給智慧手機,那麼手機做出來功耗又高體積又大,就不會有人去用了,因此嵌入式系統就是針對產品的需要而定製的軟體系統。
嵌入式技術最早起源於微控制器技術,是對各種電子硬體裝置的控制和管理。如今,網際網路的迅速發展帶動了各行各業將業務拓展到嵌入式開發。國內嵌入式軟體市場也逐年增長,預計未來三年嵌入式軟體行業將以40%以上的符合增長率。
從我這麼些年做軟體開發的經驗來講,軟體開發沒有高低之分,各種程式語言非常多。比如C、C++、Java等等,都能夠進行軟體開發。一般3年經驗的Java程式設計師在15k左右,而嵌入式底層工程師兩年經驗大概就在15k左右。正是由於嵌入式開發有著良好發展前景,需要大量的人才。
但是想要從事嵌入式開發,需要懂的技術是非常多的,一個成熟的嵌入式工程師需要了解應用開發、底層開發等等內容。
一般我們要學習嵌入式開發,就要從基礎Linux、C語言、資料結構開發,然後到ARM、彙編、Linux核心、驅動等等,然後通過更多專案練習來成為一名合格的嵌入式開發工程師。
學習嵌入式的方法步驟:
1、基礎知識:
目的:能看懂硬體工作原理,但重點在嵌入式軟體,特別是作業系統級軟體,那將是我的優勢。
科目:數位電路、計算機組成原理、嵌入式微處理器結構。
組合語言、C/C++、編譯原理、離散數學。
資料結構和演算法、作業系統、軟體工程、網路、資料庫。
方法:雖科目眾多,但都是較簡單的基礎,且大部分已掌握。不一定全學,可根據需要選修。
主攻書籍:the c++ programming language(一直沒時間讀)、資料結構-C2。
2、學習linux:
目的:深入掌握linux系統。
方法:使用linux—〉linxu系統程式設計開發—〉驅動開發和分析linux核心。先看深,那主講原理。看幾遍後,看情景分析,對照深看,兩本交叉,深是綱,情是目。剖析則是0.11版,適合學習。最後深入程式碼。
主攻書籍:linux核心完全剖析、unix環境高階程式設計、深入理解linux核心、情景分析和源代。
3、學習嵌入式linux:
目的:掌握嵌入式處理器其及系統。
(1)嵌入式微處理器結構與應用:直接arm原理及彙編即可,不要重複x86。
(2)嵌入式作業系統類:ucOS/II簡單,開源,可供入門。而後深入研究uClinux。
(3)必須有塊開發板(arm9以上),有條件可參加培訓(進步快,能認識些朋友)。
4、深入學習:
A、數字影象壓縮技術:主要是應掌握MPEG、mp3等編解碼演算法和技術。
B、通訊協議及程式設計技術:TCP/IP協議、802.11,Bluetooth,GPRS、GSM、CDMA等。