第02章-嵌入式系統(tǒng)開發(fā)過程V2.0_第1頁
第02章-嵌入式系統(tǒng)開發(fā)過程V2.0_第2頁
第02章-嵌入式系統(tǒng)開發(fā)過程V2.0_第3頁
第02章-嵌入式系統(tǒng)開發(fā)過程V2.0_第4頁
第02章-嵌入式系統(tǒng)開發(fā)過程V2.0_第5頁
已閱讀5頁,還剩92頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

2023/12/221嵌入式系統(tǒng)東南大學電氣工程學院時斌——嵌入式系統(tǒng)開發(fā)過程2023/12/222嵌入式系統(tǒng)開發(fā)過程Outline

概述需求分析階段詳細設計階段實現(xiàn)階段測試階段2023/12/223嵌入式系統(tǒng)開發(fā)過程概述產(chǎn)品的生命周期2023/12/224嵌入式系統(tǒng)開發(fā)過程概述嵌入式系統(tǒng)項目開發(fā)生命周期一般分為需求分析、詳細設計、實現(xiàn)和測試4個階段。2023/12/225嵌入式系統(tǒng)開發(fā)過程需求分析階段

分析用戶的需求確定硬件和軟件檢查需求分析的結(jié)果確定項目的約束條件概要設計2023/12/226嵌入式系統(tǒng)開發(fā)過程需求分析階段——分析用戶的需求(1)功能需求:用戶的視角(2)非功能性需求:性能價格系統(tǒng)的尺寸和質(zhì)量功耗

分析用戶對產(chǎn)品的需求2023/12/227嵌入式系統(tǒng)開發(fā)過程需求分析階段——分析用戶的需求精煉用戶需求的方法是建立模型:用已存數(shù)據(jù)模擬功能在個人電腦或工作站上運行,讓用戶了解整個系統(tǒng)確認用戶的需求2023/12/228嵌入式系統(tǒng)開發(fā)過程需求分析階段——分析用戶的需求系統(tǒng)用于什么任務?系統(tǒng)從用戶或其他源接受什么輸入?系統(tǒng)向用戶或其他源輸出什么?用戶想要如何同系統(tǒng)打交道?系統(tǒng)的質(zhì)量和體積如何?系統(tǒng)連接何種外設?系統(tǒng)是否需要運行某些現(xiàn)存的軟件?

羅列用戶的需求2023/12/229嵌入式系統(tǒng)開發(fā)過程需求分析階段——分析用戶的需求

簡單的需求表格

名稱

目的

輸入

輸出

功能

性能

生產(chǎn)成本

功耗

物理尺寸和質(zhì)量2023/12/2210嵌入式系統(tǒng)開發(fā)過程需求分析階段——分析用戶的需求

是否指定了某個功能的輸入輸出是否考慮了系統(tǒng)運行的所有方式是否有一些不切實際的需求系統(tǒng)是否可以實現(xiàn)

需求的內(nèi)部一致性2023/12/2211嵌入式系統(tǒng)開發(fā)過程需求分析階段——確定硬件和軟件處理器:詳細標明處理器的速度和總線吞吐量總線吞吐量:操作系統(tǒng):需要的操作系統(tǒng)類型編程語言:選擇開發(fā)語言,例如C語言、Java、嵌入式C第三方軟件或庫函數(shù):

編譯器的選擇:商用編譯器、免費編譯器第三方硬件:使用第三方提供的開發(fā)板、評估板等縮短開發(fā)時間2023/12/2212嵌入式系統(tǒng)開發(fā)過程需求分析階段——檢查需求分析的結(jié)果原因

嵌入式系統(tǒng)項目中,超過50%的錯誤出現(xiàn)在寫系統(tǒng)要求和技術(shù)指標時。所以,檢查系統(tǒng)需求分析階段建立的資料的完整性和正確性是很重要的。目的

分析階段檢查的目的是確定此階段建立的資料是否全面,調(diào)研工作是否細致,是否清楚地描述系統(tǒng)將做什么。2023/12/2213嵌入式系統(tǒng)開發(fā)過程需求分析階段——檢查需求分析的結(jié)果方法和內(nèi)容

噪聲只字不提超前規(guī)格說明矛盾模棱兩可超前引用一廂情愿2023/12/2214嵌入式系統(tǒng)開發(fā)過程需求分析階段——確定項目的約束條件

