四、嵌入式軟件開發(fā)
1、嵌入式平臺選型
嵌入式設(shè)計(jì)分三個階段:分析、設(shè)計(jì)和實(shí)現(xiàn)。
分析階段:是確定要解決的問題及需要完成的目標(biāo),也稱需求階段;
設(shè)計(jì)階段:主要是解決如何在給定的約束條件下完成用戶的需求;
實(shí)現(xiàn)階段:主要是解決如何在所選擇的硬件和軟件的基礎(chǔ)上進(jìn)行整個軟硬件系統(tǒng)的協(xié)調(diào)和實(shí)現(xiàn)。
硬件的選擇包括:處理器、硬件部件
軟件的選擇包括:操作系統(tǒng)、編程語言、軟件開發(fā)工具、硬件調(diào)試工具和軟件組件。
2、軟件設(shè)計(jì)
⑴、軟件設(shè)計(jì)任務(wù):準(zhǔn)備一個工作計(jì)劃;確定軟件的結(jié)構(gòu);設(shè)計(jì)評審;維護(hù)工作計(jì)劃;與硬件部門密切合作、相互協(xié)調(diào);控制工作的結(jié)果、把工作記錄存檔。
⑵、模塊結(jié)構(gòu)設(shè)計(jì)
模塊結(jié)構(gòu)設(shè)計(jì)的任務(wù):將系統(tǒng)劃分為模塊,確定軟件的結(jié)構(gòu),模塊的功能和模塊間的接口,以及全局?jǐn)?shù)據(jù)結(jié)構(gòu)設(shè)。
模塊:是組成系統(tǒng)的基本單位,它的特點(diǎn)是可以組合、分解和更換。
模塊的四要素:輸入和輸出;處理功能;內(nèi)部數(shù)據(jù);程序代碼。
模塊結(jié)構(gòu)設(shè)計(jì)應(yīng)遵守的原則:所劃分的模塊其內(nèi)部凝聚性要強(qiáng),模塊之間的聯(lián)系要少,即要有很強(qiáng)的獨(dú)立性;模塊之間的連接只能存在上下級之間的調(diào)用關(guān)系,不能有同級之間的橫向關(guān)系;整個結(jié)構(gòu)呈樹狀結(jié)構(gòu),不允許網(wǎng)狀結(jié)構(gòu)或交叉調(diào)用關(guān)系;所有模塊必須嚴(yán)格地分類編碼并建立歸檔文件。
、恰⒔Y(jié)構(gòu)化設(shè)計(jì)的方法
結(jié)構(gòu)化設(shè)計(jì)的方法是一種面向數(shù)據(jù)流的設(shè)計(jì)方法,基本思想是將系統(tǒng)設(shè)計(jì)成由相對獨(dú)立、功能單一的模塊組成的結(jié)構(gòu)。
信息流的類型:變換流和事務(wù)流。
結(jié)構(gòu)化設(shè)計(jì)方法的步驟:復(fù)查并精化數(shù)據(jù)流圖;確定DFD的信息流類型(變換型或事務(wù)型);根據(jù)流類型分別實(shí)施變換分析或事務(wù)分析;根據(jù)系統(tǒng)設(shè)計(jì)的原則,對程序結(jié)構(gòu)圖進(jìn)行優(yōu)化。
3、嵌入式程序設(shè)計(jì)
⑴、bootloader的設(shè)計(jì)
步驟;stage1和stage2兩大部
Stage1步驟:硬件設(shè)備初始化;為加載bootloader的stage1準(zhǔn)備內(nèi)存空間;復(fù)制bootloader的stage1到內(nèi)存;設(shè)置好堆棧;跳轉(zhuǎn)到stage1的C入口點(diǎn)。
Stage2步驟:初始化本階段要使用的硬件設(shè)備;檢測系統(tǒng)內(nèi)存映射;將內(nèi)核映像和根文件系統(tǒng)映像到flash上讀入到內(nèi)存中;為內(nèi)核設(shè)置啟動參數(shù),并調(diào)用內(nèi)核。
、、設(shè)備驅(qū)動程序設(shè)計(jì)
⑶、網(wǎng)絡(luò)應(yīng)用程序設(shè)計(jì)
4、編碼
四個步驟:確定源程序的標(biāo)準(zhǔn)格式、制定編程規(guī)范;準(zhǔn)備編程環(huán)境;編寫代碼;進(jìn)行代碼審查,提高編碼質(zhì)量。
5、測試
、拧⒏攀
軟件測試:是從經(jīng)濟(jì)和效率的角度出發(fā),對軟件代碼進(jìn)行質(zhì)量和正確性保證的一個過程。
系統(tǒng)測試的目的:是為了發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤。
規(guī)范化的測試過程:擬定測試計(jì)劃;編制測試大綱;根據(jù)測試大綱設(shè)計(jì)和生產(chǎn)測試用例;實(shí)施測試;生成測試報(bào)告。
⑵、測試方法
分類:人工測試和機(jī)器測試
人工測試的三種方法:個人復(fù)查、抽查、會審
機(jī)器測試分成:黑盒測試和白盒測試
黑盒測試:也稱功能測試,將軟件看成黑盒子,在完成不考慮軟件內(nèi)部結(jié)構(gòu)和特性的情況下,測試軟件的外部特性。包括:極限情況測試;邊界測試;異常測試;隨機(jī)測試;性能測試。
白盒測試:也稱結(jié)構(gòu)測試,將軟件看成透明的的盒,根據(jù)程序的內(nèi)部結(jié)構(gòu)和邏輯來設(shè)計(jì)測試用例。原則:程序模塊中的所有獨(dú)立路徑至少執(zhí)行一次;在所有的邏輯判斷中,取“真”“假”的兩種情況至少都要執(zhí)行一次;每個循環(huán)都應(yīng)在邊界條件和一般條件下各執(zhí)行一次;測試程序內(nèi)部的數(shù)據(jù)結(jié)構(gòu)的有效性。
、、測試步驟:
①、系統(tǒng)平臺測試:包括硬件電路測試、操作系統(tǒng)及底層驅(qū)動程序測試;
、、單元測試:也稱模塊測試。一般采用白盒測試法。主要測試模擬塊接口、局部數(shù)據(jù)結(jié)構(gòu)、重要的執(zhí)行路徑、出錯處理、邊界條件。
測試時需要開的模塊包括:驅(qū)動模塊(相當(dāng)于一個程序,負(fù)責(zé)接收測試用例的數(shù)據(jù),將這些數(shù)據(jù)送到測試模塊,并輸出結(jié)果)和樁模塊(也稱為存根模塊,用來代替測試模塊中所調(diào)用的子模塊,其內(nèi)可進(jìn)行少量的數(shù)據(jù)處理,目的是為了檢驗(yàn)入口,并輸出調(diào)用和返回的信息)
、邸⒓蓽y試:也稱組裝測,就是把各個模塊按照系統(tǒng)設(shè)計(jì)說明書的要求組合起來進(jìn)行測試。
兩種方法:一種是分別測試各個模塊,再把這些模塊組合起來進(jìn)行整體測試,即非增量式集成;另一種是把下一個要測試的模塊組合到已測試好的模塊中,測試完成再將下一個模塊組合進(jìn)來,進(jìn)行測試,這樣逐步把所有的模塊組合在一起,并完成測試,即增量式集成。
、、系統(tǒng)測試:將嵌入式軟件、硬件,外設(shè)和網(wǎng)絡(luò)等各種因素結(jié)全在一起,進(jìn)行整個系統(tǒng)的組裝測試和確認(rèn)測試。一般采用黑盒測試法。
主要測試內(nèi)容:恢復(fù)測試、強(qiáng)度測試、性能測試、可靠性測試。
⑤、測試結(jié)果分析
對測試結(jié)果分析和比較幫助錯誤的定位,指導(dǎo)程序員修改代碼。
⑷、覆蓋測試:是一種白盒測試法,測試人員必須擁有程序的規(guī)格說明書和程序清單。其基本思路是以程序的內(nèi)部結(jié)構(gòu)為基礎(chǔ)來設(shè)計(jì)測試用例,以覆蓋盡可能多的程序內(nèi)部邏輯結(jié)構(gòu),發(fā)現(xiàn)其中的錯誤和問題,一般用在單元測試階段。
主要策略:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋。
5、下載運(yùn)行
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |