★★ 入坑嵌入式 不看你絕對後悔的內容剖析
嵌入式開發要學哪些,嵌入式可以簡單分為硬體與軟體,然而其中的知識體系卻是異常的龐大,這也是眾多新手望而卻步的一個原因,那究竟要如何才能成為一名嵌入式大咖呢?嵌入式開發要學什麼,大致分為三個階段:基礎篇、進階篇、大咖篇。
入門嵌入式工程師
此階段主要是前期的入門過程,主要針對入行沒多久的新人。其實成功沒有捷徑,所以打好基礎才是關鍵。嵌入式開發要學什麼主要包含以下4個方面的內容:
1.電路知識 首先你要學習電路、模電、數電,認識電阻、電容、三極體,基礎器件要知道,放大電路、整合運放、時序電路基本電路能看懂,不然看電路圖一定是雲裡霧裡,也就無法進行後續的工作。硬體產品的設計實現,包括器件選型、原理圖和PCB設計、電路除錯,都需要過硬的電路基礎。
2.C語言
C語言是嵌入式開發中最重要的程式語言,要對這門語言有深入的理解,畢竟不僅僅要會寫程式,看懂他人程式也很重要。最基本的資料型別、陣列、指標、結構體,連結串列、檔案操作等都要會,掌握基本語法和語句,不然你要能區分指標陣列與陣列指標嗎?
3.微控制器
微控制器入門相對簡單,透過微控制器的學習可以熟悉微控制器的硬體結構,包括I/O口、AD轉換、通訊(串列埠、並口、I2C、CAN、USB、乙太網、ZigBee技術等)、顯示(LED、LCD等)、控制(PWM等控制技術)、資料處理(圖形、影像、語音、影片等的處理或識別)等,學好微控制器可以為採用嵌入式系統奠定良好的基礎。
4Linux基礎
Linux的原始碼和架構都是開放的,在嵌入式系統中應用尤為廣泛,學習Linux對於系統的開發會有很大的幫助。詳細瞭解Linux下的目錄結構、基本命令、編輯器VI、編譯器GCC、偵錯程式GDB和 Make 專案管理工具,Shell Makefile指令碼編寫等知識,以及嵌入式開發環境的搭建。
中級嵌入式工程師
經過第一個階段的學習,你已經可以進行嵌入式開發工作了,但是要進階依舊還有很多知識要學,而這個階段也將是第一個分水嶺,使得優秀的嵌入式工程師得以脫穎而出。此階段雖然只有三項,但涉及的知識非常廣,要想學好需要花費大量的精力。
1.Linux程式設計
系統程式設計可以直接跟核心及核心系統程式庫對話,深入瞭解Linux核心。掌握Linux系統程式設計主要提升對Linux應用開發的理解和程式碼除錯的能力。由於網路應用開發越來越廣泛,透過Linux網路發展、TCP/IP協議、socket程式設計、TCP網路程式設計、UDP網路程式設計、Web程式設計開發等方面入手,可以全面瞭解Linux網路應用程式開發。
2資料結構與演算法
資料結構及演算法在嵌入式底層驅動、通訊協議及各種引擎開發中得到了廣泛的應用,語言編譯要使用棧、雜湊表以及語法樹;作業系統中用佇列、儲存管理表及目錄樹等;資料庫系統運用線型表、多連結串列及索引表進行資料管理等等,對其掌握的好壞直接影響程式的效率、簡潔及健壯性。
3.QT、DSP、FPGA
Linux沒有自己介面,學習QT程式設計可以建立藝術級的圖形使用者介面所需的所有功能,從而更好的實現人機互動控制。而如今使用者對於圖形影像的要求也越來越高,這就需要DSP、FPGA技術來設計開發更好的嵌入式視覺系統。
高階嵌入式工程師
學習了前兩個階段的知識,你已經可以勝任大部分嵌入式工作了,但是距離大咖仍有一定的差距,其實已經到了第二個分水嶺。這部分更多涉及系統層面,沒有全方位的知識將會很難下手。
1作業系統平臺開發
除了Linux外,嵌入式作業系統還有ARM、WINCE、uC/OS II、Vxworks、uClinux等,不同的系統有著不同的使用環境,你需要學習掌握系統的各個模組,為底層平臺搭建做好準備。熟悉各個作業系統的特點以及系統的核心移植,確保作業系統能在某個微處理器或微控制器上執行。隨著手機智慧硬體的快速興起,Android作業系統開發也越來越重要。
2驅動開發
驅動程式設計是嵌入式Linux開發工作中非常重要的一部分。不僅要熟悉Linux的核心機制、驅動程式與使用者級應用程式的介面,掌握系統對裝置的併發操作。還要具備ARM硬體介面的基礎知識,熟悉ARM Cortex處理器各資源、掌握Linux裝置驅動原理框架,以及工程中常見Linux高階字元裝置、塊裝置、網路裝置、USB裝置的驅動開發。
當你到達這個位置的時候,可以說你已經是一個人生贏家了,而真正的學習過程如同一場漫長的修行,在這個過程中,必定有各種各樣的困難。當然了,嵌入式工作中更多的需要實踐以及經驗的積累,相信守得雲開見月明,你也可成為一名優秀的嵌入式工程師。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31560024/viewspace-2219122/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 看了絕對不會後悔之:spring Ioc原理Spring
- 看了絕對不會後悔之:spring AOP原理Spring
- 面試”作弊“,不看絕對會後悔!面試
- 兩萬字的資料庫面試題,不看絕對後悔資料庫面試題
- 讓人不後悔進入IT行業的九大理由行業
- buffalo 框架中 不對 HTML 內容轉義框架HTML
- 以後的內容......
- 雲桌面是坑,還是超讚的?就看你有沒選對!
- 不看後悔的Vue系列Vue
- git上的後悔藥Git
- 面試官:談談你對SpringAOP的瞭解?請加上這些內容,絕對加分!面試Spring
- 你後悔進入IT行業嗎?懂這些技術只會後悔沒早點搞IT!行業
- 《WCF全面剖析》-章節內容簡介
- 給行內元素加上絕對定位之後,元素屬性的變化
- RN 踩坑:內容區域高度
- 對於動態載入內容 (包括 Ajax 請求內容) 繫結點選事件事件
- WPF 自定義控制元件的坑(蠢的:自定義控制元件內容不顯示)控制元件
- 清空listener.log檔案內容後,內容不能寫入listener.log檔案的解決方法
- js刪除文字框輸入內容前後兩端的空格JS
- 選擇萬能碼不後悔(安全掃碼專業委員會)
- 富文字編輯器CKeditor的配置和圖片上傳,看完不後悔
- 谷歌第59號員工愛德華斯:不後悔離開谷歌谷歌
- canvas 寫入文字內容Canvas
- Webview 載入文章內容WebView
- 工作踩坑系列——https 訪問遇到 “已阻止載入混合活動內容”HTTP
- 檔案內容對比工具
- golang 設定 http response 響應頭的內容與坑GolangHTTP
- 關於app的登入退出內容APP
- docker 修改容器內容後更新映象的流程Docker
- 針不戳!GitHub Actions 入坑指南Github
- 斷言無法獲取 content 內容;執行後不生成報告
- excel開啟後灰色不顯示內容 excel全是灰色無法編輯Excel
- 主執行緒中也不絕對安全的 UI 操作執行緒UI
- 使用Collections對list的內容進行排序排序
- SQL—對資料表內容的基本操作SQL
- PBootCMS後臺系統內容修改boot
- 入“坑”mybatis後如何掙脫?MyBatis
- F2P遊戲應如何應對IAP“消費後悔症”?遊戲