嵌入式系統定製開發的分層與專業的分類
嵌入式系統這個名詞還是比較難以準確定義的,一般把“用於控制、監視或者輔助操作機器和裝置的裝置”稱為嵌入式系統,系統包括一系列軟硬體設施等,比如:手機的系統開發(Android、IOS等),無人機的系統控制軟體、驅動開發,路由器的軟體系統開發等等。廣義上,可以把微控制器(STM32)、SOC等等硬體構成的控制系統中軟體開發部分都稱之為嵌入式軟體開發。嵌入式定製
嵌入式系統分為4層,硬體層、驅動層、作業系統層和應用層。
1、硬體層,是整個嵌入式系統的根本,如果現在微控制器及介面這塊很熟悉,並且能用C和組合語言來程式設計的話,從嵌入式系統的硬體層走起來相對容易,硬體層也是驅動層的基礎,一個優秀的驅動工程師是要能夠看懂硬體的電路圖和自行完成CPLD的邏輯設計的,同時還要對作業系統核心及其排程性相當的熟悉的。但硬體平臺是基礎,增值還要靠軟體。
硬體層比較適合於,電子、通訊、自動化、機電一體、資訊工程類專業的人來搞,需要掌握的專業基礎知識有,微控制器原理及介面技術、微機原理及介面技術、C語言。
2、驅動層,這部分比較難,驅動工程師不僅要能看懂電路圖還要能對作業系統核心十分的精通,以便其所寫的驅動程式在系統呼叫時,不會獨佔作業系統時間片,而導至其它任務不能動行,不懂作業系統核心架構和實時排程性,沒有良好的驅動編寫風格,按大多數書上所說新增的驅動的方式,很多人都能做到,但可能連個初級的驅動工程師的水平都達不到,這樣所寫的驅動在應用呼叫時就如同windows下我們開啟一個程式執行後,再開啟一個程式時,要不就是中斷以前的程式,要不就是等上一會才能執行後來開啟的程式。想做個好的驅動人員沒有三、四年功底,作業系統核心不研究上幾編,不是太容易成功的,但其工資在嵌入式系統四層中可是最高的。
驅動層比較適合於電子、通訊、自動化、機電一體、資訊工程類專業尤其是計算機偏體系結構類專業的人來搞,除硬體層所具備的基礎學科外,還要對資料結構與演算法、作業系統原理、編譯原理都要十分精通了解。
3、作業系統層,對於作業系統層目前可能只能說是簡單的移植,而很少有人來自已寫作業系統,或者寫出缺胳膊少腿的作業系統來,這部分工作大都由驅動工程師來完成。作業系統是負責系統任務的除錯、磁碟和檔案的管理,而嵌入式系統的實時性十分重要。據說,XP作業系統是微軟投入300人用兩年時間才搞定的,總時工時是600人年,中科院軟體所自己的女媧Hopen作業系統估計也得花遇幾百人年才能搞定。因此這部分工作相對來講沒有太大意義。
4、應用層,相對來講較為容易的,如果會在windows下如何進行程式設計介面函式呼叫,到作業系統下只是編譯和開發環境有相應的變化而已。如果涉及Jave方面的程式設計也是如此的。嵌入式系統中涉及演算法的由專業演算法的人來處理的,不必歸結到嵌入式系統範疇內。但如果涉及嵌入式系統下面嵌入式資料庫、基於嵌入式系統的網路程式設計和基於某此應用層面的協議應用開發(比如基於SIP、H.323、Astrisk)方面又較為複雜,並且有難度了。
學ARM,從硬體上講,一方面就是學習介面電路設計,另一方面就是學習彙編和C語言的板級程式設計。如果從軟體上講,就是要學習基於ARM處理器的作業系統層面的驅動、移植了。這些對於初學都來說必須明確,要麼從硬體著手開始學,要麼從作業系統的熟悉到應用開始學,但不管學什麼,只要不是純的作業系統級以上基於API的應用層的程式設計,硬體的暫存器類的東西還是要能看懂的,基於板級的彙編和C程式設計還是要會的。因此針對於嵌入式系統的硬體層和驅動程的人,ARM的介面電路設計、ARM的C語言和組合語言程式設計及除錯開發環境還是需要掌握的。
相關文章
- 昆蟲分類與檢索系統的設計與開發
- 嵌入式開發主要分為幾類?分別是什麼?
- 理財分紅系統開發-分紅系統開發
- 專業開發雜湊競猜遊戲系統《定製》遊戲
- 直播系統定製開發的步驟分享,如何進行直播系統定製開發
- 九層天塔DAp開發(定製)系統開發(說明詳細)
- NFT質押代幣分紅dapp系統開發功能|合約定製案例APP
- 微信商城新零售系統小程式定製開發(分銷商系統原始碼)原始碼
- 龍蜥社群首推“分層分類”頂設 發展以云為終態的開源產業創新生態產業
- 分趣投開發原理丨分趣投系統開發(開發案例)丨分趣投系統原始碼部署原始碼
- 不再開發統一的定製化作業系統 Meta解散XROS團隊作業系統ROS
- DAPP矩陣公排系統開發(原始碼)|DAPP代幣分紅模式軟體開發定製APP矩陣原始碼模式
- 基於.NetCore開發部落格專案 StarBlog - (8) 分類層級結構展示NetCore
- ADAMoracle系統的執行和功能分類Oracle
- 積分商城_積分系統_積分業務邏輯與管理_OctShop
- 深度學習專案實戰:垃圾分類系統深度學習
- 作業系統(八) -- 記憶體的分段與分頁作業系統記憶體
- MVVM分層下的前端工程化開發MVVM前端
- 架構分層的小糾結-層級該如何劃分與定位?架構
- 純科普:什麼是嵌入式?三分鐘瞬間瞭解嵌入式系統開發
- win10桌面分類框怎麼設定?win10系統桌面分類框設定教程Win10
- 你的專案應該如何分層?
- scrm 商城系統定製開發模式模式
- BSC幣安鏈流動性質押分紅dapp系統開發|LP/NFT代幣質押分紅模式定製APP模式
- NFT代幣質押子母幣分紅dapp系統開發邏輯模式定製(案例演示)APP模式
- defi質押挖礦代幣分紅dapp系統開發案例智慧合約模式定製APP模式
- iOS開發的分類和擴充套件iOS套件
- 從單機定時到多層分發
- 淺說AI產品經理的定義與分類AI
- Unity遊戲積分/計分系統製作方法Unity遊戲
- 數商雲分銷管理系統開發,解決傳統企業運營分銷商城系統難點
- 嵌入式系統專業名詞:
- Thinkphp開發的積分商城系統原始碼詳情開發示例PHP原始碼
- 3.操作同系統的發展和分類
- 直播系統定製開發要先確定整體的計劃
- 分投趣fintoch開發丨fintoch分投趣系統開發方案詳細丨分投趣fintoch系統原始碼案例原始碼
- 分投趣借貸系統dapp開發丨分投趣Fintoch瘋狂功能丨系統技術開發分投趣APP
- IT開發工作分類【總結】