在2000年前后,嵌入式軟件工程師有著一套非常具體的技能,他們通常是電氣工程師,不僅了解底層硬件的工作原理,還可以在底層編寫匯編代碼或者C語(yǔ)言代碼,以使系統(tǒng)滿足實(shí)時(shí)需求。嵌入式軟件工程師不僅要了解諸如C語(yǔ)言的軟件開發(fā),還要了解硬件。位、字節(jié)、寄存器的世界,正是嵌入式軟件工程師的領(lǐng)域。 在早期,嵌入式開發(fā)人員通常使用8位或者16位的體系結(jié)構(gòu),這些結(jié)構(gòu)比較簡(jiǎn)單,因此開發(fā)人員一般在幾個(gè)月的開發(fā)周期內(nèi)便能掌握這些結(jié)構(gòu)。 但是近些年來(lái),許多嵌入式開發(fā)團(tuán)隊(duì)已經(jīng)轉(zhuǎn)向更加復(fù)雜的 32 位體系結(jié)構(gòu),不僅包括一些用于數(shù)據(jù)采集的采樣傳感器,以及外圍的通信設(shè)備,還包括日益繁多的各種協(xié)議,例如 USB、DMA、 TCP/IP、藍(lán)牙等。這些復(fù)雜的體系架構(gòu),或者相關(guān)的通信協(xié)議,開發(fā)人員往往需要數(shù)年才能真正的完全掌握。 為了應(yīng)對(duì)“真空”,有些公司并未大力培養(yǎng)嵌入式C語(yǔ)言軟件工程師,而是開始依賴具有Windows應(yīng)用程序或者移動(dòng)設(shè)備程序開發(fā)經(jīng)驗(yàn)的人員來(lái)開發(fā)他們的實(shí)時(shí)嵌入式軟件。這會(huì)導(dǎo)致另外一個(gè)較為致命的問(wèn)題出現(xiàn):這些開發(fā)人員大都只了解公司分配的任務(wù)所需的高層應(yīng)用程序框架,對(duì)底層硬件卻不夠了解。 這樣的公司并不在少數(shù)。因此微控制器制造商目前正在大力推動(dòng)為開發(fā)人員提供高層的軟件框架和工具,真正的硬件底層開發(fā),則由制造商完成。這使得嵌入式軟件開發(fā)人員,甚至應(yīng)用程序開發(fā)人員更容易在更高層上編寫軟件,他們不必再擔(dān)心底層的硬件了,因?yàn)橄嚓P(guān)的“輪子”已經(jīng)“出廠自帶”了。 未來(lái)的嵌入式軟件工程師將與傳統(tǒng)的前輩們有著不一樣的技能,他們也不再關(guān)心硬件底層,不再關(guān)心位、字節(jié)、寄存器,也不再關(guān)心任務(wù)的實(shí)時(shí)性,事實(shí)上,他們可能不再關(guān)心任何傳統(tǒng)嵌入式程序員需要關(guān)心的東西。未來(lái)的嵌入式軟件工程師可能只需要具備應(yīng)用程序開發(fā)技能,知道如何調(diào)用一個(gè) API 讓硬件做事。 但是,他們不知道為什么要這么做,以及 API 到底是怎樣命令硬件做事的,所以他們也不具備實(shí)時(shí)調(diào)試硬件的技能甚至概念,無(wú)法深入到寄存器中。這些工程師,更像是遠(yuǎn)離硬件的 Windows 程序員。 了解底層硬件的傳統(tǒng)嵌入式程序開發(fā)人員永遠(yuǎn)都不會(huì)被“淘汰”,否則誰(shuí)能提供 API,讓上層應(yīng)用程序開發(fā)人員調(diào)用,以控制硬件工作? 然而現(xiàn)實(shí)是,傳統(tǒng)嵌入式程序開發(fā)人員被公司忽略了。很多高科技公司更加青睞機(jī)器視覺、機(jī)器學(xué)習(xí)和其他尖端研究領(lǐng)域的開發(fā)人員,值得說(shuō)明的是,這些尖端人才往往不屑于驅(qū)動(dòng)硬件這類“基礎(chǔ)工作”。但是,如果沒有程序員能夠與硬件設(shè)備溝通,所謂的“機(jī)器”視覺和“機(jī)器”學(xué)習(xí)又怎樣才能實(shí)現(xiàn)呢? |
|
來(lái)自: 西北望msm66g9f > 《培訓(xùn)》