嵌入式軟件開發(fā)流程圖(嵌入式軟件開發(fā)流程五個(gè)流程)
本篇文章給大家談?wù)勄度胧杰浖_發(fā)流程圖,以及嵌入式軟件開發(fā)流程五個(gè)流程對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
- 1、嵌入式軟件開發(fā)方法
- 2、嵌入式軟件的運(yùn)行流程一般分幾個(gè)階段?每個(gè)階段完成的主要工作是什么?
- 3、嵌入式開發(fā)學(xué)習(xí)步驟
- 4、嵌入式開發(fā)難嗎?要怎么學(xué)習(xí)?
嵌入式軟件開發(fā)方法
根據(jù)使用的開發(fā)工具套件不同,軟件開發(fā)流程會(huì)有差異,但主要步驟大致相同。對(duì)于使用宿主機(jī)(PC)的集成化開發(fā)環(huán)境,軟件開發(fā)流程一般包括創(chuàng)建項(xiàng)目、添加文件、編譯連接、下載調(diào)試等步驟,如下圖所示。
圖1:嵌入式軟件開發(fā)流程
(1)創(chuàng)建工程項(xiàng)目:在配置硬件設(shè)備和安裝軟件開發(fā)工具后,就可以開始創(chuàng)建工程項(xiàng)目,通常需要選擇項(xiàng)目文件的存儲(chǔ)位置及目標(biāo)處理器。
(2)添加項(xiàng)目文件:開發(fā)人員需要?jiǎng)?chuàng)建源程序文件,編寫應(yīng)用程序代碼,并添加到工程項(xiàng)目中;還將使用設(shè)備驅(qū)動(dòng)程序的庫文件,包括啟動(dòng)代碼、頭文件和一些外設(shè)控制函數(shù),甚至中間件(Middleware)等。這些文件也需要添加到項(xiàng)目中。
(3)配置工程選項(xiàng):源于硬件設(shè)備的多樣性和軟件工具的復(fù)雜性,工程項(xiàng)目提供了不少選項(xiàng),需要開發(fā)人員配置,如輸出文件類型和位置、編譯選項(xiàng)和優(yōu)化類型等,還要根據(jù)選用的開發(fā)板和在線仿真器,配置代碼調(diào)試和下載選項(xiàng)等。
(4)交叉編譯連接:利用開發(fā)軟件工具對(duì)項(xiàng)目的多個(gè)文件分別編譯,生成相應(yīng)的目標(biāo)文件,然后連接生成最終的可執(zhí)行文件映像,以下載到目標(biāo)設(shè)備的文件格式保存。如果編譯連接有錯(cuò)誤,返回修改;如果沒有錯(cuò)誤,先進(jìn)行軟件模擬運(yùn)行和調(diào)試,再下載到開發(fā)板運(yùn)行和調(diào)試。
(5)程序下載:目前,絕大多數(shù)微控制器都使用閃存(Flash Memory)保存程序。創(chuàng)建可執(zhí)行文件映像后,需要使用在線仿真器(或串口、網(wǎng)口)將其下載到微控制器的閃存中,實(shí)現(xiàn)閃存的編程;還可以將可執(zhí)行文件下載到SRAM中運(yùn)行。
(6)運(yùn)行和調(diào)試:程序下載后,可以啟動(dòng)運(yùn)行,看是否正常工作。如果有問題,連接在線仿真器,借助軟件開發(fā)工具的調(diào)試環(huán)境進(jìn)行斷點(diǎn)和單步調(diào)試,觀察程序操作的詳細(xì)過程。如果應(yīng)用程序運(yùn)行有錯(cuò)誤,返回修改。
嵌入式軟件的運(yùn)行流程一般分幾個(gè)階段?每個(gè)階段完成的主要工作是什么?
四個(gè)階段:
1、問題的定義及規(guī)劃,此階段是軟件開發(fā)與需求放共同討論,主要確定軟件的開發(fā)目標(biāo)及其可行性。
2、需求分析,在確定軟件開發(fā)可行性的情況下,對(duì)軟件需要實(shí)現(xiàn)的各個(gè)功能進(jìn)行詳細(xì)需求分析,因此,必須定制需求變更計(jì)劃來應(yīng)付這種變化,以保護(hù)整個(gè)項(xiàng)目的正常進(jìn)行。
3、軟件設(shè)計(jì)此階段中偶要根據(jù)需求分析的結(jié)果,對(duì)整個(gè)軟件系統(tǒng)進(jìn)行設(shè)計(jì),如系統(tǒng)框架設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)等。
4、程序編碼此階段是將軟件設(shè)計(jì)的結(jié)果轉(zhuǎn)化為計(jì)算機(jī)可運(yùn)行的程序代碼,以保證程序的可讀性、易維護(hù)性。提高程序的運(yùn)行效率。
擴(kuò)展資料:
嵌入式軟件具有獨(dú)特的實(shí)用性,嵌入式軟件是為嵌入式系統(tǒng)服務(wù)的,這就要求它與外部硬件和設(shè)備聯(lián)系緊密。
嵌入式系統(tǒng)以應(yīng)用為中心,嵌入式軟件是應(yīng)用系統(tǒng),根據(jù)應(yīng)用需求定向開發(fā),面向產(chǎn)業(yè)、面向市場(chǎng),需要特定的行業(yè)經(jīng)驗(yàn)。每種嵌入式軟件都有自己獨(dú)特的應(yīng)用環(huán)境和實(shí)用價(jià)值。
2嵌入式軟件應(yīng)有靈活的適用性,嵌入式軟件通常可以認(rèn)為是一種模塊化軟件,它應(yīng)該能非常方便靈活的運(yùn)用到各種嵌入式系統(tǒng)中,而不能破壞或更改原有的系統(tǒng)特性和功能。它要小巧,不能占用大量資源;其次要使用靈活,應(yīng)盡量?jī)?yōu)化配置。
嵌入式開發(fā)學(xué)習(xí)步驟
我也是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的,你要是在單片機(jī)上做開發(fā),給你看看怎么學(xué)習(xí)。當(dāng)然我們的嵌入式學(xué)習(xí)基本上都是基于Linux的啊。
開發(fā)板必須要有的?。?!呵呵。
這里聲明一下,我指的嵌入式主要是偏向軟件的嵌入式。學(xué)習(xí)嵌入式的重點(diǎn)和難點(diǎn)關(guān)鍵在操作系統(tǒng),如果沒有掌握操作系統(tǒng),我認(rèn)為很難把握一個(gè)嵌入式系統(tǒng)。即使在做嵌入式開發(fā)中,作應(yīng)有層的開發(fā)幾乎可以不知道操作系統(tǒng)也可以開發(fā),我認(rèn)為那是浮在表面的。很難深入和提高自己的層次。聲明:一孔之見!不可深究!
在學(xué)習(xí)linux內(nèi)核過程中犯了一個(gè)極其嚴(yán)重路線錯(cuò)誤:對(duì)linux幾乎不懂就開始學(xué)習(xí)內(nèi)核。我個(gè)人推薦一個(gè)學(xué)習(xí)路線是:使用linux—〉linxu系統(tǒng)編程開發(fā)---〉驅(qū)動(dòng)開發(fā)和分析linux內(nèi)核。而我差不多相反,實(shí)際上你不會(huì)使用linux也可以學(xué)習(xí)內(nèi)核,但是如果你懂了這些東西學(xué)習(xí)更有效率。
關(guān)于要不要學(xué)習(xí)內(nèi)核的問題,我的回答如下:不一定。如果你是喜歡鉆研的那你進(jìn)入內(nèi)核會(huì)滿足你的欲望。同時(shí)對(duì)你以后的嵌入式系統(tǒng)的開發(fā)有很好的影響。如果你想從事嵌入式linux系統(tǒng)開發(fā),最好對(duì)內(nèi)核有所了解。如果僅僅是做應(yīng)用開發(fā)沒有必要。我打個(gè)比喻:c、c++、java等語言是武林中的某個(gè)武林派別的話,如什么拳法,什么刀法等,那么linux?內(nèi)核應(yīng)該是一個(gè)人的內(nèi)功的反應(yīng)。
怎么開始學(xué)linux內(nèi)核:最好有三件寶物:《深入理解linux內(nèi)核》《情景分析》和源代碼。?先看《深入理解linux內(nèi)核》,那主要講原理,好像市場(chǎng)上有本講原理性并且更淺,《linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)》聽說不錯(cuò)。如果沒有學(xué)習(xí)操作系統(tǒng)的,像我這樣的,最好先看看操作系統(tǒng)原理的書??戳藥妆楹?,就看情景分析,最好對(duì)著《深入理解linux內(nèi)核》看。兩本交叉看,《深入理解linux內(nèi)核》是綱,《情景分析》是目。最后深入代碼。
學(xué)習(xí)嵌入式技術(shù),我認(rèn)為兩個(gè)重點(diǎn),cpu和操作系統(tǒng),目前市場(chǎng)是比較流行arm,所以推薦大家學(xué)習(xí)arm。操作系統(tǒng)很多,我個(gè)人對(duì)開始學(xué)習(xí)的人,特別不是計(jì)算機(jī)專業(yè)的,推薦學(xué)習(xí)ucos。那是開源的,同時(shí)很小。學(xué)習(xí)很好。為什么選linux,我不想講太多,網(wǎng)上這方面的太多,但是我在工作中發(fā)現(xiàn),做linux的技術(shù)路線很難,在windows幾乎不會(huì)有的問題,在linux開發(fā)中幾乎遍地陷阱。一掉進(jìn)去劃很長(zhǎng)時(shí)間出來,一旦解決自己又長(zhǎng)進(jìn)了!相對(duì)來說開發(fā)周期長(zhǎng),難度大。現(xiàn)在資料也逐漸豐富起來,難度也降低了些!
至于怎么學(xué)習(xí),這是他的特色地方,必須有塊開發(fā)板,我是同學(xué)里最早買學(xué)習(xí)板的,雖然化錢,我認(rèn)為值。對(duì)我實(shí)習(xí)和工作產(chǎn)生了很大的影響。
如果沒有開發(fā)板,那是紙上談兵。有人說,那要1000-2000啊,的確是,兄弟,看長(zhǎng)遠(yuǎn)的,對(duì)您的職業(yè)和發(fā)展那點(diǎn)錢不算什么!有的人說我站著說話不腰痛,好吧,錢這東西對(duì)我影響很大,我在大學(xué)里掃廁所,掃的不錯(cuò),獎(jiǎng)5元/月。兄弟你有過嗎?我認(rèn)為教育投資是效益最有保障的!我實(shí)習(xí)拿3k,很多同學(xué)拿?1-2k,當(dāng)然比我高的也有。雖然我現(xiàn)在沒有畢業(yè),但一家公司就簽了。從事目前流行的高檔的消費(fèi)電子的研發(fā)。對(duì)于我兩年前一無所知的我,應(yīng)該有質(zhì)的變化,我感謝學(xué)校收了我這個(gè)廢品。當(dāng)然我也非常的努力。說這么多并不是要炫耀我什么,實(shí)際上根本不值得炫耀,雖然現(xiàn)在工作環(huán)境和待遇比較滿意,但是,我發(fā)現(xiàn)我很差,特別是代碼能力,我希望平常大家少玩游戲,多編程。編程才是硬道理!
沒有想到,一下寫了這么多,其實(shí)還想寫的,比如在中科院的一位老兄是怎樣學(xué)習(xí)linux內(nèi)核和看書的,真的很感動(dòng)。他的為人我很欽佩。也想介紹毛德操的《嵌入式系統(tǒng)》那本書,對(duì)學(xué)習(xí)arm?linux的很好,也想介紹實(shí)習(xí)和工作的東西,太長(zhǎng)了,耽誤大家時(shí)間。我也不想檢查里面的錯(cuò)別字了,很多!
呵呵呵,我想對(duì)你應(yīng)該有幫助的啊,特別是那幾本書,必看的?。。?/p>
希望你前程似錦,學(xué)習(xí)進(jìn)步??!
呵呵呵呵。匯編也很重要啊,這一點(diǎn)對(duì)明白操作系統(tǒng)和CPU有重要的推進(jìn)作用。
嵌入式開發(fā)難嗎?要怎么學(xué)習(xí)?
嵌入式開發(fā)比互聯(lián)網(wǎng)軟件開發(fā)是要難些,互聯(lián)網(wǎng)開發(fā)是依據(jù)用戶態(tài)的,嵌入式是深化內(nèi)核態(tài)的,首要難在這幾個(gè)方面:
首要,嵌入式偏底層,是軟硬結(jié)合的東西,軟、硬件都要懂,對(duì)才干要求原本就要高不少;
其次,嵌入式開發(fā)的學(xué)習(xí)門檻也要高一些,而且像Linux途徑下的開發(fā)流程,很多人都不習(xí)氣,摸不清;
再者,嵌入式學(xué)習(xí)的正向反應(yīng)可能比較慢,尤其是前期學(xué)習(xí)階段,導(dǎo)致沒有什么成就感,也就堅(jiān)持不下去了,所以往往就棄坑了。
已然嵌入式這么難,那要怎樣學(xué)才干學(xué)好呢?你可以分三個(gè)階段來學(xué)習(xí):
1.基礎(chǔ)學(xué)習(xí)階段。這就包括通用編程基礎(chǔ)(C語言、數(shù)據(jù)結(jié)構(gòu)/算法、操作系統(tǒng)、計(jì)網(wǎng)、計(jì)組、Linux系統(tǒng)基礎(chǔ))和基本的硬件基礎(chǔ),扎實(shí)地掌握這兩大基礎(chǔ),是后續(xù)持續(xù)發(fā)展和不斷進(jìn)步的動(dòng)力源泉。
2.嵌入式運(yùn)用編程階段,或者說系統(tǒng)途徑編程階段。由于一般會(huì)以特定的嵌入式途徑和特定的嵌入式操作系統(tǒng)為依托,了解這個(gè)系統(tǒng)途徑上的編程方法和流程。以常見的ARM+Linux途徑為例,需求掌握從內(nèi)存管理到多任務(wù)編程、文件I/O、網(wǎng)絡(luò)編程,甚至圖形化界面編程等幾個(gè)大的方面。
3.深化嵌入式底層開發(fā)階段,最常見的就是內(nèi)核開發(fā)和驅(qū)動(dòng)開發(fā),這些統(tǒng)歸于內(nèi)核態(tài)開發(fā)范疇,所以需求對(duì)操作系統(tǒng)內(nèi)部機(jī)制有所涉獵和了解,在此基礎(chǔ)上需求掌握從系統(tǒng)移植到內(nèi)核開發(fā)、驅(qū)動(dòng)開發(fā)的各個(gè)細(xì)節(jié),這是成神之路。
學(xué)習(xí)嵌入式是個(gè)綿長(zhǎng)的進(jìn)程,厚積薄發(fā)的進(jìn)程,需求健壯的毅力,一旦你學(xué)有所成,所取得酬謝也是非常大的,所以咱們不要容易拋棄。
關(guān)于嵌入式軟件開發(fā)流程圖和嵌入式軟件開發(fā)流程五個(gè)流程的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。