嵌入式開發與純軟體什麼區別?
嵌入式大體分為以下四個方向:
一、嵌入式硬體開發
熟悉電路等知識,非常熟悉各種常用元器件,掌握類比電路和數位電路設計的開發能力。熟練掌握嵌入式硬體知識,熟悉硬體開發模式和設計模式,熟悉arm32位處理器嵌入式硬體平臺開發、並具備產品開發經驗。精通常用的硬體設計工具:Protel/PADS(powerPCB)/cadence/orCAD。一般需要有4~8層高速PCB設計經驗。
二、嵌入式驅動開發
熟練掌握linux作業系統、系統結構、計算機組成原理、資料結構相關知識。熟悉嵌入式ARM開發,至少掌握Linux字元驅動程式開發。具有微控制器、ARM嵌入式處理器的移植開發能力,理解硬體原理圖,能獨立完成相關硬體驅動除錯,具有紮實的硬體知識,能夠根據晶片手冊編寫軟體驅動程式。
三、嵌入式系統開發
掌握Linux系統配置,精通處理器體系結構、程式設計環境、指令集、定址方式、除錯、彙編和混合程式設計等方面的內容;掌握Linux檔案系統製作,熟悉各種檔案系統格式(YAFFS2、JAFFS2、RAMDISK等);熟悉嵌入式Linux啟動流程,熟悉Linux配置檔案的修改;掌握核心裁減、核心移植、交叉編譯、核心除錯、啟動程式Bootloader編寫、根檔案系統製作和整合部署Linux系統等整個流程;、熟悉搭建Linux軟體開發環境(庫檔案的交叉編譯及環境配置等);
四、嵌入式軟體開發
精通Linux作業系統的概念和安裝方法、Linux下的基本命令、管理配置和編輯器,包括VI編輯器,GCC編譯器,GDB偵錯程式和 MAKE 專案管理工具等知識;精通C語言的高階程式設計知識,包括函式與程式結構、指標、陣列、常用演算法、庫函式的使用等知識、資料結構的基礎內容,包括連結串列、佇列等;掌握物件導向程式設計的基本思想,以及C++語言的基礎內容;精通嵌入式Linux下的程式設計,精通嵌入式Linux開發環境,包括系統程式設計、檔案I/O、多程式和多執行緒、網路程式設計、GUI圖形介面程式設計、資料庫;熟悉常用的圖形庫的程式設計,如QT、GTK、miniGUI、fltk、nano-x等。
公司的日常活動還是看公司的規模,大一點的一般只是讓你負責一個模組,這樣你就要精通一點。若是公司比較小的話估計要你什麼都做一點。還要了解點硬體的東西。
那麼看了這麼多,
嵌入式和純軟最大的區別在於:
純軟學習的是一門語言,例如C,C++,Java,甚至python,語言說到底只是一門工具,就像學會英語法語日語一樣。
但嵌入式學習的是軟體+硬體,通俗的講,它學的是做系統做產品,講究的是除了具體的語言工具,更多的是如何將一個產品分解為具體可實施的軟體和硬體,以及更小的單元。
不少人問,將來就業到底是選驅動還是選應用?只能說憑興趣,並且驅動和應用並不是截然分開的。
▍PART&nBSP; 01
我們說的驅動,其實並不侷限於硬體的操作,還有作業系統的原理、程式的休眠喚醒排程等概念。想寫出一個好的應用,想比較好的解決應用碰到的問題,這些知識大家應該都懂。
▍PART 02
做應用的發展路徑個人認為就是業務純熟。比如在通訊行業、IPTV行業、手機行業,行業需求很瞭解。
▍PART 03
做驅動,其實不能稱為“做驅動”,而是可以稱為“做底層系統”,做好了這是通殺各行業。比如一個人工作幾年,做過手機、IPTV、會議電視,但是這些產品對他毫無差別,因為他只做底層。當應用出現問題,解決不了時,他就可以從核心角度給他們出主意,提供工具。做底層的發展方向,應該是技術專家。
▍PART 04
其實,做底層還是做應用,之間並沒有一個界線,有底層經驗,再去做應用,會感覺很踏實。有了業務經驗,再瞭解一下底層,很快就可以組成一個團隊。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996125/viewspace-2795649/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 前端開發與後端開發的區別是什麼?前端後端
- “低程式碼開發”與“傳統IT開發”的區別是什麼?
- Frontend開發和UI有什麼區別?UI
- 嵌入式開發主要分為幾類?分別是什麼?
- web前端技術分享:前端開發與後端開發的區別是什麼?Web前端後端
- Web前端開發和後端開發有什麼區別?Web前端後端
- 軟體定製開發與SaaS的區別
- Memcached與Redis有什麼區別Redis
- 什麼是python?與PHP有什麼區別?PythonPHP
- Session是什麼?它與Cookie有什麼區別?SessionCookie
- 零程式碼與低程式碼快速開發平臺有什麼區別
- 移動前端開發和 Web 前端開發的區別是什麼?前端Web
- 原生IP是什麼?與其他IP有什麼區別?
- 無程式碼開發和BPM工具有什麼區別?
- SCRM與CRM的區別是什麼?
- DDD與DCI的區別是什麼?
- 開發與研發:區別很大(上)
- 共享儲存是什麼意思?與DRBD有什麼區別?
- 什麼是客戶體驗管理?CRM與CEM有何區別?
- onethink正式版和開發版有什麼區別?
- opencv和Python的區別是什麼?Python開發!OpenCVPython
- Python開發中字典和json有什麼區別?PythonJSON
- 高fangCDN與普通CDN有什麼區別?GC
- Components 與 Patterns 究竟有什麼區別
- HTTP中Get與Post有什麼區別?HTTP
- DMAIC與DMADV的區別是什麼?AI
- FPC與剛性PCB有什麼區別
- 什麼是OA,與Office 有何區別
- 嵌入式開發為什麼選擇C語言?C語言
- 嵌入式系統開發的基本流程是什麼
- 新媒體與自媒體的區別是什麼?如何做好運營?
- 2G與3G是什麼?有什麼區別?
- 雲桌面是什麼意思?與堡壘機有什麼區別?
- 容器雲是什麼意思?與堡壘機有什麼區別?
- CSRF與SSRF是什麼?它們之間有什麼區別?
- Linux中什麼是打包?與歸檔有什麼區別?Linux
- 什麼是CC攻擊?與DDoS攻擊有什麼區別?
- 系統呼叫與庫函式是什麼,區別是什麼函式