是否要滿足項目的階段性或竣工的工期限制?項目的部分或全體是否限制在一個固定的預算內(nèi)?分派到該項目的最大人數(shù)是多少?每個人員每周在此項目上能工作多少小時?員工的技術(shù)知識和經(jīng)驗是否足夠?員工對要解決的問題是否熟悉?員工和關(guān)鍵的人才地處何處?是否必須要采用某種硬件?是否必須要采用某種工具軟件?有哪些重要的審查管理環(huán)節(jié),手續(xù)有哪些?該項目是否要依賴于你的某些固定供應商?2023/12/2215嵌入式系統(tǒng)開發(fā)過程需求分析階段——概要設計系統(tǒng)結(jié)構(gòu)模型建立方式功能層功能需求庫系統(tǒng)結(jié)構(gòu)庫將功能轉(zhuǎn)換為結(jié)構(gòu)驗證性能和應用需求系統(tǒng)結(jié)構(gòu)模型的建立系統(tǒng)結(jié)構(gòu)的實現(xiàn)映射層模型層2023/12/2216嵌入式系統(tǒng)開發(fā)過程需求分析階段——概要設計系統(tǒng)結(jié)構(gòu)模型建立流程系統(tǒng)結(jié)構(gòu)模型功能設計任務寄存器傳輸設計邏輯門級設計物理設計集成系統(tǒng)測試模塊高層語言目標代碼硬件的設計過程軟件的設計過程2023/12/2217嵌入式系統(tǒng)開發(fā)過程詳細設計階段

審查分析資料體系結(jié)構(gòu)設計硬件與軟件的劃分硬件和軟件的設計次序硬件設計

軟件設計檢查設計嵌入式系統(tǒng)設計的自動化設計工具的評估硬件平臺2023/12/2218嵌入式系統(tǒng)開發(fā)過程詳細設計階段——審查分析資料審查分析資料審查約束條件2023/12/2219嵌入式系統(tǒng)開發(fā)過程詳細設計階段——體系結(jié)構(gòu)設計系統(tǒng)是硬實時系統(tǒng)還是軟實時系統(tǒng)操作系統(tǒng)是否需要嵌入物理系統(tǒng)的成本、尺寸和耗電量是否是產(chǎn)品成功的關(guān)鍵因素選擇處理器和相關(guān)硬件2023/12/2220嵌入式系統(tǒng)開發(fā)過程詳細設計階段——硬件與軟件的劃分設計者可以使用純軟件實現(xiàn):如沒有FPU的CPU

純硬件實現(xiàn):如專用調(diào)制解調(diào)芯片兩者的結(jié)合:如顯卡硬件和軟件分工的主要原則是考慮系統(tǒng)的成本。2023/12/2221嵌入式系統(tǒng)開發(fā)過程詳細設計階段——硬件與軟件的設計次序先設計硬件有一個硬件的框圖作為軟件設計時的參考是非常有益的。TivaCLaunchpad硬件平臺設計框圖2023/12/2222嵌入式系統(tǒng)開發(fā)過程詳細設計階段——硬件與軟件的設計次序軟、硬件同時設計如果系統(tǒng)較大或較復雜,特別是硬件較復雜的情況,需要軟、硬件設計同時進行。先設計軟件先設計與硬件無關(guān)的軟件。2023/12/2223嵌入式系統(tǒng)開發(fā)過程詳細設計階段——硬件設計設計硬件子系統(tǒng)硬件子系統(tǒng)的設計一般采用Top-Down的設計方法:先將硬件分成各部件或模塊;畫出一張或多張硬件部件的框圖。一個框圖表示一個單獨的電路板或電路板的一部分、外設等。2023/12/2224嵌入式系統(tǒng)開發(fā)過程詳細設計階段——硬件設計定義硬件接口I/O端口硬件寄存器共享內(nèi)存或內(nèi)存映像I/O的地址硬件中斷存儲器空間分配處理器的運行速度2023/12/2225嵌入式系統(tǒng)開發(fā)過程詳細設計階段——軟件設計設計軟件子系統(tǒng)軟件設計采用采用Top-Down的設計方法,將系統(tǒng)的軟件分解成一些適當定義好的子系統(tǒng)或模塊。大的子系統(tǒng)子系統(tǒng)子系統(tǒng)子系統(tǒng)子系統(tǒng)子系統(tǒng)子系統(tǒng)子系統(tǒng)子系統(tǒng)子系統(tǒng)………………細化再細化…………2023/12/2226嵌入式系統(tǒng)開發(fā)過程詳細設計階段——軟件設計定義軟件接口規(guī)定各個子系統(tǒng)配備的軟件接口:詳細規(guī)定說明API

用函數(shù)原型、數(shù)據(jù)結(jié)構(gòu)聲明、類聲明等建立頭文件軟件系統(tǒng)的總設計師給出模塊之間的依賴關(guān)系2023/12/2227嵌入式系統(tǒng)開發(fā)過程詳細設計階段——軟件設計規(guī)定系統(tǒng)啟動和關(guān)閉過程說明系統(tǒng)啟動和關(guān)閉過程中事件發(fā)生的順序:

