深入學(xué)習(xí)嵌入式軟件:嵌入式軟件的開發(fā)流程是怎樣的?
嵌入式軟件就是嵌入在硬件中的操作系統(tǒng)和開發(fā)工具軟件,在嵌入式行業(yè)中具備重要地位。為增進(jìn)大家對(duì)嵌入式軟件的認(rèn)識(shí),本文將對(duì)嵌入式軟件的開發(fā)流程予以詳細(xì)介紹。如果你對(duì)嵌入式軟件具有興趣,不妨和小編一起來繼續(xù)往下閱讀哦。
在嵌入式系統(tǒng)的開發(fā)過程中,一般采用的方法是現(xiàn)在通用PC機(jī)上編程;然后通過交叉編譯和鏈接,將程序做成目標(biāo)平臺(tái)上課運(yùn)行的二進(jìn)制代碼格式;最后將程序下載到目標(biāo)平臺(tái)上的特定位置,由目標(biāo)板上啟動(dòng)代碼運(yùn)行這段二進(jìn)制代碼,從而運(yùn)行起嵌入式系統(tǒng)。
嵌入式軟件開發(fā)的基本流程:整個(gè)過程中的部分工作在主機(jī)上完成的,另一部分工作在目標(biāo)板上完成。首先,是在主機(jī)上的編程工作。純粹使用匯編代碼編寫源代碼,除了編寫困難外,調(diào)試和維護(hù)困難也是匯編代碼的難題;而c語言可直接對(duì)硬件進(jìn)行操作,而且又有高級(jí)語言程序結(jié)構(gòu)化、容易移植等優(yōu)點(diǎn),因而嵌入式系統(tǒng)源代碼主要是由匯編語言和c語言混合編寫。源代碼編寫完成后容易保存為源文件,再用主機(jī)上建立的交叉編譯環(huán)境生成.obj文件,并且將.obj文件按照目標(biāo)板的要求鏈接成合適的.image文件。最后通過重定位機(jī)制和下載過程,將.image文件下載到目標(biāo)板上運(yùn)行。由于無法保證目標(biāo)板一次就可以運(yùn)行編譯、鏈接成功的程序,因此后期的調(diào)試排錯(cuò)工作就特別重要。調(diào)試只能在運(yùn)行態(tài)完成,因此在主機(jī)和目標(biāo)板之間通過連接,由主機(jī)控制目標(biāo)板上程序的運(yùn)行,可達(dá)到調(diào)試內(nèi)核或者嵌入式應(yīng)用程序的目的。
作為從事了5年之久的嵌入式軟件開發(fā),以下職責(zé)是必須要掌握的,嵌入式軟件工程師能根據(jù)項(xiàng)目管理和工程技術(shù)的實(shí)際要求,按照系統(tǒng)總體設(shè)計(jì)規(guī)格進(jìn)行軟、硬件實(shí)際,編寫系統(tǒng)開發(fā)規(guī)格說明書等相應(yīng)的文檔;組織和指導(dǎo)嵌入式系統(tǒng)靠法實(shí)施人員實(shí)施硬件電路、編寫和調(diào)試程序,并對(duì)嵌入式系統(tǒng)硬件設(shè)備和程序進(jìn)行優(yōu)化和集成測(cè)試,開發(fā)出符合系統(tǒng)總體設(shè)計(jì)要求的高質(zhì)量嵌入式系統(tǒng);具有工程師的實(shí)際工作能力和業(yè)務(wù)水平。
同時(shí)在這樣一個(gè)技術(shù)日進(jìn)千里的時(shí)代中,嵌入式軟件開發(fā)工程師該干嘛,我給出大家列一個(gè)嵌入式軟件開發(fā)流程,對(duì)你一定有所幫助。
1.學(xué)習(xí)那些讓因特網(wǎng)實(shí)現(xiàn)的技術(shù),建議嵌入式工程師學(xué)習(xí)因特網(wǎng)有關(guān)的技術(shù),對(duì)職業(yè)生涯發(fā)展會(huì)有加分效果。
2.學(xué)習(xí)利用搜索引擎,不要閉門造車,要善用開放源碼世界的信息,很多常見的設(shè)計(jì)問題其實(shí)透過因特網(wǎng)就能找到同領(lǐng)域菁英貢獻(xiàn)的程序代碼,與同領(lǐng)域的其他工程師們相互交流、互相幫助。
3.離開舒適圈,走出舒適圈,挑戰(zhàn)自我、去學(xué)習(xí)原本不熟悉的東西,包括工程以外的知識(shí)。
4.熟悉實(shí)時(shí)操作系統(tǒng),嵌入式工程師從一些較小型的系統(tǒng)著手,累積相關(guān)技術(shù)經(jīng)驗(yàn)。
5.培養(yǎng)多元化技能與系統(tǒng)觀,嘗試著去開發(fā)手機(jī)應(yīng)用程序、或者是學(xué)習(xí)后端服務(wù)器的相關(guān)技術(shù),能讓你開啟完全不同的觀點(diǎn),去熟悉開放性硬件,現(xiàn)在市面上有不少現(xiàn)成的開發(fā)板,能讓工程 師專注于學(xué)習(xí)獨(dú)特算法的開發(fā)。
6.了解軟件也要了解新的處理器,除了要深入了解C或C++等基本程序語言,有時(shí)也要認(rèn)識(shí)一些熱門的新程序語言以因應(yīng)特殊設(shè)計(jì)需求,但更重要的是了解新的處理器技術(shù);處理器才是嵌入式系統(tǒng)的本質(zhì)。
7.要能熟悉開放源碼軟件,建議工程師避免只專長單一領(lǐng)域,因?yàn)槟强赡軙?huì)阻礙你的成長。對(duì) 嵌入式工程師來說,確保自己對(duì)軟硬件技術(shù)都很了解,是非常寶貴的價(jià)值。
8.建立系統(tǒng)級(jí)的工程思維,嵌入式工程師擁有系統(tǒng)導(dǎo)向的思維是很重要的,此外每個(gè)嵌入式工程師都應(yīng)該具備優(yōu)良的項(xiàng)目管理技巧,力求準(zhǔn)時(shí)完成負(fù)責(zé)的項(xiàng)目。
9.要能明確表達(dá)自己的想法與意見透過文字或繪圖,無論是哪一種工程師,都需要能有效表達(dá)自己的想法與意見。
10.學(xué)習(xí)無線連結(jié)技術(shù),嵌入式工程師需要在接下來1—3年學(xué)習(xí)無線連結(jié)技術(shù),特別是Wi-Fi與藍(lán)牙低功耗;因?yàn)楝F(xiàn)在的嵌入式設(shè)備與使用者智能手機(jī)連結(jié)的主要方式。
以上便是此次帶來的嵌入式軟件相關(guān)內(nèi)容,通過本文,希望大家對(duì)嵌入式軟件已經(jīng)具備一定的了解。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,將于后期帶來更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!