一、什么是嵌入式應用開發(fā)?
概述
所謂的嵌入式應用開發(fā)就是在嵌入式操作系統(tǒng)下進行開發(fā)、軟硬件綜合開發(fā)
嵌入式應用開發(fā)是指在嵌入式操作系統(tǒng)下進行開發(fā),包括系統(tǒng)化設計指導下的硬件和軟件綜合研發(fā)。嵌入式開發(fā)不僅涉及軟件設計、實現(xiàn)和部署,還包括硬件選擇、軟件設計、測試、集成和維護等流程。
定義和背景
嵌入式應用開發(fā)是指將軟件部署到嵌入式系統(tǒng)中,這些系統(tǒng)廣泛應用于消費電子和工業(yè)自動化中。嵌入式系統(tǒng)通常被嵌入到其他設備或系統(tǒng)中,用于控制、監(jiān)測或通信等特定用途。與一般計算機系統(tǒng)不同,嵌入式系統(tǒng)通常具有較小的存儲容量、處理能力和功耗,且需要滿足特定的實時性、可靠性和安全性要求。
應用領域
嵌入式系統(tǒng)廣泛應用于各種設備和系統(tǒng)中,包括但不限于:
· 消費電子:如家用電器、智能手機、平板電腦等。
· 工業(yè)自動化:如工廠自動化設備、油田的集散控制系統(tǒng)等。
· 汽車電子:如車載娛樂系統(tǒng)、導航系統(tǒng)等。
· 醫(yī)療設備:如心電圖儀、血壓計等。
開發(fā)工具和技術
嵌入式開發(fā)過程中常用的工具包括:
· 集成開發(fā)環(huán)境(IDE):用于編寫、編譯和調(diào)試代碼。
· 編譯器:將高級語言代碼轉換為機器語言。
· 調(diào)試器:用于調(diào)試和測試程序。
· 操作系統(tǒng):如WinCE、ucos、vxworks、linux、android等。
編程語言和處理器
常用的編程語言包括C、C++或匯編語言,常用的處理器包括ARM7、ARM9、ARM11、PowerPC、MIPS等。這些處理器和編程語言的選擇取決于具體的硬件條件和開發(fā)需求。
綜上所述,嵌入式應用開發(fā)是一個綜合性的技術領域,涉及硬件和軟件的緊密結合,廣泛應用于各種設備和系統(tǒng)中,具有廣泛的應用前景和發(fā)展空間。
二、什么是嵌入式驅動開發(fā)?
嵌入式驅動開發(fā)就是在嵌入式系統(tǒng)中對硬件進行控制和管理的技術
嵌入式驅動開發(fā)是指在嵌入式系統(tǒng)中對硬件進行控制和管理的技術。嵌入式系統(tǒng)是一種特定功能的計算機系統(tǒng),通常用于控制和監(jiān)控設備、機器人、工業(yè)控制及網(wǎng)絡通信等領域。嵌入式驅動開發(fā)的主要任務是為嵌入式系統(tǒng)開發(fā)設備驅動程序,這些驅動程序用于控制和管理各種外設和硬件組件。
嵌入式驅動開發(fā)的基本概念
嵌入式驅動開發(fā)的基本概念包括以下幾個方面:
1. 定義:嵌入式驅動是指在嵌入式系統(tǒng)中,對硬件進行控制和管理的技術。它負責管理系統(tǒng)的硬件資源和提供各種系統(tǒng)服務。
2. 應用領域:嵌入式驅動廣泛應用于各種電子設備中,如智能家電、自動化設備、汽車控制系統(tǒng)等。
3. 技術要求:嵌入式驅動開發(fā)需要深入了解硬件的工作原理和特性,同時還需要編寫高效的驅動程序來確保系統(tǒng)的穩(wěn)定運行。
嵌入式驅動開發(fā)的發(fā)展歷程和現(xiàn)狀
嵌入式驅動技術的發(fā)展歷程可以追溯到早期的電子設備控制系統(tǒng)中。隨著技術的進步,嵌入式系統(tǒng)逐漸成為各種電子設備的核心組成部分。現(xiàn)代嵌入式系統(tǒng)不僅在工業(yè)控制、自動化設備中應用廣泛,還在醫(yī)療、交通、軍事等領域發(fā)揮著重要作用。隨著物聯(lián)網(wǎng)和智能設備的興起,嵌入式驅動開發(fā)的需求不斷增加,技術也在不斷進步和創(chuàng)新。
未來發(fā)展趨勢
未來,隨著物聯(lián)網(wǎng)和人工智能技術的發(fā)展,嵌入式驅動開發(fā)將面臨更多的挑戰(zhàn)和機遇。高效、低功耗、高可靠性的驅動技術將成為發(fā)展的重點。同時,跨平臺、跨設備的兼容性也將成為未來嵌入式驅動開發(fā)的重要研究方向。
二、如何在二者之間進行選擇
工作內(nèi)容
驅動開發(fā)主要是跟硬件打交道,然后留出接口給應用程序調(diào)用。它就是一個中間橋梁。驅動開發(fā)需要有一些硬件的基礎知識,這也是為什么大家認為驅動開發(fā)的門檻會相對高一點的原因。驅動開發(fā)主要的工作內(nèi)容: 看原理圖,編寫驅動程序,驅動調(diào)試,還會涉及到系統(tǒng)升級工作等。驅動程序的編寫一般要按系統(tǒng)的框架進行編寫,所以還要去了解系統(tǒng)的驅動框架。寫驅動的基本要會一些簡單的應用開發(fā),因為可能要調(diào)試驅動,而且系統(tǒng)升級也是應用代碼。應用開發(fā)主要是調(diào)用驅動接口和系統(tǒng)接口,然后實現(xiàn)功能邏輯。應用開發(fā)就是去實現(xiàn)產(chǎn)品所需的功能。應用開發(fā)主要的工作內(nèi)容: 實現(xiàn)業(yè)務邏輯,集成一些第三方庫等。
題外話:性格方面做驅動的人一般比較內(nèi)向不愛說話,而應用的人比較愛說話,大部分原因我覺得是因為應用要跟客戶對接溝通比較多,驅動一般跟測試和應用溝通比較多
對比:
驅動開發(fā)要求開發(fā)者要有一定的硬件基礎,如果掌握會用示波器的話更好有助于定位問題,不然如果是硬件問題的話,軟件找半天沒找到冤死,再者就是要了解各類子系統(tǒng)的驅動框架,這里不要求驅動開發(fā)者有多少代碼量,是因為驅動一般大多是原廠調(diào)好的,只需要寫一些兼容的代碼。應用開發(fā)的門檻相對要求沒那么高,平時要求多寫代碼,不然會遇到的自己寫的bug會比較多,而且再加上客戶的需求更改會比較頻繁,所以應用的任務平時要比驅動的任務會要多,然而驅動的bug雖然不多,改動也是比較小,但是這些bug要查起來是很要命的可能需要一天也可能是一周,只有理解源碼實現(xiàn)機制才能真正改到正確位置上。
薪資
薪資這塊可能是很多人關心的,從目前招聘軟件上看價格,其實驅動開發(fā)和應用開發(fā)的薪資是差不多的。只不過驅動要門檻大多要有經(jīng)驗的而且驅動比較難些,所以驅動應該薪資會比較高一點,但其實決定薪資高低的并不是技術的難度,而是供需關系,簡單說就是人才的稀缺度。驅動比較稀缺比較難招到合適的,所以這時候為了得到人才,公司才會提高薪資。
發(fā)展
從兩個角度出發(fā),一個跳槽角度出發(fā),另一個從職業(yè)發(fā)展角度出發(fā)
跳槽
驅動開發(fā)跳槽對于行業(yè)的限制比較小,比如安防跳汽車電子驅動外設不會大變。而應用開發(fā)跳槽更看重行業(yè),比如之前是做路由器,跳槽到車企?赡苤暗囊恍┬袠I(yè)知識就沒用了,但是開發(fā)經(jīng)驗還是有用的,只是需要重新了解一個行業(yè),還有應用開發(fā)還有一個優(yōu)點是可以跳槽的到互聯(lián)網(wǎng)行業(yè),并不一定以后都要做嵌入式制造業(yè),而驅動只能做嵌入式制造業(yè)。
職業(yè)發(fā)展
應用的職業(yè)發(fā)展路子有很多,比如技術以后升管理做產(chǎn)品經(jīng)理,項目經(jīng)理
驅動的職業(yè)沒那么寬,做技術基本以后只能做技術,也能升主管不過是那種偏技術的主管和經(jīng)理。
項目經(jīng)理一般也是應用部門去做。