嵌入式Linu應(yīng)用軟件開發(fā)流程_第1頁(yè)
嵌入式Linu應(yīng)用軟件開發(fā)流程_第2頁(yè)
嵌入式Linu應(yīng)用軟件開發(fā)流程_第3頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、需求分析、系統(tǒng)設(shè)計(jì)、代碼編寫、調(diào)試和維護(hù)等工作,軟件工程的很多理論對(duì)它也是適用的。但和其他通用軟件相比,它的開發(fā)有很多獨(dú)特之處:在需求分析時(shí),必需考慮硬件性能的影響,具體功能必需考慮由何種硬件實(shí)現(xiàn)。在系統(tǒng)設(shè)計(jì)階段,重點(diǎn)考慮的是任務(wù)的劃分及其接口,而不是模塊的劃分。模塊劃分則放在了任務(wù)的設(shè)計(jì)階段。在調(diào)試時(shí)承受穿插調(diào)試方式。軟件調(diào)試完畢固化到嵌入式系統(tǒng)中后,它的后期維護(hù)工作較少。下面主要介紹分析和設(shè)計(jì)階段的步驟與原則:1系統(tǒng)全部實(shí)現(xiàn)的功能系統(tǒng)的輸入、輸出系統(tǒng)的外部接口需求如用戶界面它的性能以及諸如文件數(shù)據(jù)庫(kù)安全等其他要求在實(shí)時(shí)系統(tǒng)中,常用狀態(tài)變遷圖來(lái)描述系統(tǒng)。在設(shè)計(jì)狀態(tài)圖時(shí),應(yīng)對(duì)系統(tǒng)運(yùn)行過(guò)程進(jìn)展具

2、體考慮,盡量在狀態(tài)圖中列出全部系統(tǒng)狀態(tài),包括很多用戶無(wú)需知道的內(nèi)部狀態(tài),對(duì)很多特別也應(yīng)有相應(yīng)處理。此外,應(yīng)清楚地說(shuō)明人機(jī)接口,即操作員與系統(tǒng)間地相互作用。對(duì)于比較簡(jiǎn)單地系統(tǒng),形成一本操作手冊(cè)是必要的,為用戶供給使用該系統(tǒng)的操作步驟。為使系統(tǒng)說(shuō)明更清楚,可以將狀態(tài)變遷圖與操作手冊(cè)腳本結(jié)合起來(lái)。在對(duì)需求進(jìn)展分析,了解系統(tǒng)所要實(shí)現(xiàn)的功能的根底上,系統(tǒng)開發(fā)選用何種硬件、軟件平臺(tái)就可以確定了。對(duì)于硬件平臺(tái),要考慮的是微處理器的處理速度、內(nèi)存空間的大小、外部擴(kuò)展設(shè)備是否滿足功能要求等。如微處理器對(duì)外部大事的響應(yīng)速度是否滿足系統(tǒng)的實(shí)時(shí)性要求,它的穩(wěn)定性如何,內(nèi)存空間是否滿足操作系統(tǒng)及應(yīng)用軟件的運(yùn)行要求,對(duì)于

3、要求網(wǎng)絡(luò)功能的系統(tǒng),是否擴(kuò)展有以太網(wǎng)接口等。對(duì)于軟件平臺(tái)而言,操作系統(tǒng)是否支持實(shí)時(shí)性及支持的程度、對(duì)多任務(wù)的治理力量是否支持前面選中的微處理器、網(wǎng)絡(luò)功能是否滿足系統(tǒng)要求以及開發(fā)環(huán)境是否完善等都是必需考慮的。固然,不管選用何種軟硬件平臺(tái),本錢因素都是要考慮的,嵌入式Linux 正是在這方面具有突出的優(yōu)勢(shì)。2在進(jìn)展需求分析和明確系統(tǒng)功能后,就可以對(duì)系統(tǒng)進(jìn)展任務(wù)劃分。任務(wù)是代碼運(yùn)行的一個(gè)映象,是無(wú)限循環(huán)的一段代碼。從系統(tǒng)的角度來(lái)看,任務(wù)是嵌入式系統(tǒng)中競(jìng)爭(zhēng)系統(tǒng)資源的最小運(yùn)行單元,任務(wù)可以使用或等待CPU、I/O 設(shè)備和內(nèi)存空間等系統(tǒng)資源。在設(shè)計(jì)一個(gè)較為簡(jiǎn)單的多任務(wù)應(yīng)用系統(tǒng)時(shí),進(jìn)展合理的任務(wù)劃分對(duì)系統(tǒng)

