zxopen88的個(gè)人空間 http://selenalain.com/space-uid-69463.html [收藏] [復制] [RSS]

博客

嵌入式領(lǐng)域職業(yè)發(fā)展的方向是什么?

已有 1826 次閱讀2014-8-1 10:16 | 嵌入式, 硬件, 職業(yè), 方向

嵌入式開(kāi)發(fā)的門(mén)檻相對較高,對程序員的要求一般都是對底層感興趣,學(xué)習能力、動(dòng)手能力要強,對問(wèn)題能夠從全局和細節去把握,有很強的系統分析和設計能力。從工程師起步,一般有幾個(gè)發(fā)展方向,一個(gè)是成為技術(shù)方面的核心,領(lǐng)域內的專(zhuān)家;另一個(gè)是從項目中鍛煉起來(lái),成為項目主管或是管理型人才;再有就是利用自己的技術(shù)及行業(yè)經(jīng)驗去創(chuàng )業(yè)。
  
硬件和軟件的發(fā)展方向是不同的。說(shuō)說(shuō)軟件需要學(xué)習的知識。
  
雖然說(shuō)搞嵌入式軟件更多時(shí)候是在實(shí)際的工作中學(xué)習的,但一些重要的基礎知識不可或缺。

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

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

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

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

  5. 數據結構和算法
  數據結構在嵌入式開(kāi)發(fā)中也很重要,比如說(shuō)操作系統里的很多實(shí)現都用到了具體的算法;镜臄祿Y構需要掌握,如各種鏈表,樹(shù),圖等等;而算法的學(xué)習需要數學(xué)知識作為鋪墊,用計算機語(yǔ)言去實(shí)現。對于軟件從業(yè)人員來(lái)說(shuō),算法終究是一個(gè)工具,在實(shí)際應用時(shí)再深入挖掘也可。

  6. 軟件工程/軟件測試/項目管理基礎
  這些是軟件開(kāi)發(fā)人員的必備知識。

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

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

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

  3. 音視頻技術(shù)
  牽涉到音頻視頻處理,壓縮,編解碼等等。

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

  5. 行業(yè)知識
  和具體行業(yè)或領(lǐng)域相關(guān)的知識,如通訊、工控、電子等等。
  
  這里有一個(gè)不錯的學(xué)習步驟:
  1. 基礎知識中,計算機組成、操作系統、編程語(yǔ)言和數據結構是必需的。
  2. 找一種CPU體系,了解其核心架構,學(xué)習指令集,比如說(shuō)ARM。
  3. 找一種OS,如Linux,或是傳統RTOS,如Nucleus、eCos,讀源碼和文檔,理解OS內部實(shí)現,包括進(jìn)程,任務(wù),消息機制,內存管理,設備驅動(dòng),中斷等核心內容。
  4. 找一塊成熟的開(kāi)發(fā)板,板級資料要齊全,熟悉嵌入式軟件開(kāi)發(fā)流程。
  5. 在項目過(guò)程中深入學(xué)習其它的技術(shù)。
  
  總之,這些知識的學(xué)習不是一蹴而就的,過(guò)程會(huì )很漫長(cháng),也沒(méi)有什么特別的技巧。需要去看大量的技術(shù)文檔和源碼,而這些文檔大部分又都是英文的。在工作和做具體項目的過(guò)程中會(huì )學(xué)習的比較快,理論結合實(shí)踐才是王道。

心動(dòng)不如行動(dòng),2014嵌入式時(shí)代已經(jīng)來(lái)臨 你準備好了嗎?

評論 (0 個(gè)評論)

facelist

您需要登錄后才可以評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
返回頂部
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页