嵌入式系統(tǒng)軟件工程師是泛指那些從事嵌入式系統(tǒng)軟件領(lǐng)域工作并掌握了該領(lǐng)域基本知識(shí)和專業(yè)基礎(chǔ)的職業(yè)技術(shù)人員。就一位嵌入式系統(tǒng)軟件工程師而言,用人單位會(huì)特別關(guān)注你在該領(lǐng)域中所具備的特定的職業(yè)技能,比如你所擅長的是嵌入式系統(tǒng)驅(qū)動(dòng)軟件開發(fā),還是嵌入式系統(tǒng)應(yīng)用開發(fā),或者是嵌入式系統(tǒng)測(cè)試;你具體掌握了哪一種操作系統(tǒng),是否有在某一種嵌入式系統(tǒng)結(jié)構(gòu)上進(jìn)行嵌入式系統(tǒng)軟件開發(fā)的技能。所以,人們經(jīng)常按照操作系統(tǒng)或者硬件結(jié)構(gòu)來細(xì)分嵌入式系統(tǒng)軟件工程師,比如嵌入式系統(tǒng)(Linux)工程師、嵌入式系統(tǒng)(WINCE)工程師、嵌入式系統(tǒng)(ARM)工程師、嵌入式系統(tǒng)(MIPS)工程師等。
很多學(xué)生總不確定將來可能做什么,所以對(duì)于專業(yè)學(xué)習(xí)根本就沒有計(jì)劃或分析,而是抱著走一步算一步的態(tài)度。這樣的想法往往就會(huì)通過潛意識(shí)去暗示你自己,導(dǎo)致終你變得無所事事、碌碌無為。如果你從現(xiàn)在起,確定自己的發(fā)展方向,制定職業(yè)計(jì)劃并為此付出實(shí)際行動(dòng),那么無論你將來是往技術(shù)、管理方向發(fā)展還是自主創(chuàng)業(yè),甚至無論你將來是否仍然執(zhí)行你現(xiàn)在制定的計(jì)劃,你都將獲得能力的提高。
具有理論與實(shí)踐并重,內(nèi)外雙修的素質(zhì)
一個(gè)合格的嵌入式系統(tǒng)軟件工程師,是真正理解了嵌入式系統(tǒng)軟件產(chǎn)品的本質(zhì)及軟件產(chǎn)品研發(fā)思想精髓的人。掌握嵌入式系統(tǒng)軟件開發(fā)語言、應(yīng)用語言工具解決工作中的具體問題、完成目標(biāo)任務(wù)是嵌入式系統(tǒng)軟件工程師的主要工作。但從嵌入式系統(tǒng)軟件工程師這個(gè)角度來看,這只是外在的東西,并非重要的、本質(zhì)的工作。學(xué)習(xí)、掌握嵌入式系統(tǒng)軟件產(chǎn)品開發(fā)理論知識(shí)、軟件開發(fā)方法,并在實(shí)踐中理解、應(yīng)用軟件產(chǎn)品的分析、設(shè)計(jì)、實(shí)現(xiàn)思想來解決具體的嵌入式系統(tǒng)軟件產(chǎn)品研發(fā)問題,才是真正的嵌入式系統(tǒng)軟件工程師的必要素養(yǎng)。
具有良好的職業(yè)知識(shí)表達(dá)能力
正如前面所言,粵嵌職業(yè)教育的目標(biāo)是培養(yǎng)學(xué)生能用、能做、能想、能說的能力。實(shí)際上,“能說”是關(guān)鍵的能力培養(yǎng)。建立在“能說”能力的背后的是你對(duì)相關(guān)知識(shí)的確實(shí)理解和你對(duì)問題的敏捷反應(yīng)。
深入理解了嵌入式系統(tǒng)的概念
從硬件上理解。嵌入式系統(tǒng)硬件是將傳統(tǒng)的基于CPU的外圍器件,整合到CPU芯片內(nèi)部。例如比較高端的ARM類IntelXscale架構(gòu)下的IXP網(wǎng)絡(luò)處理器CPU內(nèi)部集成了PCI控制器,還集成了3個(gè)NPE網(wǎng)絡(luò)處理器引擎。
從軟件上理解。嵌入式系統(tǒng)就是在定制操作系統(tǒng)內(nèi)核里將應(yīng)用一并選入,編譯后將內(nèi)核下載到ROM中。而在定制操作系統(tǒng)內(nèi)核時(shí)所選擇的應(yīng)用程序組件則是完成了軟件的“嵌入”。比如WinCE在內(nèi)核定制時(shí),會(huì)有相應(yīng)選擇,其中就是Wordpad、PDF、MediaPlay等等選擇。如果我們選擇了,在CE啟動(dòng)后,就可以在界面中找到這些東西。
從實(shí)現(xiàn)上理解。把軟件內(nèi)核或應(yīng)用文件系統(tǒng)等東西寫入到嵌入式系統(tǒng)硬件平臺(tái)中的ROM,就實(shí)現(xiàn)了一個(gè)真正的“嵌入”。
知道嵌入式系統(tǒng)的分層方式
嵌入式系統(tǒng)分為4層,硬件層、驅(qū)動(dòng)層、操作系統(tǒng)層和應(yīng)用層。
硬件層:是整個(gè)嵌入式系統(tǒng)的根本,如果你現(xiàn)在對(duì)單片機(jī)及接口這塊很熟悉,并且能用C語言和匯編語言來編程的話,那么從嵌入式系統(tǒng)的硬件層做起來就相對(duì)容易。硬件層是嵌入式系統(tǒng)的基礎(chǔ),但嵌入式系統(tǒng)增值還是要靠軟件。
驅(qū)動(dòng)層:要能看懂電路圖還要能對(duì)操作系統(tǒng)內(nèi)核十分的精通,以便所寫的驅(qū)動(dòng)程序在系統(tǒng)調(diào)用時(shí),不會(huì)獨(dú)占操作系統(tǒng)時(shí)間片,而導(dǎo)至其它任務(wù)不能運(yùn)行。當(dāng)然,不懂操作系統(tǒng)內(nèi)核架構(gòu)和實(shí)時(shí)調(diào)度性、沒有良好的驅(qū)動(dòng)程序編寫風(fēng)格,僅僅只是按照資料介紹去添加驅(qū)動(dòng)程序,是很多人可以做到的,但這也僅僅只是個(gè)初級(jí)的嵌入式系統(tǒng)驅(qū)動(dòng)工程師的水平。
操作系統(tǒng)層:在操作系統(tǒng)層的主要工作還是移植,而很少有人來自已寫操作系統(tǒng)。
應(yīng)用層:需要掌握編程語言、開發(fā)工具,知道在Linux/Windows等操作系統(tǒng)下如何進(jìn)行編程、函數(shù)調(diào)用,掌握編譯和開發(fā)環(huán)境等。
掌握操作系統(tǒng)、編程工具和程序設(shè)計(jì)環(huán)境
精通嵌入式系統(tǒng)的程序設(shè)計(jì)是主要的要求,因?yàn)榫幊淌乔度胧较到y(tǒng)軟件工程師花費(fèi)絕大部分時(shí)間的工作,因此嵌入式系統(tǒng)軟件工程師必須熟練掌握操作系統(tǒng)和嵌入式硬件結(jié)構(gòu),看得懂諸如硬件寄存器一類的內(nèi)容、掌握基于板級(jí)的匯編和C編程,了解硬件的接口電路設(shè)計(jì),掌握基于嵌入式操作系統(tǒng)的環(huán)境應(yīng)用與工具鏈,比如Linux下的ARM工具鏈等等。
熟練使用嵌入式系統(tǒng)開發(fā)平臺(tái)
嵌入式系統(tǒng)開發(fā)環(huán)境是你學(xué)習(xí)如何開發(fā)一個(gè)嵌入式系統(tǒng)項(xiàng)目的實(shí)驗(yàn)平臺(tái)。在培訓(xùn)中,你接觸的是一種能夠進(jìn)行具有相當(dāng)實(shí)際效果實(shí)驗(yàn)的教學(xué)實(shí)驗(yàn)平臺(tái),這種教學(xué)實(shí)驗(yàn)平臺(tái)必須外接特定的開發(fā)模塊,才能形成一個(gè)實(shí)際的開發(fā)系統(tǒng)。
擁有一套嵌入式系統(tǒng)實(shí)驗(yàn)平臺(tái),能夠極大地幫助嵌入式系統(tǒng)軟件初學(xué)者盡快熟悉和掌握嵌入式系統(tǒng)。熟悉一個(gè)實(shí)際的嵌入式系統(tǒng)開發(fā)平臺(tái),并且能夠從事某個(gè)具體項(xiàng)目的開發(fā),是獲得實(shí)際進(jìn)行嵌入式系統(tǒng)軟件開發(fā)工作經(jīng)驗(yàn)的必經(jīng)之路。
如果你滿足了上面的這些要求,你就可以成為一位合格的嵌入式系統(tǒng)軟件工程師。當(dāng)然,真正的嵌入式系統(tǒng)軟件工程師是要靠工作中的積累才能形成的,而這也是用實(shí)際工作時(shí)間來衡量的。