嵌入式開(kāi)發(fā)需要學(xué)習硬件嗎?
嵌入式開(kāi)發(fā)從大類(lèi)上來(lái)說(shuō),主要分為兩類(lèi):1)嵌入式硬件開(kāi)發(fā);2)嵌入式軟件開(kāi)發(fā)。對于嵌入式硬件開(kāi)發(fā)而言,硬件是必須要懂得,因為涉及到電路原理圖的設計。對于嵌入式軟件而言,如果細分的話(huà),又可以分為驅動(dòng)開(kāi)發(fā)和軟件開(kāi)發(fā)。這兩者都需要一定的硬件知識,所以,嵌入式開(kāi)發(fā)有必要學(xué)習硬件。
1、嵌入式硬件開(kāi)發(fā)
嵌入式硬件開(kāi)發(fā)的工作就是根據用戶(hù)需求、產(chǎn)品經(jīng)理的要求,設計技術(shù)方案并細化技術(shù)方案,設計電路原理。這個(gè)過(guò)程包括技術(shù)方案的提出、技術(shù)方案的評審、硬件芯片/元器件的選型、技術(shù)方案原理的實(shí)施等。毫無(wú)疑問(wèn),硬件開(kāi)發(fā)必須要懂硬件,而且是精通。

2、嵌入式驅動(dòng)開(kāi)發(fā)
這個(gè)職位在大公司里是有的,在小公司可能就取消了。這個(gè)崗位的工作職責就是編寫(xiě)驅動(dòng)程序。什么是驅動(dòng)程序,就是介于硬件和軟件之間、將硬件接口形成軟件指令/代碼。方便程序員去調用,這樣就避免了程序員直接去理解硬件原理,只需要調用相應的驅動(dòng)接口即可。如下圖,要讓繼電器動(dòng)作,單片機必須輸出高電平,驅動(dòng)開(kāi)發(fā)就是將該過(guò)程形成一個(gè)接口:JDQ_ON;JDQ_OFF,程序員在驅動(dòng)繼電器時(shí),直接調用JDQ_ON或者JDQ_OFF,就可以了,從而忽略了硬件。

這個(gè)職位是為軟件開(kāi)發(fā)服務(wù)的,要熟悉硬件接口,知道硬件的工作過(guò)程,并形成可調用的代碼。所以,必須要懂硬件。
3嵌入式軟件開(kāi)發(fā)
該職位,其實(shí)已經(jīng)是程序員的范疇,但是與上位機程序員、網(wǎng)站程序員相比,該職位還是偏硬的,因為該職位是對硬件編程,所面對的平臺是工控板,是單片機、ARM、DSP等,只不過(guò),所用的硬件接口都被驅動(dòng)開(kāi)發(fā)者做好了,控制硬件時(shí)只需要調用驅動(dòng)接口就可。在小公司,驅動(dòng)開(kāi)發(fā)和軟件開(kāi)發(fā)是放在一起的,甚至在更小的公司硬件設計、驅動(dòng)設計、軟件設計都是一個(gè)人在做,軟硬通吃。所以,嵌入式軟件開(kāi)發(fā)還是要懂一些硬件。

所以,對于硬件而言,即使你是軟件開(kāi)發(fā)者,也要懂一點(diǎn)硬件,可以不會(huì )設計電路,但是一定要能看懂電路。應為驅動(dòng)開(kāi)發(fā)者,如果犯一點(diǎn)小錯誤可能就導致軟件開(kāi)發(fā)者調試好久,如果懂硬件的話(huà),可能就能及早地發(fā)現問(wèn)題所在。所以,即使是嵌入式軟件開(kāi)發(fā)者,也要懂一定地硬件。
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。