啟動:硬件和軟件子系統(tǒng)初始化的細節(jié),及初始化的順序;關(guān)閉:每個子系統(tǒng)必須完成的動作,如保存文件到磁盤上、斷開網(wǎng)絡連接。2023/12/2228嵌入式系統(tǒng)開發(fā)過程詳細設計階段——軟件設計規(guī)定出錯處理方案出錯處理策略應當包括對致命性錯誤的應對處理:

有的系統(tǒng)具有自動復位功能;有的系統(tǒng)需要一個模塊通知系統(tǒng)管理員進行處理;有的系統(tǒng)具有冗余功能

…2023/12/2229嵌入式系統(tǒng)開發(fā)過程詳細設計階段——軟件設計監(jiān)視計時器監(jiān)視計時器(Watchdog)是一個設計者建在某種CPU中的小報警時鐘。打開Watchdog

復位計數(shù)系統(tǒng)復位、重啟軟件出問題,Watchdog超時軟件正常運行2023/12/2230嵌入式系統(tǒng)開發(fā)過程詳細設計階段——檢查設計

需求分析階段:檢查完成資料的指令和完整性設計階段:檢查系統(tǒng)設計的正確性詳細設計階段——嵌入式系統(tǒng)設計的自動化

系統(tǒng)定義:用正式語言描述整個系統(tǒng)系統(tǒng)設計分割軟、硬件合成軟、硬件估計確認2023/12/2231嵌入式系統(tǒng)開發(fā)過程詳細設計階段——嵌入式系統(tǒng)設計工具的評估協(xié)同合成工具目前的協(xié)同合成工具主要有以下幾種:

POLIS:由UC-Berkeley開發(fā)的交互式嵌入式系統(tǒng)的軟件和硬件協(xié)同設計框架,它適合于小型控制系統(tǒng)的設計,系統(tǒng)描述支持基于FSM的語言。

COSYMA:由德國IDA開發(fā)的一種探索硬件與軟件協(xié)同合成進程的平臺。

Chinook:整個系統(tǒng)的描述作為一個輸入提供給Chinook;Chinook是為控制系統(tǒng)而設計的,內(nèi)部模式基于類似等級狀態(tài)的模式;不對代碼進行分割;為整個設計提供單一模擬環(huán)境;支持多種體系結(jié)構(gòu)模板;支持定時限制的描述;能自動合成多種接口;能直接從定時圖表中合成設備驅(qū)動器;可控制處理器之間的通信。2023/12/2232嵌入式系統(tǒng)開發(fā)過程詳細設計階段——嵌入式系統(tǒng)設計工具的評估協(xié)同模擬工具目前的協(xié)同模擬工具主要有以下兩種:

PTOLEMY:混合使用面向?qū)ο髢?nèi)核的計算模型;用于模擬多種不同的系統(tǒng);不合適與系統(tǒng)合成。

TSS:TSS是模擬復雜硬件系統(tǒng)的工具;它的模塊用C語言編寫;單個模塊的提取可由用戶控制;是模塊化的軟件;不支持分級模塊;沒有機制用于同步各處理器存取共享數(shù)據(jù)結(jié)構(gòu);模塊間的通信通過端口和總線。2023/12/2233嵌入式系統(tǒng)開發(fā)過程詳細設計階段——硬件平臺

嵌入式系統(tǒng)的硬件平臺很多,有ARM系列、Motorola公司的PowerPC系列、Coldfire系列、M.core系列等、TivaC系列、DragonBall系列,NEC公司的VR系列,Hitachi公司的SH3、SH4系列等。例子:TM4C123GH6PM嵌入式開發(fā)平臺2023/12/2234嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

選擇開發(fā)平臺軟件開發(fā)過程開發(fā)階段的文檔樣例2023/12/2235嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

選擇開發(fā)平臺開發(fā)平臺由4部分組成:硬件平臺操作系統(tǒng)編程語言開發(fā)工具2023/12/2236嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

選擇開發(fā)平臺選擇處理器開發(fā)工具交叉編譯器連接定位器加載程序調(diào)試器操作系統(tǒng)編程語言測試、調(diào)試工具編程器ROM仿真器指令集模擬器測試儀器內(nèi)部電路仿真器2023/12/2237嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

選擇開發(fā)平臺——選擇處理器選擇處理器的標準:處理器的處理速度:主頻、時鐘頻率、內(nèi)部寄存器的大小、寄存器是否被公平對待、有助于耗時操作的特殊的內(nèi)置硬件等。對選擇的處理器是否熟悉處理器上的I/O功能是否滿足系統(tǒng)的要求處理器的軟件支持工具處理器的調(diào)試支持處理器制造商的支持可信度如何2023/12/2238嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

