嵌入式開發需要學習硬件嗎?

Y_______平源


嵌入式開發從大類上來說,主要分為兩類:1)嵌入式硬件開發;2)嵌入式軟件開發。對於嵌入式硬件開發而言,硬件是必須要懂得,因為涉及到電路原理圖的設計。對於嵌入式軟件而言,如果細分的話,又可以分為驅動開發和軟件開發。這兩者都需要一定的硬件知識,所以,嵌入式開發有必要學習硬件。

1

嵌入式硬件開發

嵌入式硬件開發的工作就是根據用戶需求、產品經理的要求,設計技術方案並細化技術方案,設計電路原理。這個過程包括技術方案的提出、技術方案的評審、硬件芯片/元器件的選型、技術方案原理的實施等。毫無疑問,硬件開發必須要懂硬件,而且是精通。

2

嵌入式驅動開發

這個職位在大公司裡是有的,在小公司可能就取消了。這個崗位的工作職責就是編寫驅動程序。什麼是驅動程序,就是介於硬件和軟件之間、將硬件接口形成軟件指令/代碼。方便程序員去調用,這樣就避免了程序員直接去理解硬件原理,只需要調用相應的驅動接口即可。如下圖,要讓繼電器動作,單片機必須輸出高電平,驅動開發就是將該過程形成一個接口:JDQ_ON;JDQ_OFF,程序員在驅動繼電器時,直接調用JDQ_ON或者JDQ_OFF,就可以了,從而忽略了硬件。

這個職位是為軟件開發服務的,要熟悉硬件接口,知道硬件的工作過程,並形成可調用的代碼。所以,必須要懂硬件。

3

嵌入式軟件開發

該職位,其實已經是程序員的範疇,但是與上位機程序員、網站程序員相比,該職位還是偏硬的,因為該職位是對硬件編程,所面對的平臺是工控板,是單片機、ARM、DSP等,只不過,所用的硬件接口都被驅動開發者做好了,控制硬件時只需要調用驅動接口就可。在小公司,驅動開發和軟件開發是放在一起的,甚至在更小的公司硬件設計、驅動設計、軟件設計都是一個人在做,軟硬通吃。所以,嵌入式軟件開發還是要懂一些硬件。

所以,對於硬件而言,即使你是軟件開發者,也要懂一點硬件,可以不會設計電路,但是一定要能看懂電路。應為驅動開發者,如果犯一點小錯誤可能就導致軟件開發者調試好久,如果懂硬件的話,可能就能及早地發現問題所在。所以,即使是嵌入式軟件開發者,也要懂一定地硬件。

以上就是這個問題的回答,感謝留言、評論、轉發。更多電子設計、硬件設計、單片機等內容請關注本頭條號:玩轉嵌入式。感謝大家。


玩轉嵌入式


對於初學者來說,要想達到企業的基本用人標準,需要具備以下知識結構:

第一:設備。嵌入式開發要接觸到大量的設備,所以掌握設備的相關知識是學習嵌入式開發的第一步。掌握設備的相關知識需要從設備的組成部分開始,比如設備的體系結構、傳感器、操作指令、操作系統以及開發環境等。對於初學嵌入式開發的人來說,選擇一個適合的實驗設備是比較重要的,比較常見的選擇包括Arduino、樹莓派(Raspberry Pi)、BBB、Edison等,這些微控制器主板都有比較完善的功能,會為初學者提供一個較好的實驗環境。

第二:編程語言。在嵌入式開發領域,比較普遍的選擇是C語言,當然Python和JavaScript也有一定的應用,另外就是實驗主板往往也有針對性的開發語言,比如Arduino就採用了類似C++的Arduino語言。通常情況下在PC上開發微控制器程序,接著把程序寫入微控制器,最後看一下執行的效果。總的來說,嵌入式開發的編程過程並不難,但是需要做大量的驗證性實驗,這個過程還是比較麻煩的。

第三:平臺。嵌入式開發作為物聯網開發領域的重要環節需要跟物聯網平臺進行頻繁的溝通,這個過程中涉及到設備、架構、網絡、安全、應用維護等幾個重要的內容,掌握這些內容對於嵌入式開發還是比較重要的。


吳大修


嵌入式開發需不需要學習硬件。其實隨著發展嵌入式越來越廣,很難用一句話來總結到底什麼是嵌入式。嵌入式開發和pc開發越來越差不多了。

如果您是用單片機開發的,那麼一定是軟件和硬件都不錯,才可以拿到高價。

設備越高級,那麼分的越細。即使做底層開發,如linux驅動,對硬件知識也不需要很多,會看原理圖就可以。要是完全做應用開發,根本不需要硬件知識。


分享到:


相關文章: