創(chuàng)客學(xué)院
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 15 個
工控威望: 63 點
下載積分: 722 分
在線時間: 1(小時)
注冊時間: 2018-04-04
最后登錄: 2018-07-04
查看創(chuàng)客學(xué)院的 主題 / 回貼
樓主  發(fā)表于: 2018-04-08 11:35
嵌入式早在70年代出現(xiàn)到現(xiàn)在,有將近30年的發(fā)展歷史,能夠長久存在并且可持續(xù)發(fā)展。從工程師起步, 一般有幾個發(fā)展方向,一個是成為技術(shù)方面的核心,領(lǐng)域內(nèi)的專家;另一個是從項目中鍛煉起來,成為項目主管或是管理型人才;再有就是利用自己的技術(shù)及行業(yè)經(jīng)驗去創(chuàng)業(yè)。


嵌入式工程師有前途嗎 嵌入式開發(fā)的職業(yè)發(fā)展方向是什么



硬件和軟件的發(fā)展方向是不同的。說說軟件需要學(xué)習(xí)的知識。雖然說搞嵌入式軟件更多時候是在實際的工作中學(xué)習(xí)的,但一些重要的基礎(chǔ)知識不可或缺。

1. 計算機組成/微機原理  


主要是為了了解微型計算機的硬件工作原理,明白CPU、總線、I/O、存儲器等一些關(guān)鍵結(jié)構(gòu)是怎么工作的,雖然是很枯燥的知識,但是對熟悉外圍設(shè)備硬件工作方式,及操作系統(tǒng),軟件架構(gòu)的設(shè)計及優(yōu)化相當(dāng)關(guān)鍵。

2. 操作系統(tǒng)


嵌入式產(chǎn)品應(yīng)用比較廣泛的是Linux和WinCE。但操作系統(tǒng)的內(nèi)部設(shè)計原理都是殊途同歸。首先要去學(xué)習(xí)的是操作系統(tǒng)原理,去了解進程通信、內(nèi)存管 理、文件系統(tǒng)等幾個重要的部分,因為這些在軟件開發(fā)尤其是內(nèi)核驅(qū)動開發(fā)時會用到。接下來可以去熟悉至少一種主流的操作系統(tǒng),Linux是一個很好的選擇, 去了解它的內(nèi)核架構(gòu),設(shè)備驅(qū)動架構(gòu),如何去編譯,裁剪,編寫應(yīng)用程序,以及如何使用在具體的嵌入式產(chǎn)品上。

3. 數(shù)字電路


學(xué)習(xí)這方面的知識主要是了解一些基本的電路知識,如門電路、邏輯電路、存儲器、寄存器,為了更好的理解嵌入式芯片,存儲器,外圍設(shè)備等硬件的設(shè)計,但往往在軟件開發(fā)中未必能用的到。因為大部分硬件都提供了很完整的軟件接口。

4. 編程語言:C語言和匯編


對于C語言本身的基礎(chǔ)來說,無非是把結(jié)構(gòu)化,函數(shù),數(shù)組,指針弄熟,但是嵌入式開發(fā)對C語言應(yīng)用的要求會更高。要對內(nèi)存分配,文件訪問,寄存器訪問, 預(yù)處理指令,中斷處理程序等等相當(dāng)熟悉,這些都是在使用中要注意的細節(jié)問題。C語言對程序的優(yōu)化也很重要,而這些往往是需要從全局去考慮。匯編一般是和處 理器的指令集相關(guān)的,可以更好的去理解處理器的工作原理,往往是用在一些需要效率的地方,如系統(tǒng)的初始化。

5. 數(shù)據(jù)結(jié)構(gòu)和算法


數(shù)據(jù)結(jié)構(gòu)在嵌入式開發(fā)中也很重要,比如說操作系統(tǒng)里的很多實現(xiàn)都用到了具體的算法。基本的數(shù)據(jù)結(jié)構(gòu)需要掌握,如各種鏈表,樹,圖等等;而算法的學(xué)習(xí)需要數(shù)學(xué)知識作為鋪墊,用計算機語言去實現(xiàn)。對于軟件從業(yè)人員來說,算法終究是一個工具,在實際應(yīng)用時再深入挖掘也可。