選擇開發(fā)平臺——選擇硬件部件選擇硬件部分主要根據(jù)預算進行:產(chǎn)品的需求量目標市場的機會如何軟件對硬件的依賴程度2023/12/2239嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

選擇開發(fā)平臺——選擇操作系統(tǒng)

操作系統(tǒng)的功能:需要OS的全部功能還是部分功能;文件系統(tǒng)、人機界面;實時系統(tǒng)還是分時系統(tǒng);操作系統(tǒng)是否可裁減;是否可以不需要OS。配套開發(fā)工具的考慮操作系統(tǒng)的移植難度

OS是否包括特殊的調(diào)試支持

OS的內(nèi)存要求如何選擇操作系統(tǒng)的判別標準如下:2023/12/2240嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

選擇開發(fā)平臺——選擇操作系統(tǒng)

項目程序員是否熟悉此OS,主要指此OS提供的APIOS是否包括所有需要的部件

OS是否有目標硬件的驅(qū)動程序

OS是否有可伸縮性選擇操作系統(tǒng)的判別標準如下:2023/12/2241嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

選擇開發(fā)平臺——選擇操作系統(tǒng)例子:紅旗嵌入式Linux系統(tǒng)2023/12/2242嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

選擇開發(fā)平臺——選擇編程語言

軟件開發(fā)人員最熟悉的語言語言使用的廣泛程度語言的性能如何大部分系統(tǒng)的開發(fā)使用C語言和C++語言,除此之外,還有Java等其他語言的選擇。選擇編程語言的標準如下:2023/12/2243嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

選擇開發(fā)平臺——關(guān)于評估板為了方便嵌入式系統(tǒng)的開發(fā),目前一般采用的開發(fā)方式是先使用評估板進行開發(fā)。當在評估板上開發(fā)、運行、調(diào)試成功后,再根據(jù)評估板使用的硬件,裁減一般應用中不需要的硬件,最后做成產(chǎn)品板大量生產(chǎn)。很多廠商提供這種評估板,例如ARM公司的ARMEvaluator-7T、Ti的TivaC等。2023/12/2244嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

選擇開發(fā)平臺——關(guān)于評估板Tiva?C系列TM4C123GLaunchPad評估板是基于ARM?

Cortex?-M4F微控制器的低成本評價平臺。2023/12/2245嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

選擇開發(fā)平臺——關(guān)于板極支持包

操作系統(tǒng)的提供商通常把操作系統(tǒng)分成兩層,上層與硬件無關(guān),下層與硬件有關(guān)。用戶在把操作系統(tǒng)運行到目標板上時,需要針對自己的目標板的特殊情況,編寫目標板的支持操作系統(tǒng)運行的代碼,以適應操作系統(tǒng)的運行,這一部分代碼通常稱為板極支持包(BoardSupportPackage,BSP)。2023/12/2246嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

軟件開發(fā)過程——嵌入式系統(tǒng)的軟件開發(fā)過程建立交叉開發(fā)環(huán)境交叉編譯和連接重定位和下載聯(lián)機調(diào)試2023/12/2247嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

軟件開發(fā)過程——嵌入式系統(tǒng)的軟件開發(fā)過程(1)建立交叉開發(fā)環(huán)境交叉開發(fā)環(huán)境的原理很簡單,即在主機和目標機器體系結(jié)構(gòu)不同的情況下,在主機上開發(fā)那些將在目標機器上運行的程序。比如在x86上利用ADS/SDT開發(fā)(程序編輯、編譯、定位鏈接)ARM目標板上運行的程序。這里ADS/SDT和桌面計算機就構(gòu)成了交叉開發(fā)環(huán)境。2023/12/2248嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

軟件開發(fā)過程——嵌入式系統(tǒng)的軟件開發(fā)過程(1)建立交叉開發(fā)環(huán)境按照發(fā)布的形式,主要分為開放和商用兩種類型:開放式交叉開發(fā)環(huán)境:例如gcc

商用的交叉開發(fā)環(huán)境:例如MetrowerksCodeWarrior,ARMSoftwareDevelopmentToolkit,SDSCrossCompiler,WindRiverTornado等2023/12/2249嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

軟件開發(fā)過程——嵌入式系統(tǒng)的軟件開發(fā)過程(1)建立交叉開發(fā)環(huán)境按照使用方式,交叉開發(fā)工具主要分為兩種類型:使用Makefile開發(fā)環(huán)境:需要編譯Makefile來管理和控制項目的開發(fā)。例如gcc,SDSCrossCompiler等使用IDE開發(fā)環(huán)境:例如CodeWarrior2023/12/2250嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

