嵌入式開發與純軟體什麼區別?

cdfarsight發表於2021-10-13

嵌入式大體分為以下四個方向:

一、嵌入式硬體開發
熟悉電路等知識,非常熟悉各種常用元器件,掌握類比電路和數位電路設計的開發能力。熟練掌握嵌入式硬體知識,熟悉硬體開發模式和設計模式,熟悉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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章