嵌入式應用開發技能圖
上文介紹了嵌入式系統的組成與涉及內容,本文將介紹嵌入式應用開發需要使用到的一些工具和技能內容。先奉上技能圖,然後我將以FAQ問答的形式簡要解釋一些主要的概念知識。技能圖如下:
Q:什麼是嵌入式應用開發?
A:就像個人電腦在使用時一般由系統和應用程序組成一樣,手機,攝像頭等嵌入式產品在使用時主要是由嵌入式系統和嵌入式應用組成,嵌入式應用開發就是實現產品的主要業務功能和邏輯,實現用戶交互和數據輸出。嵌入式產品=嵌入式硬體 + 嵌入式系統 + 嵌入式應用。
Q:有哪些常見的嵌入式產品在被使用?
A:智能手機,智能手錶,網路攝像機(IPC),路由器,智能電視,機頂盒,平板電腦等等這些我們最常用的終端設備都屬於嵌入式產品的範疇,符合嵌入式系統+嵌入式應用的開發流程,需要使用到上文和本文圖中涉及的工具和技能。
Q:嵌入式應用開發的基本流程是怎麼樣的?
A:與一般的軟體應用項目開發流程相比,主要區別在於嵌入式需要在硬體上調試測試,也就是所謂的下位機開發。嵌入式應用開發中分為:
上位機開發:配合嵌入式產品功能使用的客戶端與服務端應用開發
下位機開發:嵌入式產品的應用功能開發,調試,測試等
基本的開發流程大致如下:
明確整理嵌入式產品的功能需求和規格說明,詳細參數
根據功能需求選型嵌入式硬體晶元方案,對比評估性能,功耗,介面,擴展等方面的差異
根據選好的硬體方案設計產品的硬體原理圖
評審確定原理圖是否符合需求,確定好原理圖後繪製PCB電路板布局
根據PCB板整理出嵌入式產品的電子器件材料BOM包單用於生產採購
根據選好的晶元方案同步進行嵌入式操作系統的選型和評估
根據評估確定的嵌入式操作系統進行應用開發語言,技術,框架的選型和評估
根據確定的嵌入式應用開發技術棧進行功能需求的模塊分解,進行軟體的總體設計與詳細設計
根據模塊分解,總體設計和詳細設計各開發人員進行代碼的編碼實現
下位機應用開發人員將編碼實現進行交叉編譯後通過串口工具或者網路文件系統NFS掛載的方式傳到嵌入式設備上進行調試運行
上位機應用開發人員通過模擬設備或者與下位機開發人員一起進行聯調
硬體開發人員和軟體開發人員修復在調試過程中發現的BUG問題
集成整個應用系統組成產品交付給測試人員進行測試反饋
同時開發人員需要根據生產流程完成生產工具的編寫測試
測試OK之後,將硬軟一體進行版本歸檔封存,交付給生產車間進行產品生產
是不是很長,這就是整個嵌入式產品開發的基本流程,總體而言是周期很長,複雜度相對高很多。
Q:嵌入式應用開發一般都有哪些職位需求?
A:主要是有嵌入式硬體工程師,嵌入式軟體工程師,嵌入式工程師,嵌入式開發工程師,嵌入式Linux工程師等。嵌入式系統這塊的工作主要也是由嵌入式軟體工程師來完成。
Q:入門嵌入式應用開發有什麼建議?
A:主要有以下幾條建議:
學習C語言:這是嵌入式應用的基本開發語言
學習一款嵌入式操作系統:比如實時操作系統FreeRTOS或者Linux
掌握Linux系統的基本使用:可以用來學習鞏固C語言
使用一款開發板進行練習:現下Arduino平台和樹莓派都非常適合學習
使用一款適合的代碼編輯工具:比如Arduino或者Vim或者Visual Studio等。
找一些開源嵌入式項目學習參考:比如樹莓派上的項目就很多
Q:對嵌入式應用開發有需求的行業領域主要有哪些?
A:目前很火的智能家居行業,比如智能門鎖,智能攝像頭,智能冰箱,智能開關,智能音箱等這些產品都需要,還有即將爆發的車聯網行業。
Q:成為一名合格的嵌入式應用開發者需要多久的打磨?
A:基本而言,從入門到成為一名熟練的嵌入式開發者,大致需要五年左右的時間,當然這個時間關鍵還是取決於個人的學習能力和意願。
※Windows系統簡介與微軟產品圖
※Android系統生態簡介
TAG:私人計算專家Agent |