軟件開發(fā)過程——嵌入式系統(tǒng)的軟件開發(fā)過程(2)交叉編譯和連接使用建立好的交叉開發(fā)環(huán)境完成編譯和連接工作。(3)重定位和下載編譯連接后形成目標板的image文件,然后通過相應地工具將image文件下載到目標板(bootloader指定image文件下載的位置)。下載結(jié)束后,使用bootloader提供的運行命令,從指定地址開始運行嵌入式系統(tǒng)軟件。2023/12/2251嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

軟件開發(fā)過程——嵌入式系統(tǒng)的軟件開發(fā)過程(4)聯(lián)機調(diào)試就調(diào)試方法而言,調(diào)試方法分為以下兩種:就操作系統(tǒng)調(diào)試的層次而言,分為以下兩種:軟件調(diào)試:使用軟件調(diào)試器調(diào)試嵌入式系統(tǒng)軟件連接定位器:使用仿真調(diào)試器協(xié)助調(diào)試過程調(diào)試嵌入式操作系統(tǒng)內(nèi)核調(diào)試嵌入式操作系統(tǒng)的應用程序2023/12/2252嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

軟件開發(fā)過程——嵌入式系統(tǒng)的軟件開發(fā)過程例子:使用SDT和ADS進行協(xié)議軟件的開發(fā)流程例子:使用SDT和ADS進行協(xié)議軟件的開發(fā)流程2023/12/2253嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

軟件開發(fā)過程——在主機系統(tǒng)上驗證軟件在主機系統(tǒng)上驗證軟件不是必需的,一般用在目標系統(tǒng)的硬件沒有完善的情況下。在主機上驗證完成后,仍需要在目標板上進行驗證和測試。目前一些嵌入式系統(tǒng)的開發(fā)工具提供商提供了在開發(fā)主機上驗證目標系統(tǒng)的手段,例如:ARM公司的軟件仿真環(huán)境驗證軟件的執(zhí)行時間,VxWorks公司的simlink工具可以仿真開發(fā)工具。2023/12/2254嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

軟件開發(fā)過程——在目標系統(tǒng)上驗證軟件該階段,硬件工程師和軟件工程師一起工作,完成對功能和性能要求的完整測試。2023/12/2255嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

清除程序中的無用代碼清除為調(diào)試所引入的代碼避免使用大型的庫例程避免使用遞歸式例程避免浮點操作通過使用非常簡單的訣竅來減少計算要求

軟件開發(fā)過程——代碼優(yōu)化2023/12/2256嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

軟件開發(fā)過程——代碼優(yōu)化

將訪問最頻繁的變量聲明為寄存器變量或自動變量盡量使用無符號數(shù)據(jù)類型將需要消耗大量時間的函數(shù)或例程用匯編語言實現(xiàn)與處理器的開發(fā)工具一起提供的編譯器有一個代碼優(yōu)化器,編譯程序時,將優(yōu)化級設置為所需的等級。2023/12/2257嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

開發(fā)階段的文檔樣例文件名稱內(nèi)容1.技術(shù)文件目錄2.技術(shù)任務書1.任務來源、設計依據(jù)2.產(chǎn)品用途及使用范圍3.主要工作原理及硬軟件分工4.基本參數(shù)、主要功能、技術(shù)指標5.總部局、主要部件概述6.標準化綜合要求7.提出國內(nèi)外同類產(chǎn)品水平比較8.關(guān)鍵技術(shù)預測9.開發(fā)周期估算2023/12/2258嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

開發(fā)階段的文檔樣例文件名稱內(nèi)容3.技術(shù)方案報告4.產(chǎn)品標準(草案)1.產(chǎn)品范圍2.引用標準3.基本參數(shù)及形式4.技術(shù)要求(功能、性能、影響量)5.試驗方法(采用國際標準)6.檢驗規(guī)則5.技術(shù)條件(進廠)1.使用范圍2.技術(shù)要求3.試驗方法2023/12/2259嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

開發(fā)階段的文檔樣例文件名稱內(nèi)容6.可靠性技術(shù)設計報告7.技術(shù)設計說明書硬件1.總體方案2.產(chǎn)品結(jié)構(gòu)3.產(chǎn)品性能4.電路工作原理分析、技巧、結(jié)構(gòu)5.工藝合理性6.主要故障鑒別方法軟件(功能站)1.總體方案及體系結(jié)構(gòu)2.任務調(diào)度原理或總控流程說明3.各種功能的實現(xiàn)方法、處理流程或工作原理2023/12/2260嵌入式系統(tǒng)開發(fā)過程實現(xiàn)階段

