嵌入式開發(fā)需要學(xué)習(xí)硬件嗎?
嵌入式開發(fā)從大類上來說,主要分為兩類:1)嵌入式硬件開發(fā);2)嵌入式軟件開發(fā)。對(duì)于嵌入式硬件開發(fā)而言,硬件是必須要懂得,因?yàn)樯婕暗诫娐吩韴D的設(shè)計(jì)。對(duì)于嵌入式軟件而言,如果細(xì)分的話,又可以分為驅(qū)動(dòng)開發(fā)和軟件開發(fā)。這兩者都需要一定的硬件知識(shí),所以,嵌入式開發(fā)有必要學(xué)習(xí)硬件。
1、嵌入式硬件開發(fā)
嵌入式硬件開發(fā)的工作就是根據(jù)用戶需求、產(chǎn)品經(jīng)理的要求,設(shè)計(jì)技術(shù)方案并細(xì)化技術(shù)方案,設(shè)計(jì)電路原理。這個(gè)過程包括技術(shù)方案的提出、技術(shù)方案的評(píng)審、硬件芯片/元器件的選型、技術(shù)方案原理的實(shí)施等。毫無疑問,硬件開發(fā)必須要懂硬件,而且是精通。
2、嵌入式驅(qū)動(dòng)開發(fā)
這個(gè)職位在大公司里是有的,在小公司可能就取消了。這個(gè)崗位的工作職責(zé)就是編寫驅(qū)動(dòng)程序。什么是驅(qū)動(dòng)程序,就是介于硬件和軟件之間、將硬件接口形成軟件指令/代碼。方便程序員去調(diào)用,這樣就避免了程序員直接去理解硬件原理,只需要調(diào)用相應(yīng)的驅(qū)動(dòng)接口即可。如下圖,要讓繼電器動(dòng)作,單片機(jī)必須輸出高電平,驅(qū)動(dòng)開發(fā)就是將該過程形成一個(gè)接口:JDQ_ON;JDQ_OFF,程序員在驅(qū)動(dòng)繼電器時(shí),直接調(diào)用JDQ_ON或者JDQ_OFF,就可以了,從而忽略了硬件。
這個(gè)職位是為軟件開發(fā)服務(wù)的,要熟悉硬件接口,知道硬件的工作過程,并形成可調(diào)用的代碼。所以,必須要懂硬件。
3嵌入式軟件開發(fā)
該職位,其實(shí)已經(jīng)是程序員的范疇,但是與上位機(jī)程序員、網(wǎng)站程序員相比,該職位還是偏硬的,因?yàn)樵撀毼皇菍?duì)硬件編程,所面對(duì)的平臺(tái)是工控板,是單片機(jī)、ARM、DSP等,只不過,所用的硬件接口都被驅(qū)動(dòng)開發(fā)者做好了,控制硬件時(shí)只需要調(diào)用驅(qū)動(dòng)接口就可。在小公司,驅(qū)動(dòng)開發(fā)和軟件開發(fā)是放在一起的,甚至在更小的公司硬件設(shè)計(jì)、驅(qū)動(dòng)設(shè)計(jì)、軟件設(shè)計(jì)都是一個(gè)人在做,軟硬通吃。所以,嵌入式軟件開發(fā)還是要懂一些硬件。
所以,對(duì)于硬件而言,即使你是軟件開發(fā)者,也要懂一點(diǎn)硬件,可以不會(huì)設(shè)計(jì)電路,但是一定要能看懂電路。應(yīng)為驅(qū)動(dòng)開發(fā)者,如果犯一點(diǎn)小錯(cuò)誤可能就導(dǎo)致軟件開發(fā)者調(diào)試好久,如果懂硬件的話,可能就能及早地發(fā)現(xiàn)問題所在。所以,即使是嵌入式軟件開發(fā)者,也要懂一定地硬件。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。