6. 軟件工程/軟件測試/項目管理基礎(chǔ)


這些是軟件開發(fā)人員的必備知識。

7. 開發(fā)平臺


嵌入式的開發(fā)平臺不局限于一種操作系統(tǒng),因此要熟悉各種操作系統(tǒng)下的命令、編輯器及開發(fā)工具,這一點往往被很多人忽視。舉個例子,Linux下的程序員開發(fā)環(huán)境往往是按自己的習(xí)慣搭建,熟練掌握一種編輯器如Vim/Emacs可以大幅度提高工作效率。磨刀不誤砍柴工。
  
嵌入式領(lǐng)域的方向是很多的,它所應(yīng)用到的行業(yè)范圍也很廣。因此除了這些基礎(chǔ)的知識以外,在具體的應(yīng)用中可能還需要一些其它的知識,這些知識的每一種都可以研究的很深,舉幾個例子。

1. 內(nèi)核,驅(qū)動及中間件


內(nèi)核開發(fā)和驅(qū)動本身就是一個方向,驅(qū)動和硬件接口相關(guān),而內(nèi)核的修改和移植更是需要對OS有很深的理解。至于中間件,一般是基于OS或存在于OS和應(yīng)用程序之間的庫,最典型的就是基于Linux的Android。

2. 通信協(xié)議


通信協(xié)議有很多種,經(jīng)常用到的有網(wǎng)絡(luò)通信協(xié)議,無線通信協(xié)議,串口/USB通信協(xié)議等等。

3. 音視頻技術(shù)


牽涉到音頻視頻處理,壓縮,編解碼等等。

4. 信息安全
如加密技術(shù),身份認證,數(shù)字證書等等。

5. 行業(yè)知識
和具體行業(yè)或領(lǐng)域相關(guān)的知識,如通訊、工控、電子等等。
  
這里有一個不錯的學(xué)習(xí)步驟:
  1. 基礎(chǔ)知識中,計算機組成、操作系統(tǒng)、編程語言和數(shù)據(jù)結(jié)構(gòu)是必需的。
  2. 找一種CPU體系,了解其核心架構(gòu),學(xué)習(xí)指令集,比如說ARM。
  3. 找一種OS,如Linux,或是傳統(tǒng)RTOS,如Nucleus、eCos,讀源碼和文檔,理解OS內(nèi)部實現(xiàn),包括進程,任務(wù),消息機制,內(nèi)存管理,設(shè)備驅(qū)動,中斷等核心內(nèi)容。
  4. 找一塊成熟的開發(fā)板,板級資料要齊全,熟悉嵌入式軟件開發(fā)流程。
  5. 在項目過程中深入學(xué)習(xí)其它的技術(shù)。
  
總之,這些知識的學(xué)習(xí)不是一蹴而就的,嵌入式職業(yè)發(fā)展過程會很漫長,也沒有什么特別的技巧?梢远嚓P(guān)注下創(chuàng)客學(xué)院,有什么不懂的問題可以隨時咨詢。需要去看大量的技術(shù)文檔和源碼,而這些文檔大部分又都是英文的。在工作和做具體項目的過程中會學(xué)習(xí)的比較快,理論結(jié)合實踐才是王道。
電氣工作者1
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 88 個
工控威望: 200 點
下載積分: 608 分
在線時間: 52(小時)
注冊時間: 2018-04-02
最后登錄: 2024-09-18
查看電氣工作者1的 主題 / 回貼
1樓  發(fā)表于: 2018-04-08 11:49
不懂,占個座
創(chuàng)客學(xué)院
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 15 個
工控威望: 63 點
下載積分: 722 分
在線時間: 1(小時)
注冊時間: 2018-04-04
最后登錄: 2018-07-04
查看創(chuàng)客學(xué)院的 主題 / 回貼
2樓  發(fā)表于: 2018-04-09 10:59
什么不懂的可以咨詢qq885184382
gongcheng001
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 21 個
工控威望: 149 點
下載積分: 11998 分
在線時間: 32(小時)
注冊時間: 2018-04-08
最后登錄: 2020-07-14
查看gongcheng001的 主題 / 回貼
3樓  發(fā)表于: 2018-04-09 12:37
這是要招收學(xué)員?