開發(fā)階段的文檔樣例文件名稱內(nèi)容7.技術(shù)設計說明書軟件(功能站)4.數(shù)據(jù)庫說明、邏輯結(jié)構(gòu)5.數(shù)據(jù)格式說明6.內(nèi)存分配方案7.各部分接口設計8.通用子程序和標準子程序設計8.形式試驗報告9.試制總結(jié)1.技術(shù)水平2.試制過程中出現(xiàn)的問題的解決措施3.對沒有達到技術(shù)任務書要求的原因進行說明2023/12/2261嵌入式系統(tǒng)開發(fā)過程測試階段

測試的原因何時測試測試內(nèi)容何時停止測試選擇測試實例嵌入式系統(tǒng)的實時失敗模式評估測試的覆蓋率維護和測試2023/12/2262嵌入式系統(tǒng)開發(fā)過程測試階段

測試的原因嵌入式系統(tǒng)的測試包括軟件測試、硬件測試、單元測試等。硬件測試主要完成硬件電路的功能和指標的測試。一般系統(tǒng)的硬件測試包括可靠性測試和電磁兼容性測試。目前國際、國內(nèi)對嵌入式系統(tǒng)產(chǎn)品都有了相關(guān)的強制指標,例如:國外的電磁兼容性測試指標,國內(nèi)新實行的3C認證等。2023/12/2263嵌入式系統(tǒng)開發(fā)過程測試階段

測試的原因本章只討論嵌入式系統(tǒng)的軟件測試方面的內(nèi)容。軟件測試的重要性主要體現(xiàn)在下面幾個方面:在軟件中找到錯誤減少用戶與公司的風險節(jié)約開發(fā)與維護成本提高性能2023/12/2264嵌入式系統(tǒng)開發(fā)過程測試階段

測試的原因“停機定理”:不可能證明任何一個程序是正確的,只要給予足夠的測試,就能證明一個程序是錯誤的。測試并不能證明程序的“正確”,而只能找出錯誤。對于整個系統(tǒng)來說,錯誤的結(jié)果并不一定是應用軟件的程序員造成的,有時問題可能出在系統(tǒng)軟件和開發(fā)工具上。(1)找到錯誤2023/12/2265嵌入式系統(tǒng)開發(fā)過程測試階段

測試的原因測試是為了自己、公司及客戶最小化風險。(2)減少風險對于關(guān)鍵性的系統(tǒng),關(guān)鍵性的軟件模塊尤其需要重視測試工作。(3)開發(fā)關(guān)鍵性任務軟件2023/12/2266嵌入式系統(tǒng)開發(fā)過程測試階段

測試的原因(4)節(jié)約成本2023/12/2267嵌入式系統(tǒng)開發(fā)過程測試階段

測試的原因(5)提高性能測試最優(yōu)系統(tǒng)性能,找到并清除死代碼及無效代碼,能幫助確認軟件已經(jīng)完全挖掘出硬件潛力,并且還能避免非??膳碌挠布匦略O計。2023/12/2268嵌入式系統(tǒng)開發(fā)過程測試階段

何時測試嵌入式系統(tǒng)軟件測試分布在系統(tǒng)開發(fā)的每個階段。程序設計階段進行的模塊或單元測試和調(diào)試,可能不具有完整性,例如:

if(condition) exec1 else exec2exec2有可能在程序設計階段不被執(zhí)行,那么exec2的正確性無法保證。2023/12/2269嵌入式系統(tǒng)開發(fā)過程測試階段

何時測試可以使用下面方法讓exec2強制執(zhí)行:

if(!condition) exec1 else exec22023/12/2270嵌入式系統(tǒng)開發(fā)過程測試階段

何時測試(1)單元測試單元測試指的是在軟件開發(fā)過程中進行的小模塊的測試,測試方法可以采用白盒測試、黑盒測試相結(jié)合的方法。黑盒測試時,測試人員既要用正常值作為輸入,又要用異常值作為輸入來測試模塊的功能和性能。2023/12/2271嵌入式系統(tǒng)開發(fā)過程測試階段

何時測試(2)回歸測試每次修改后都應當重新測試以確認這些修改會不會無意中影響一些看似與之無關(guān)的行為,這被稱為回歸測試。2023/12/2272嵌入式系統(tǒng)開發(fā)過程測試階段

測試內(nèi)容嵌入式軟件與一般應用軟件測試的區(qū)別

嵌入式軟件必須在很長時間內(nèi)穩(wěn)定運行嵌入式軟件一般不會頻繁地由用戶進行升級嵌入式軟件有時使用在關(guān)鍵性的應用產(chǎn)品中