4、的運(yùn)行效率、實(shí)時(shí)性和吞吐量影響都極大。任務(wù)分解過(guò)細(xì)會(huì)不斷地在各任務(wù) 之間切換,而任務(wù)之間的通信量也會(huì)很大,這樣將會(huì)大大地增加系統(tǒng)的開銷, 影響系統(tǒng)的效率。而任務(wù)分解過(guò)粗、不夠徹底又會(huì)造成原本可以并行的操作 只能按挨次串行執(zhí)行,從而影響系統(tǒng)的吞吐量。為了到達(dá)系統(tǒng)效率和吞吐量 之間的平衡折中,在劃分任務(wù)時(shí)應(yīng)在數(shù)據(jù)流圖的根底上,遵循以下步驟和原 則:進(jìn)展數(shù)據(jù)流分析在系統(tǒng)需求分析的根底上,以數(shù)據(jù)流圖作為分析工具。首先,從系統(tǒng)的功能需求開頭分析系統(tǒng)中的數(shù)據(jù)流,分析數(shù)據(jù)在各狀態(tài)轉(zhuǎn)換之間的作用。然后,擴(kuò)展數(shù)據(jù)流圖,并分解到足夠的深度,識(shí)別出主要的子系統(tǒng)和每個(gè)子系統(tǒng)的主要成分。劃分任務(wù)識(shí)別出系統(tǒng)的全部功能和它

5、們之間的數(shù)據(jù)流后,下一步是要推斷哪些操作是并行,哪些是串行,以劃分任務(wù)。在將一個(gè)軟件系統(tǒng)分解為并行任務(wù)時(shí),主要考慮的是系統(tǒng)內(nèi)功能的異步性。這需要分析數(shù)據(jù)流圖中的各功能變換,確定哪些變換可以并行,而哪些在本質(zhì)上又是挨次的。一般并行的功能變換應(yīng)屬于不同的任務(wù),而串行的可以屬于同一任務(wù)。任務(wù)的劃分包括確定哪些變換屬于哪個(gè)任務(wù),及確定各任務(wù)的優(yōu)先級(jí)。它們的劃分原則如下:I/O 依靠性假設(shè)功能變換依靠I/O,那么它的運(yùn)行速度經(jīng)常受限于它的互操作的I/O 設(shè)備的速度。在這種條件下,功能變換應(yīng)單獨(dú)成為一個(gè)任務(wù)。功能的時(shí)間關(guān)鍵性具有時(shí)間關(guān)鍵性的功能需求以高優(yōu)先級(jí)運(yùn)行,因此不能把它加到其他任務(wù)中運(yùn)行,應(yīng)成為一個(gè)

6、獨(dú)立的高優(yōu)先級(jí)任務(wù)。計(jì)算需求需要進(jìn)展大量計(jì)算但又不具有時(shí)間緊迫性的功能或功能集合,可以作為較低優(yōu)先級(jí)的任務(wù)運(yùn)行,以消耗CPU的剩余時(shí)間。功能內(nèi)聚完成功能嚴(yán)密相關(guān)的變換可以組成一個(gè)任務(wù),由于這些功能間的數(shù)據(jù)通信較多,把它們作為一個(gè)個(gè)獨(dú)立的任務(wù)反而會(huì)增加系統(tǒng)開銷。反之,把每個(gè)變換作為同一任務(wù)中的一個(gè)獨(dú)立模塊,不僅保證了模塊級(jí)的功能內(nèi)聚,而且保證了任務(wù)的功能內(nèi)聚。周期執(zhí)行激活。定義任務(wù)接口在劃分好任務(wù)之后,要確定任務(wù)間的接口。在數(shù)據(jù)流圖中,接口是以數(shù)據(jù)流或數(shù)據(jù)存儲(chǔ)的形式存在,在這里要把它們具體化下來(lái),確定承受何種格式的接口。通常由兩種任務(wù)接口模塊來(lái)處理接口問(wèn)題,即任務(wù)間通信模塊和任務(wù)同步互斥模塊,這

7、些模塊對(duì)調(diào)用它的任務(wù)來(lái)說(shuō)一般是操作系統(tǒng)級(jí)的任務(wù)調(diào)用。 并定義對(duì)該數(shù)據(jù)構(gòu)造的訪問(wèn)過(guò)程,如對(duì)消息隊(duì)列、管道等構(gòu)造的訪問(wèn)。任務(wù) 通信模塊總是運(yùn)行在調(diào)用它的任務(wù)中,因而,它有可能在兩個(gè)任務(wù)中并發(fā)執(zhí) 行,全部在訪問(wèn)過(guò)程中必需供給必要的同步和互斥條件來(lái)確保數(shù)據(jù)的全都性 和正確性。任務(wù)同步互斥模塊是當(dāng)任務(wù)之間不需要傳送真正的信息時(shí)使用的,它用大事來(lái)實(shí)現(xiàn)同步目的。目標(biāo)任務(wù)等待一個(gè)或幾個(gè)大事的發(fā)生,源任務(wù)發(fā)送大事信號(hào)激活目標(biāo)任務(wù)。上述的劃分原則僅能作為一個(gè)初步參考,真正的設(shè)計(jì)還需要具體分析, 才能使系統(tǒng)到達(dá)預(yù)定的效率和吞吐率軟件開發(fā)流程軟件開發(fā)流程軟件開發(fā)流程分為:需求確認(rèn)軟件開發(fā)流程分為:需求確認(rèn)概要設(shè)計(jì)具體

8、設(shè)計(jì)編碼單元測(cè)試集成測(cè)試系統(tǒng)測(cè)試維護(hù)需求確認(rèn):需求規(guī)格說(shuō)明書概要設(shè)計(jì):系統(tǒng)用例圖,用例場(chǎng)景具體設(shè)計(jì):系統(tǒng)設(shè)計(jì)報(bào)告,數(shù)據(jù)庫(kù)設(shè)計(jì)報(bào)告測(cè)試:測(cè)試用例報(bào)告具體設(shè)計(jì)具體設(shè)計(jì)的主要任務(wù)是設(shè)計(jì)每個(gè)模塊的實(shí)現(xiàn)算法、所需的局部數(shù)據(jù)構(gòu)造。具體設(shè)計(jì)的目標(biāo)有兩個(gè):實(shí)現(xiàn)模塊功能的算法要規(guī)律上正確和算法描述要簡(jiǎn)明易懂。傳統(tǒng)軟件開發(fā)方法的具體設(shè)計(jì)主要是用構(gòu)造化程序設(shè)計(jì)法。具體設(shè)計(jì)的表示工具有PADProblem Analysis DiagramNS由 Nassi和 ShneidermenNS圖。語(yǔ)言工具有偽碼和 PDLProgram Design Language等。主要任務(wù)為每個(gè)模塊確定承受的算法,選擇某種適當(dāng)?shù)墓ぞ弑磉_(dá)

9、算法的過(guò)程,寫出模塊的具體過(guò)程性描述;確定每一模塊使用的數(shù)據(jù)構(gòu)造;確定模塊接口的細(xì)節(jié),包括對(duì)系統(tǒng)外部的接口和用戶界面,對(duì)系統(tǒng)內(nèi)部其它模塊的接口,以及模塊輸入數(shù)據(jù)、輸出數(shù)據(jù)及局部數(shù)據(jù)的全部細(xì)節(jié)。在具體設(shè)計(jì)完畢時(shí),應(yīng)當(dāng)把上述結(jié)果寫入具體設(shè)計(jì)說(shuō)明書,并且通過(guò)復(fù)審形成正式文檔。交付給下一階段編碼階段的工作依據(jù)。要為每一個(gè)模塊設(shè)計(jì)出一組測(cè)試用例,以便在編碼階段對(duì)模塊代碼即程序進(jìn)展預(yù)定的測(cè)試,模塊的測(cè)試用例是軟件測(cè)試打算的重要組成局部,通常應(yīng)包括輸入數(shù)據(jù),期望輸出等內(nèi)容。具體設(shè)計(jì)的工具圖形工具利用圖形工具可以把過(guò)程的細(xì)節(jié)用圖形描述出來(lái)。表格工具語(yǔ)言工具用某種高級(jí)語(yǔ)言稱之為偽碼來(lái)描述過(guò)程的細(xì)節(jié)嵌入式開發(fā)學(xué)習(xí)

10、步驟1、Linux 根底LinuxLinuxLinuxLinuxLinuxLinux根本命令Shell viEmacs編輯器2、Shell 編程根底LinuxShell shell編shellshell腳本程shellshell腳本程序3、Linux 下的 C 編程根底AutomakeMakefile Linux系統(tǒng)Hello,Worldmake4、嵌入式系統(tǒng)開發(fā)根底NFSBootloaderLinux應(yīng)用軟件開發(fā)cross_gccU-boot 編LinuxLinux應(yīng)用程序4、嵌入式系統(tǒng)移植ARMLinux內(nèi)核到 ARMLinux2.6ARM9開發(fā)板5Linux 下串口通信LinuxLinu

11、x I/O 編寫串口通信程序 編寫多串口通信程序6、嵌入式系統(tǒng)中多進(jìn)程程序設(shè)計(jì)Linux系統(tǒng)中進(jìn)程的概念sleepLinux任務(wù)概API Linux中的任務(wù)間同步與通信編寫一個(gè)簡(jiǎn)潔的管道程序?qū)崿F(xiàn)文件傳輸 編寫一個(gè)使用共享內(nèi)存的程序7、嵌入式系統(tǒng)中多線程程序設(shè)計(jì)線程程序8Linux 網(wǎng)絡(luò)編程網(wǎng)絡(luò)構(gòu)造 socket APIPingUDPGPRS LinuxLinux環(huán)境下的 GPRS socket socket TCPUDPwebARM平臺(tái)的網(wǎng)絡(luò)播放器9、GUI 程序開發(fā)GUIQT QTGUI QTQT編/QWidget 類方法處理大事10、Linux 字符設(shè)備驅(qū)動(dòng)程序SkullI/O驅(qū)動(dòng) 分析一個(gè)看門狗驅(qū)動(dòng)程序 比照Linux2.6內(nèi)核與2.4內(nèi)核中字符設(shè)備驅(qū)動(dòng)的不同Linux 塊設(shè)備驅(qū)動(dòng)程序塊設(shè)LinuxM

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論