學習嵌入式有軟件和硬件兩種不同的發(fā)展方向,而它們學習的側重點也是不一樣的,例如你要往軟件方向發(fā)展,一些重要的基礎知識不可或缺。粵嵌西安嵌入式培訓介紹一下成為一名嵌入式軟件工程師,需要掌握哪些基礎知識:
1、 計算機組成/微機原理
主要是為了了解微型計算機的硬件工作原理,明白CPU、總線、I/O、存儲器等一些關鍵結構是怎么工作的,雖然是很枯燥的知識,但是對熟悉外圍設備硬件工作方式,及操作系統(tǒng),軟件架構的設計及優(yōu)化相當關鍵。
2、編程語言:C語言和匯編
對于C語言本身的基礎來說,無非是把結構化,函數(shù),數(shù)組,指針弄熟,但是嵌入式開發(fā)對C語言應用的要求會更高。要對內(nèi)存分配,文件訪問,寄存器訪問,預處理指令,中斷處理程序等等相當熟悉,這些都是在使用中要注意的細節(jié)問題。C語言對程序的優(yōu)化也很重要,而這些往往是需要從全局去考慮。匯編一般是和處理器的指令集相關的,可以更好的去理解處理器的工作原理,往往是用在一些需要效率的地方,如系統(tǒng)的初始化。
3、操作系統(tǒng)
嵌入式產(chǎn)品應用比較廣泛的是Linux和WinCE。但操作系統(tǒng)的內(nèi)部設計原理都是殊途同歸。首先要去學習的是操作系統(tǒng)原理,去了解進程通信、內(nèi)存管理、文件系統(tǒng)等幾個重要的部分,因為這些在軟件開發(fā)尤其是內(nèi)核驅動開發(fā)時會用到。接下來可以去熟悉至少一種主流的操作系統(tǒng),Linux是一個很好的選擇,去了解它的內(nèi)核架構,設備驅動架構,如何去編譯,裁剪,編寫應用程序,以及如何使用在具體的嵌入式產(chǎn)品上。
4、數(shù)字電路
學習這方面的知識主要是了解一些基本的電路知識,如門電路、邏輯電路、存儲器、寄存器,為了更好的理解嵌入式芯片,存儲器,外圍設備等硬件的設計,但往往在軟件開發(fā)中未必能用的到。因為大部分硬件都提供了很完整的軟件接口。
5、 數(shù)據(jù)結構和算法
數(shù)據(jù)結構在嵌入式開發(fā)中也很重要,比如說操作系統(tǒng)里的很多實現(xiàn)都用到了具體的算法。基本的數(shù)據(jù)結構需要掌握,如各種鏈表,樹,圖等等;而算法的學習需要數(shù)學知識作為鋪墊,用計算機語言去實現(xiàn)。對于軟件從業(yè)人員來說,算法終究是一個工具,在實際應用時再深入挖掘也可。
6、 軟件工程/軟件測試/項目管理基礎及開發(fā)平臺
嵌入式的開發(fā)平臺不局限于一種操作系統(tǒng),因此要熟悉各種操作系統(tǒng)下的命令、編輯器及開發(fā)工具,這一點往往被很多人忽視。舉個例子,Linux下的程序員開發(fā)環(huán)境往往是按自己的習慣搭建,熟練掌握一種編輯器如Vim/Emacs可以大幅度提高工作效率。
這些知識的學習不是一蹴而就的,嵌入式需要通過大量的練習實踐來將所學的理論知識轉化為自己的技能,如果只是單純學習理論知識,很大程度上會無法將理論與實際結合起來運用。因此粵嵌西安嵌入式培訓表示,還是找到一家專業(yè)的培訓機構,可讓嵌入式的學習事半功倍。