嵌入式軟件必須與嵌入式硬件一起對產(chǎn)品故障負責真實世界事件一般是異步而且不可預測的,這就使模擬測試既困難又不可靠如果軟件出錯,可能會出現(xiàn)法律問題嵌入式軟件與應用軟件的區(qū)別:2023/12/2273嵌入式系統(tǒng)開發(fā)過程測試階段

測試內(nèi)容嵌入式軟件與一般應用軟件測試的區(qū)別

由于實時性與同時性很難同時滿足,所以大多數(shù)測試集中與實時行為由于大多數(shù)實時系統(tǒng)有資源約束,需要進行更多的性能與可用性測試可以使用一些實時跟蹤工具以測量測試對代碼的覆蓋率如何對可靠性的測試級別要比應用軟件中高得多嵌入式系統(tǒng)測試與應用軟件測試的區(qū)別:2023/12/2274嵌入式系統(tǒng)開發(fā)過程測試階段

測試內(nèi)容嵌入式軟件的測試內(nèi)容(1)測試序列的來源有兩種:需要用戶進行設計標準的測試序列軟件測試時一般需要測試實例或測試序列。2023/12/2275嵌入式系統(tǒng)開發(fā)過程測試階段

測試內(nèi)容嵌入式軟件的測試內(nèi)容(2)測試實例:功能測試、覆蓋測試功能測試和覆蓋測試的方法:找出哪個函數(shù)沒有被功能測試完全覆蓋找出各函數(shù)的哪一段沒有被執(zhí)行找出需要哪一個附加覆蓋測試運行附加測試重復以上步驟2023/12/2276嵌入式系統(tǒng)開發(fā)過程測試階段

何時停止測試

當老板發(fā)話時當新一輪測試周期找到比某預計值更少的新錯誤時在沒有發(fā)現(xiàn)新錯誤的情況下,已經(jīng)達到某個確定的覆蓋率限度時最常見的停止標準如下:2023/12/2277嵌入式系統(tǒng)開發(fā)過程測試階段

選擇測試實例功能測試功能測試稱作黑盒測試,其測試實例在設計時不引用程序的實際代碼,即不用暴露盒子的內(nèi)部。理想情況下,需要測試程序中的每一種可能行為,但不切實際。為了接近理想狀態(tài),基本方法是選擇最有可能揭露出錯誤的測試。2023/12/2278嵌入式系統(tǒng)開發(fā)過程測試階段

選擇測試實例功能測試黑盒測試一般包括如下幾點:

極限情況測試:測試中有意使輸入信道、內(nèi)存緩沖區(qū)、磁盤控制器、內(nèi)存管理器等部件超載。邊界測試:輸入表示特定輸入范圍邊界的值以及使輸出產(chǎn)生輸出范圍邊界的值異常測試:測試應當觸發(fā)失敗模式或異常模式2023/12/2279嵌入式系統(tǒng)開發(fā)過程測試階段

選擇測試實例功能測試黑盒測試一般包括如下幾點:

錯誤測試:測試基于以前進行軟件測試及測試類似程序的工作經(jīng)驗隨機測試性能測試2023/12/2280嵌入式系統(tǒng)開發(fā)過程測試階段

選擇測試實例覆蓋測試覆蓋測試盡可能使每條代碼語句、判定點或判定路徑都最少被執(zhí)行一次,從而避免功能測試的弱點。覆蓋測試也稱為白盒測試或玻璃盒測試,需要軟件實現(xiàn)的全部知識來進行設計,測試時需要看到程序?qū)崿F(xiàn)、執(zhí)行的細節(jié)。2023/12/2281嵌入式系統(tǒng)開發(fā)過程測試階段

選擇測試實例覆蓋測試典型的白盒測試包括以下幾點:語句測試:選擇的測試實例至少執(zhí)行一次程序中的每條語句判定或分支覆蓋:選擇的測試實例使每個分支至少運行一次條件覆蓋:選擇的測試實例使每個用于判定的條件具有所有可能的邏輯值2023/12/2282嵌入式系統(tǒng)開發(fā)過程測試階段

選擇測試實例灰盒測試把黑盒測試和白盒測試結(jié)合起來,達到既簡化測試,又盡量遍歷關(guān)鍵代碼的目的,這種測試稱為灰盒測試?;液袦y試僅知道部分程序內(nèi)部細節(jié),測試只覆蓋代碼中的特定部分。這種策略在需要將新功能集成到較穩(wěn)定的老代碼庫中時非常有用。由于老代碼已通過測試,所以測試工作會集中到新老代碼共存的區(qū)域。2023/12/2283嵌入式系統(tǒng)開發(fā)過程測試階段

