嵌入式軟件開發(fā)流程圖(嵌入式軟件開發(fā)流程圖怎么寫)
今天給各位分享嵌入式軟件開發(fā)流程圖的知識,其中也會對嵌入式軟件開發(fā)流程圖怎么寫進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!
本文目錄一覽:
嵌入式軟件開發(fā)方法
根據(jù)使用的開發(fā)工具套件不同,軟件開發(fā)流程會有差異,但主要步驟大致相同。對于使用宿主機(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)目文件的存儲位置及目標(biāo)處理器。
(2)添加項(xiàng)目文件:開發(fā)人員需要創(chuàng)建源程序文件,編寫應(yīng)用程序代碼,并添加到工程項(xiàng)目中;還將使用設(shè)備驅(qū)動程序的庫文件,包括啟動代碼、頭文件和一些外設(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ā)軟件工具對項(xiàng)目的多個文件分別編譯,生成相應(yīng)的目標(biāo)文件,然后連接生成最終的可執(zhí)行文件映像,以下載到目標(biāo)設(shè)備的文件格式保存。如果編譯連接有錯誤,返回修改;如果沒有錯誤,先進(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)試:程序下載后,可以啟動運(yùn)行,看是否正常工作。如果有問題,連接在線仿真器,借助軟件開發(fā)工具的調(diào)試環(huán)境進(jìn)行斷點(diǎn)和單步調(diào)試,觀察程序操作的詳細(xì)過程。如果應(yīng)用程序運(yùn)行有錯誤,返回修改。
嵌入式開發(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)為很難把握一個嵌入式系統(tǒng)。即使在做嵌入式開發(fā)中,作應(yīng)有層的開發(fā)幾乎可以不知道操作系統(tǒng)也可以開發(fā),我認(rèn)為那是浮在表面的。很難深入和提高自己的層次。聲明:一孔之見!不可深究!
在學(xué)習(xí)linux內(nèi)核過程中犯了一個極其嚴(yán)重路線錯誤:對linux幾乎不懂就開始學(xué)習(xí)內(nèi)核。我個人推薦一個學(xué)習(xí)路線是:使用linux—〉linxu系統(tǒng)編程開發(fā)---〉驅(qū)動開發(fā)和分析linux內(nèi)核。而我差不多相反,實(shí)際上你不會使用linux也可以學(xué)習(xí)內(nèi)核,但是如果你懂了這些東西學(xué)習(xí)更有效率。
關(guān)于要不要學(xué)習(xí)內(nèi)核的問題,我的回答如下:不一定。如果你是喜歡鉆研的那你進(jìn)入內(nèi)核會滿足你的欲望。同時對你以后的嵌入式系統(tǒng)的開發(fā)有很好的影響。如果你想從事嵌入式linux系統(tǒng)開發(fā),最好對內(nèi)核有所了解。如果僅僅是做應(yīng)用開發(fā)沒有必要。我打個比喻:c、c++、java等語言是武林中的某個武林派別的話,如什么拳法,什么刀法等,那么linux?內(nèi)核應(yīng)該是一個人的內(nèi)功的反應(yīng)。
怎么開始學(xué)linux內(nèi)核:最好有三件寶物:《深入理解linux內(nèi)核》《情景分析》和源代碼。?先看《深入理解linux內(nèi)核》,那主要講原理,好像市場上有本講原理性并且更淺,《linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)》聽說不錯。如果沒有學(xué)習(xí)操作系統(tǒng)的,像我這樣的,最好先看看操作系統(tǒng)原理的書??戳藥妆楹?,就看情景分析,最好對著《深入理解linux內(nèi)核》看。兩本交叉看,《深入理解linux內(nèi)核》是綱,《情景分析》是目。最后深入代碼。
學(xué)習(xí)嵌入式技術(shù),我認(rèn)為兩個重點(diǎn),cpu和操作系統(tǒng),目前市場是比較流行arm,所以推薦大家學(xué)習(xí)arm。操作系統(tǒng)很多,我個人對開始學(xué)習(xí)的人,特別不是計(jì)算機(jī)專業(yè)的,推薦學(xué)習(xí)ucos。那是開源的,同時很小。學(xué)習(xí)很好。為什么選linux,我不想講太多,網(wǎng)上這方面的太多,但是我在工作中發(fā)現(xiàn),做linux的技術(shù)路線很難,在windows幾乎不會有的問題,在linux開發(fā)中幾乎遍地陷阱。一掉進(jìn)去劃很長時間出來,一旦解決自己又長進(jìn)了!相對來說開發(fā)周期長,難度大。現(xiàn)在資料也逐漸豐富起來,難度也降低了些!
至于怎么學(xué)習(xí),這是他的特色地方,必須有塊開發(fā)板,我是同學(xué)里最早買學(xué)習(xí)板的,雖然化錢,我認(rèn)為值。對我實(shí)習(xí)和工作產(chǎn)生了很大的影響。
如果沒有開發(fā)板,那是紙上談兵。有人說,那要1000-2000啊,的確是,兄弟,看長遠(yuǎn)的,對您的職業(yè)和發(fā)展那點(diǎn)錢不算什么!有的人說我站著說話不腰痛,好吧,錢這東西對我影響很大,我在大學(xué)里掃廁所,掃的不錯,獎5元/月。兄弟你有過嗎?我認(rèn)為教育投資是效益最有保障的!我實(shí)習(xí)拿3k,很多同學(xué)拿?1-2k,當(dāng)然比我高的也有。雖然我現(xiàn)在沒有畢業(yè),但一家公司就簽了。從事目前流行的高檔的消費(fèi)電子的研發(fā)。對于我兩年前一無所知的我,應(yīng)該有質(zhì)的變化,我感謝學(xué)校收了我這個廢品。當(dāng)然我也非常的努力。說這么多并不是要炫耀我什么,實(shí)際上根本不值得炫耀,雖然現(xiàn)在工作環(huán)境和待遇比較滿意,但是,我發(fā)現(xiàn)我很差,特別是代碼能力,我希望平常大家少玩游戲,多編程。編程才是硬道理!
沒有想到,一下寫了這么多,其實(shí)還想寫的,比如在中科院的一位老兄是怎樣學(xué)習(xí)linux內(nèi)核和看書的,真的很感動。他的為人我很欽佩。也想介紹毛德操的《嵌入式系統(tǒng)》那本書,對學(xué)習(xí)arm?linux的很好,也想介紹實(shí)習(xí)和工作的東西,太長了,耽誤大家時間。我也不想檢查里面的錯別字了,很多!
呵呵呵,我想對你應(yīng)該有幫助的啊,特別是那幾本書,必看的?。?!
希望你前程似錦,學(xué)習(xí)進(jìn)步!!
呵呵呵呵。匯編也很重要啊,這一點(diǎn)對明白操作系統(tǒng)和CPU有重要的推進(jìn)作用。
嵌入式系統(tǒng)的設(shè)計(jì)流程是什么?
一、嵌入式系統(tǒng)開發(fā)流程?
1、系統(tǒng)需求分析:根據(jù)需求,確定設(shè)計(jì)任務(wù)和設(shè)計(jì)目標(biāo),指定設(shè)計(jì)說明書。?
2、體系結(jié)構(gòu)設(shè)計(jì):描述系統(tǒng)如何實(shí)現(xiàn)所述的功能需求,包括對硬件、軟件和執(zhí)行裝置的功能劃分以及系統(tǒng)的軟件、硬件選型。
3、硬件/軟件協(xié)同設(shè)計(jì):基于體系結(jié)構(gòu)的設(shè)計(jì)結(jié)果,對系統(tǒng)的硬件、軟件進(jìn)行詳細(xì)設(shè)計(jì)。一般情況下嵌入式系統(tǒng)設(shè)計(jì)的工作大部分都集中在軟件設(shè)計(jì)上,現(xiàn)代軟件工程經(jīng)常采用的方法是面向?qū)ο蠹夹g(shù)、軟件組件技術(shù)和模塊化設(shè)計(jì)。?
4、系統(tǒng)集成:把系統(tǒng)的硬件、軟件和執(zhí)行裝置集成在一起進(jìn)行調(diào)試,發(fā)現(xiàn)并改進(jìn)設(shè)計(jì)過程中的不足之處。
5、系統(tǒng)測試:對設(shè)計(jì)好的系統(tǒng)進(jìn)行測試,檢驗(yàn)系統(tǒng)是否滿足實(shí)際需求。
?
二、嵌入式軟件開發(fā)?
嵌入式軟件開發(fā)的一般流程為需求分析、軟件概要設(shè)計(jì)、軟件詳細(xì)設(shè)計(jì)、軟件實(shí)現(xiàn)和軟件測試。與一般的軟件開發(fā)區(qū)別主要在于軟件實(shí)現(xiàn)的編譯和調(diào)試兩部分即為交叉編譯與交叉調(diào)試。
嵌入式產(chǎn)品開發(fā)流程
嵌入式硬件開發(fā)流程一般分為8 個階段:
嵌入式產(chǎn)品的硬件形態(tài)各異,CPU 從簡單的4 位/8 位單片機(jī)到32 位的ARM 處理器,以及其他專用IC。另外,依據(jù)產(chǎn)品的不同需求,外圍電路也各不相同。每一次硬件開發(fā)過程,都需要依據(jù)實(shí)際的需求,考慮多方面的因素,選擇最合適的方案來。
硬件階段
1:硬件產(chǎn)品需求 和普通的嵌入式產(chǎn)品需求一樣。
階段1:
產(chǎn)品需求。
硬件階段2:
硬件總體設(shè)計(jì)方案
一個硬件開發(fā)項(xiàng)目,它的需求可能來自很多方面,比如市場產(chǎn)品的需要或性能提升的要求等,因此,作為一個硬件設(shè)計(jì)人員,我們需要主動去了解各個方面的需求并分析,根據(jù)系統(tǒng)所要完成的功能,選擇最合適的硬件方案。
在這一階段,我們需要分析整個系統(tǒng)設(shè)計(jì)的可行性,包括方案中主要器件的可采購性,產(chǎn)品開發(fā)投入,項(xiàng)目開發(fā)周期預(yù)計(jì),開發(fā)風(fēng)險(xiǎn)評估等,并針對開發(fā)過程中可能遇到的問題,提前選擇應(yīng)對方案,保證硬件的順利完成。
硬件階段3:
硬件電路原理圖設(shè)計(jì)
在系統(tǒng)方案確定后,我們即可以開展相關(guān)的設(shè)計(jì)工作,原理設(shè)計(jì)主要包括系統(tǒng)總體設(shè)計(jì)和詳細(xì)設(shè)計(jì),最終產(chǎn)生詳細(xì)的設(shè)計(jì)文檔和硬件原理圖。
原理設(shè)計(jì)和PCB 設(shè)計(jì)是設(shè)計(jì)人員最主要的兩個工作之一,在原理設(shè)計(jì)過程中,我們需要規(guī)劃硬件內(nèi)部資源,如系統(tǒng)存儲空間,以及各個外圍電路模塊的實(shí)現(xiàn)。另外,對系統(tǒng)主要的外圍電路,如電源、復(fù)位等也需要仔細(xì)的考慮,在一些高速設(shè)計(jì)或特殊應(yīng)用場合,還需要考慮EMC/EMI 等。
電源是保證硬件系統(tǒng)正常工作的基礎(chǔ),設(shè)計(jì)中要詳細(xì)的分析:系統(tǒng)能夠提供的電源輸入;單板需要產(chǎn)生的電源輸出;各個電源需要提供的電流大??;電源電路效率;各個電源能夠允許的波動范圍;整個電源系統(tǒng)需要的上電順序等等。
為了系統(tǒng)穩(wěn)定可靠的工作,復(fù)位電路的設(shè)計(jì)也非常重要,如何保證系統(tǒng)不會在外界干擾的情況下異常復(fù)位,如何保證在系統(tǒng)運(yùn)行異常的時候能夠及時復(fù)位,以及如何合理的復(fù)位,才能保證系統(tǒng)完整的復(fù)位后,這些也都是我們在原理設(shè)計(jì)的時候需要考慮的。
同樣的,時鐘電路的設(shè)計(jì)也是非常重要的一個方面,一個不好的時鐘電路設(shè)計(jì),可能會引起通信產(chǎn)品的數(shù)據(jù)丟包,產(chǎn)生大的EMI,甚至導(dǎo)致系統(tǒng)不穩(wěn)定。
編者按:原理圖設(shè)計(jì)中要有“拿來主義”!現(xiàn)在的芯片廠家一般都可以提供參考設(shè)計(jì)的原理圖,所以要盡量的借助這些資源,在充分理解參考設(shè)計(jì)的基礎(chǔ)上,做一些自己的發(fā)揮。
硬件階段4:
PCB圖設(shè)計(jì)
PCB 設(shè)計(jì)階段,即是將原理圖設(shè)計(jì)轉(zhuǎn)化為實(shí)際的可加工的PCB 線路板,目前主流的PCB 設(shè)計(jì)軟件有PADS,Candence 和Protel 幾種。
PCB 設(shè)計(jì),尤其是高速PCB,需要考慮EMC/EMI,阻抗控制,信號質(zhì)量等,對PCB 設(shè)計(jì)人員的要求比較高。為了驗(yàn)證設(shè)計(jì)的PCB 是否符合要求,有的還需要進(jìn)行PCB 仿真。并依據(jù)仿真結(jié)果調(diào)整PCB 的布局布線,完成整個的設(shè)計(jì)。
硬件階段5:
PCB加工文件制作與PCB打樣
PCB 繪制完成以后,在這一階段,需要生成加工廠可識別的加工文件,即常說的光繪文件,將其交給加工廠打樣PCB 空板。一般1~4 層板可以在一周內(nèi)完成打樣。
硬件階段6:
硬件產(chǎn)品的焊接與調(diào)試
在拿到加工廠打樣會的 PCB 空板以后,接下來我們,需要檢查PCB 空板是否和我們設(shè)計(jì)預(yù)期一樣,是否存在明顯的短路或斷痕,檢查通過后,則需要將前期采購的元器件和PCB 空板交由生產(chǎn)廠家進(jìn)行焊接(如果PCB 電路不復(fù)雜,為了加快速度,也可以直接手工焊接元器件)。
當(dāng)PCB 已經(jīng)焊接完成后,在調(diào)試PCB 之前,一定要先認(rèn)真檢查是否有可見的短路和管腳搭錫等故障,檢查是否有元器件型號放置錯誤,第一腳放置錯誤,漏裝配等問題,然后用萬用表測量各個電源到地的電阻,以檢查是否有短路,這樣可以避免貿(mào)然上電后損壞單板。調(diào)試的過程中要有平和的心態(tài),遇見問題是非常正常的,要做的就是多做比較和分析,逐步的排除可能的原因,直致最終調(diào)試成功。
在硬件調(diào)試過程中,需要經(jīng)常使用到的調(diào)試工具有萬用表和示波器,邏輯分析儀等,用于測試和觀察板內(nèi)信號電壓和信號質(zhì)量,信號時序是否滿足要求。
硬件階段7:
硬件產(chǎn)品測試
當(dāng)硬件產(chǎn)品調(diào)試通過以后,需要對照產(chǎn)品產(chǎn)品的需求說明,一項(xiàng)一項(xiàng)進(jìn)行測試,確認(rèn)是否符合預(yù)期的要求,如果達(dá)不到要求,則需要對硬件產(chǎn)品進(jìn)行調(diào)試和修改,直到符合產(chǎn)品需求文明(一般都以需求說明文檔作為評判的一句,當(dāng)然明顯的需求說明錯誤除外)。
硬件階段8:
硬件產(chǎn)品
最終開發(fā)的硬件成功。一個完整的,完成符合產(chǎn)品需求的硬件產(chǎn)品還不能說明一個成功的產(chǎn)品開發(fā)過程,我們還需要按照預(yù)定計(jì)劃,準(zhǔn)時高質(zhì)量的完成。才是一個成功的產(chǎn)品開發(fā)過程。
嵌入式軟件開發(fā)流程圖的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于嵌入式軟件開發(fā)流程圖怎么寫、嵌入式軟件開發(fā)流程圖的信息別忘了在本站進(jìn)行查找喔。