嵌入式開發(fā)從大類上來說,主要分為兩類:1)嵌入式硬件開發(fā);2)嵌入式軟件開發(fā)。對于嵌入式硬件開發(fā)而言,硬件是必須要懂得,因為涉及到電路原理圖的設計。對于嵌入式軟件而言,如果細分的話,又可以分為驅動開發(fā)和軟件開發(fā)。這兩者都需要一定的硬件知識,所以,嵌入式開發(fā)有必要學習硬件。嵌入式硬件開發(fā)的工作就是根據(jù)用戶需求、產(chǎn)品經(jīng)理的要求,設計技術方案并細化技術方案,設計電路原理。這個過程包括技術方案的提出、技術方案的評審、硬件芯片/元器件的選型、技術方案原理的實施等。毫無疑問,硬件開發(fā)必須要懂硬件,而且是精通。這個職位在大公司里是有的,在小公司可能就取消了。這個崗位的工作職責就是編寫驅動程序。什么是驅動程序,就是介于硬件和軟件之間、將硬件接口形成軟件指令/代碼。方便程序員去調(diào)用,這樣就避免了程序員直接去理解硬件原理,只需要調(diào)用相應的驅動接口即可。如下圖,要讓繼電器動作,單片機必須輸出高電平,驅動開發(fā)就是將該過程形成一個接口:JDQ_ON;JDQ_OFF,程序員在驅動繼電器時,直接調(diào)用JDQ_ON或者JDQ_OFF,就可以了,從而忽略了硬件。這個職位是為軟件開發(fā)服務的,要熟悉硬件接口,知道硬件的工作過程,并形成可調(diào)用的代碼。所以,必須要懂硬件。該職位,其實已經(jīng)是程序員的范疇,但是與上位機程序員、網(wǎng)站程序員相比,該職位還是偏硬的,因為該職位是對硬件編程,所面對的平臺是工控板,是單片機、ARM、DSP等,只不過,所用的硬件接口都被驅動開發(fā)者做好了,控制硬件時只需要調(diào)用驅動接口就可。在小公司,驅動開發(fā)和軟件開發(fā)是放在一起的,甚至在更小的公司硬件設計、驅動設計、軟件設計都是一個人在做,軟硬通吃。所以,嵌入式軟件開發(fā)還是要懂一些硬件。所以,對于硬件而言,即使你是軟件開發(fā)者,也要懂一點硬件,可以不會設計電路,但是一定要能看懂電路。應為驅動開發(fā)者,如果犯一點小錯誤可能就導致軟件開發(fā)者調(diào)試好久,如果懂硬件的話,可能就能及早地發(fā)現(xiàn)問題所在。所以,即使是嵌入式軟件開發(fā)者,也要懂一定地硬件。
|