嵌入式系統(tǒng)的實時失敗模式對于嵌入式系統(tǒng)的實時失敗模式,可以采用下列方法測試:利用關(guān)鍵序列進行測試實時系統(tǒng)中,事件的確定組合(稱為關(guān)鍵序列)會使從事件觸發(fā)到事件響應產(chǎn)生嚴重的延遲。嵌入式測試活動應當有能力產(chǎn)生關(guān)鍵序列并測試相關(guān)的響應時間。關(guān)于時間確定性大多數(shù)嵌入式系統(tǒng)屬于實時系統(tǒng),具有時間確定性指標,通常用deadline來衡量。嵌入式系統(tǒng)由于未能達到重要的計時deadline而運行失敗,這一情形稱為硬實時或時間關(guān)鍵失敗。2023/12/2284嵌入式系統(tǒng)開發(fā)過程測試階段

嵌入式系統(tǒng)的實時失敗模式對于嵌入式系統(tǒng)的實時失敗模式,可以采用下列方法測試:長期運行造成的系統(tǒng)出錯多任務機制可能造成一些系統(tǒng)出錯,如存儲器耗盡、優(yōu)先級反轉(zhuǎn)、內(nèi)存碎片造成的效率低下等,這種錯誤和失敗是在強迫系統(tǒng)超長時間全速或接近全速運行時才會發(fā)生。關(guān)于模擬測試平臺對嵌入式系統(tǒng)的實時行為的徹底測試一般要求把嵌入式系統(tǒng)安裝到實際的運行平臺上,有時實現(xiàn)起來比較困難,因而可以設計一個盡量接近實際的模擬平臺環(huán)境。2023/12/2285嵌入式系統(tǒng)開發(fā)過程測試階段

評估測試的覆蓋率測試過的代碼的數(shù)量表示測試的覆蓋率。軟件插裝軟件插裝,指的是在實際的軟件代碼中插入測試代碼,這些代碼在軟件的發(fā)行版中刪除。2023/12/2286嵌入式系統(tǒng)開發(fā)過程測試階段

評估測試的覆蓋率軟件插裝通常軟件插裝有以下幾種方法:(1)Printf()方法在每個代表連續(xù)執(zhí)行指令的基本模塊的開始處插入跟蹤調(diào)用(如printf()函數(shù))進行評估。在基本模塊入口處插入跟蹤調(diào)用2023/12/2287嵌入式系統(tǒng)開發(fā)過程測試階段

評估測試的覆蓋率軟件插裝(2)直接寫內(nèi)存方法如果嵌入式系統(tǒng)沒有標準的輸出設備,無法使用printf()函數(shù)進行跟蹤,則可采用寫內(nèi)存的方法。如果應用軟件代碼在RTOS中進行,跟蹤代碼就可以在每個基本模塊的入口處調(diào)用RTOS,而RTOS可在目標系統(tǒng)內(nèi)存緩沖區(qū)中記錄這個調(diào)用,或者把它報告給主機。2023/12/2288嵌入式系統(tǒng)開發(fā)過程測試階段

評估測試的覆蓋率軟件插裝(3)低干擾printf()標準庫中的printf()效率低,會干擾整個嵌入式軟件的性能。低干擾printf()使用一種簡單的內(nèi)存寫操作,在每個基本塊的入口處,日志函數(shù)在另外的數(shù)據(jù)存儲區(qū)中為此做一個標記;測試結(jié)束后,外部軟件再把這些標記關(guān)聯(lián)到對應的代碼段上。低干擾printf()的另一種方法是與邏輯分析儀配合使用,其對單個內(nèi)存單元寫入數(shù)據(jù),并且邏輯分析儀能捕捉到這些數(shù)據(jù)。2023/12/2289嵌入式系統(tǒng)開發(fā)過程測試階段

評估測試的覆蓋率測試語句的執(zhí)行判定覆蓋使語句覆蓋更進一步。除了捕捉進入基本塊的入口外,判定覆蓋還測試代碼中判定點的結(jié)果。C或C++語言中,這些判定點是if、for、while和do/while語句塊。判定覆蓋超過語句覆蓋的優(yōu)點在于其能捕捉更多的邏輯錯誤。2023/12/2290嵌入式系統(tǒng)開發(fā)過程測試階段

評估測試的覆蓋率測試語句的執(zhí)行if(conditionistrue){ <thendothesestatement>}<codefollowingelselessif>上述語句中無法知道false條件是否發(fā)生過。判定覆蓋能跟蹤條件為

溫馨提示

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

評論

0/150

提交評論