第10章 嵌入式系統(tǒng)軟件開發(fā)_第1頁
第10章 嵌入式系統(tǒng)軟件開發(fā)_第2頁
第10章 嵌入式系統(tǒng)軟件開發(fā)_第3頁
第10章 嵌入式系統(tǒng)軟件開發(fā)_第4頁
第10章 嵌入式系統(tǒng)軟件開發(fā)_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第十章第十章嵌入式系統(tǒng)軟件的開發(fā)嵌入式系統(tǒng)軟件的開發(fā)第一節(jié)第一節(jié)嵌入式系統(tǒng)開發(fā)模式嵌入式系統(tǒng)開發(fā)模式概述概述處理器及硬件開發(fā)平臺的選定處理器及硬件開發(fā)平臺的選定操作系統(tǒng)選定操作系統(tǒng)選定開發(fā)環(huán)境選定開發(fā)環(huán)境選定10.1.1 嵌入式系統(tǒng)開發(fā)模式概述嵌入式系統(tǒng)開發(fā)模式概述 最大特點(diǎn):最大特點(diǎn):軟硬件綜合開發(fā)軟硬件綜合開發(fā)原因:原因: 嵌入式產(chǎn)品是軟硬件的結(jié)合體;嵌入式產(chǎn)品是軟硬件的結(jié)合體; 軟件針對硬件開發(fā)、固化,不能軟件針對硬件開發(fā)、固化,不能進(jìn)行任意修改。進(jìn)行任意修改。嵌嵌入入式式系系統(tǒng)統(tǒng)開開發(fā)發(fā)過過程程 系統(tǒng)定義系統(tǒng)定義符合要求符合要求硬件設(shè)計制作硬件設(shè)計制作軟件設(shè)計實(shí)現(xiàn)軟件設(shè)計實(shí)現(xiàn)軟硬件集成

2、軟硬件集成功能性能測試功能性能測試產(chǎn)品產(chǎn)品YesYes系統(tǒng)總體設(shè)計系統(tǒng)總體設(shè)計NoNo系統(tǒng)總體設(shè)計軟硬件劃分系統(tǒng)總體框架處理器選定操作系統(tǒng)選定開發(fā)環(huán)境選定硬件設(shè)計制作硬件設(shè)計制作硬件概要設(shè)計硬件概要設(shè)計硬件詳細(xì)設(shè)計硬件詳細(xì)設(shè)計硬件制作硬件制作硬件測試硬件測試功能模塊圖設(shè)計功能模塊圖設(shè)計邏輯電路圖設(shè)計邏輯電路圖設(shè)計PCBPCB設(shè)計與制作設(shè)計與制作PCBPCB 測試測試軟件設(shè)計實(shí)現(xiàn)軟件設(shè)計實(shí)現(xiàn)軟件概要設(shè)計軟件詳細(xì)設(shè)計軟件實(shí)現(xiàn)軟件測試圖中各個術(shù)語介紹:圖中各個術(shù)語介紹:l系統(tǒng)定義系統(tǒng)定義 此階段與通用軟件工程中的含義一致。是系統(tǒng)生命周期此階段與通用軟件工程中的含義一致。是系統(tǒng)生命周期最簡短的階段。最

3、簡短的階段。l可行性研究可行性研究 用于確定是不是存在有效方法來解決系統(tǒng)定義中的關(guān)鍵用于確定是不是存在有效方法來解決系統(tǒng)定義中的關(guān)鍵問題。來決定該系統(tǒng)有沒有開發(fā)的必要。問題。來決定該系統(tǒng)有沒有開發(fā)的必要。l需求分析需求分析 確定功能需求、性能需求、環(huán)境需求。確定功能需求、性能需求、環(huán)境需求。 分析結(jié)果要提交分析結(jié)果要提交系統(tǒng)的功能模塊圖。系統(tǒng)的功能模塊圖。系統(tǒng)總體設(shè)計系統(tǒng)總體設(shè)計 確定嵌入式總體構(gòu)架,從功能上對軟硬件進(jìn)行劃分。選確定嵌入式總體構(gòu)架,從功能上對軟硬件進(jìn)行劃分。選擇嵌入式微處理器、是否使用嵌入式擇嵌入式微處理器、是否使用嵌入式OSOS,及,及OSOS種類等。這個種類等。這個步驟是最

4、重要環(huán)節(jié)。步驟是最重要環(huán)節(jié)。硬件設(shè)計實(shí)現(xiàn)硬件設(shè)計實(shí)現(xiàn)l 硬件概要設(shè)計硬件概要設(shè)計 根據(jù)系統(tǒng)總體設(shè)計,對硬件進(jìn)行進(jìn)一步描述。詳細(xì)確定根據(jù)系統(tǒng)總體設(shè)計,對硬件進(jìn)行進(jìn)一步描述。詳細(xì)確定各個功能模塊的詳細(xì)特性、內(nèi)存大小、模塊關(guān)聯(lián)、總線等。各個功能模塊的詳細(xì)特性、內(nèi)存大小、模塊關(guān)聯(lián)、總線等。要提供一份詳細(xì)的硬件功能框圖,每個模塊的輸入輸出等。要提供一份詳細(xì)的硬件功能框圖,每個模塊的輸入輸出等。l 硬件詳細(xì)設(shè)計硬件詳細(xì)設(shè)計 給出實(shí)現(xiàn)硬件功能的具體器件。設(shè)計其周邊電路,設(shè)計給出實(shí)現(xiàn)硬件功能的具體器件。設(shè)計其周邊電路,設(shè)計出電路的原理圖。生成出電路的原理圖。生成PCBPCB圖(圖(printed circui

5、t Boardprinted circuit Board。l 硬件制作硬件制作 根據(jù)根據(jù)PCBPCB加工出印刷電路板,焊接、裝配后調(diào)試,直到證加工出印刷電路板,焊接、裝配后調(diào)試,直到證明各個模塊連接無錯誤為止。明各個模塊連接無錯誤為止。l 硬件測試硬件測試 對制成的整體硬件進(jìn)行功能、性能測試,修改。直到完對制成的整體硬件進(jìn)行功能、性能測試,修改。直到完全達(dá)到設(shè)計要求為止。全達(dá)到設(shè)計要求為止。l 軟硬件集成軟硬件集成 將測試完的軟件系統(tǒng)裝入硬件系統(tǒng)中。進(jìn)行系將測試完的軟件系統(tǒng)裝入硬件系統(tǒng)中。進(jìn)行系統(tǒng)綜合測試。驗(yàn)證系統(tǒng)功能,必須正確無誤地實(shí)統(tǒng)綜合測試。驗(yàn)證系統(tǒng)功能,必須正確無誤地實(shí)現(xiàn)系統(tǒng)功能。然后

6、才能將軟件固化在硬件系統(tǒng)中現(xiàn)系統(tǒng)功能。然后才能將軟件固化在硬件系統(tǒng)中(EPROMEPROM)。復(fù)雜、費(fèi)時間。)。復(fù)雜、費(fèi)時間。l 功能性能測試功能性能測試 將系統(tǒng)在實(shí)踐中進(jìn)行檢驗(yàn)。如不能滿足要求,將系統(tǒng)在實(shí)踐中進(jìn)行檢驗(yàn)。如不能滿足要求,還要修改。最糟糕情況下還要回到系統(tǒng)總體設(shè)計還要修改。最糟糕情況下還要回到系統(tǒng)總體設(shè)計階段,進(jìn)行重新設(shè)計和實(shí)現(xiàn)。階段,進(jìn)行重新設(shè)計和實(shí)現(xiàn)。軟硬件協(xié)同開發(fā)軟硬件協(xié)同開發(fā) 通常的嵌入通常的嵌入式系統(tǒng)開發(fā)式系統(tǒng)開發(fā) 軟軟/ /硬件協(xié)硬件協(xié)同開發(fā)同開發(fā)嵌入式嵌入式軟件開發(fā)軟件開發(fā)嵌入式嵌入式硬件開發(fā)硬件開發(fā)嵌入式系統(tǒng)嵌入式系統(tǒng)集成、測試、集成、測試、驗(yàn)證驗(yàn)證嵌入式軟件開發(fā)

7、嵌入式軟件開發(fā)嵌入式硬件開發(fā)嵌入式硬件開發(fā)嵌入式系統(tǒng)嵌入式系統(tǒng)協(xié)同設(shè)計、測試、驗(yàn)證協(xié)同設(shè)計、測試、驗(yàn)證10.1.2 處理器及硬件開發(fā)平臺的選定處理器及硬件開發(fā)平臺的選定選擇依據(jù):選擇依據(jù): 應(yīng)用的類型及應(yīng)用的類型及I/OI/O接口接口 主頻及功耗主頻及功耗 對不同類型存儲器的支持對不同類型存儲器的支持 封裝封裝 產(chǎn)品生命力和廠家實(shí)力、技術(shù)支持及第三產(chǎn)品生命力和廠家實(shí)力、技術(shù)支持及第三方軟件的支持方軟件的支持 硬件開發(fā)平臺的選擇硬件開發(fā)平臺的選擇10.1.3 操作系統(tǒng)選定操作系統(tǒng)選定選擇依據(jù):選擇依據(jù): 選擇嵌入式選擇嵌入式OSOS的必要性的必要性 自建、購買或使用開源軟件自建、購買或使用開源軟

8、件 對嵌入式操作系統(tǒng)的功能、性能要求對嵌入式操作系統(tǒng)的功能、性能要求 與硬件平臺和開發(fā)工具的關(guān)系與硬件平臺和開發(fā)工具的關(guān)系 行業(yè)標(biāo)準(zhǔn)行業(yè)標(biāo)準(zhǔn) 技術(shù)支持技術(shù)支持 版稅或服務(wù)費(fèi)版稅或服務(wù)費(fèi)操作系統(tǒng)與硬件平臺的關(guān)系操作系統(tǒng)與硬件平臺的關(guān)系 操作系統(tǒng)應(yīng)支持選定的硬件平臺操作系統(tǒng)應(yīng)支持選定的硬件平臺 如果不支持,需考慮移植工作如果不支持,需考慮移植工作 不同類型嵌入式微處理器之間的移植:任務(wù)上下文切換、時鐘、中斷等 同類型微處理器但不同類型硬件板之間的移植:硬件接口及設(shè)備驅(qū)動程序 工具是否能為基于特定操作系統(tǒng)的應(yīng)用開工具是否能為基于特定操作系統(tǒng)的應(yīng)用開發(fā)提供最大支持:發(fā)提供最大支持: 運(yùn)行庫與OS相結(jié)合

9、 提供應(yīng)用工程創(chuàng)建和管理功能,構(gòu)建基于特定操作系統(tǒng)的應(yīng)用框架 對操作系統(tǒng)的剪裁與配置 提供高級調(diào)試功能 提供配套的應(yīng)用邏輯分析工具、覆蓋測試工具等10.1.4 開發(fā)環(huán)境選定開發(fā)環(huán)境選定 對硬件平臺的支持對硬件平臺的支持 嵌入式軟件開發(fā)特點(diǎn)是交叉開發(fā)。交叉鏈接。和交叉嵌入式軟件開發(fā)特點(diǎn)是交叉開發(fā)。交叉鏈接。和交叉調(diào)試,開發(fā)工具要能支持選定的硬件平臺,生成相應(yīng)微處調(diào)試,開發(fā)工具要能支持選定的硬件平臺,生成相應(yīng)微處理器的目標(biāo)程序。理器的目標(biāo)程序。 編程語言編程語言C/C+,匯編語言,JAVA, 與嵌入式操作系統(tǒng)的關(guān)系與嵌入式操作系統(tǒng)的關(guān)系 根據(jù)自己系統(tǒng)情況適當(dāng)選擇根據(jù)自己系統(tǒng)情況適當(dāng)選擇OSOS,購

10、買還是自編,或采用開源軟,購買還是自編,或采用開源軟件。(公開源代碼的軟件)。購買是需要付費(fèi)的,自編件。(公開源代碼的軟件)。購買是需要付費(fèi)的,自編OSOS代價高、時代價高、時間長,但能獲得更好的性能。開源軟件需要自己改動,要經(jīng)過精密仔間長,但能獲得更好的性能。開源軟件需要自己改動,要經(jīng)過精密仔細(xì)的調(diào)試和驗(yàn)證無錯(折中方案)細(xì)的調(diào)試和驗(yàn)證無錯(折中方案) 。第二節(jié)第二節(jié)實(shí)時軟件分析設(shè)計方法實(shí)時軟件分析設(shè)計方法10.2 實(shí)時軟件分析設(shè)計方法實(shí)時軟件分析設(shè)計方法10.2.1 10.2.1 實(shí)時軟件的分析設(shè)計要求實(shí)時軟件的分析設(shè)計要求 一個實(shí)時系統(tǒng)是硬件、軟件和數(shù)據(jù)元一個實(shí)時系統(tǒng)是硬件、軟件和數(shù)據(jù)元

11、素的集成。系統(tǒng)設(shè)計人員必須對系統(tǒng)元素素的集成。系統(tǒng)設(shè)計人員必須對系統(tǒng)元素需求恰當(dāng)?shù)胤峙涔δ芎托阅堋?shí)時性與功需求恰當(dāng)?shù)胤峙涔δ芎托阅?。?shí)時性與功能一樣重要。能一樣重要。 實(shí)時軟件的三個特征:實(shí)時軟件的三個特征: 1.1.實(shí)時系統(tǒng)是受資源約束的。時間是系統(tǒng)的實(shí)時系統(tǒng)是受資源約束的。時間是系統(tǒng)的首要資源。要在限定的時間內(nèi)完成一個定首要資源。要在限定的時間內(nèi)完成一個定義的任務(wù)。義的任務(wù)。2.2.實(shí)時系統(tǒng)是緊湊和復(fù)雜的。實(shí)時系統(tǒng)代碼量大,但是有關(guān)實(shí)時系統(tǒng)是緊湊和復(fù)雜的。實(shí)時系統(tǒng)代碼量大,但是有關(guān)時間的標(biāo)準(zhǔn)代碼只占很小部分。而這小部分代碼是最為復(fù)雜時間的標(biāo)準(zhǔn)代碼只占很小部分。而這小部分代碼是最為復(fù)雜的,

12、有復(fù)雜的算法。的,有復(fù)雜的算法。3.3.在運(yùn)行中是不需要用戶參與的。實(shí)時軟件必須能自檢測到在運(yùn)行中是不需要用戶參與的。實(shí)時軟件必須能自檢測到導(dǎo)致故障的問題,在其對數(shù)據(jù)和控制環(huán)境造成破壞之前進(jìn)行導(dǎo)致故障的問題,在其對數(shù)據(jù)和控制環(huán)境造成破壞之前進(jìn)行處理和改正。處理和改正。 滿足系統(tǒng)響應(yīng)時間是實(shí)時系統(tǒng)設(shè)計的一項重要任務(wù)。滿足系統(tǒng)響應(yīng)時間是實(shí)時系統(tǒng)設(shè)計的一項重要任務(wù)。例:一個移動作戰(zhàn)系統(tǒng)例:一個移動作戰(zhàn)系統(tǒng)對敵目標(biāo)的探測、攻擊和接收上級命令的功能。對敵目標(biāo)的探測、攻擊和接收上級命令的功能。其中自身定位系統(tǒng)如下圖。用來確定系統(tǒng)在地球上的位置。其中自身定位系統(tǒng)如下圖。用來確定系統(tǒng)在地球上的位置。(確定物體

13、東西位置的為經(jīng)度,確定位置南北的為緯度)(確定物體東西位置的為經(jīng)度,確定位置南北的為緯度)采樣時間和任務(wù)計算時間:陀螺儀及三軸陀螺儀陀螺儀及三軸陀螺儀 陀螺儀是一個裝在能自由轉(zhuǎn)向的小框架上的小飛輪。當(dāng)飛輪繞自身陀螺儀是一個裝在能自由轉(zhuǎn)向的小框架上的小飛輪。當(dāng)飛輪繞自身對稱軸高速轉(zhuǎn)動時,無論如何改變框架的方位,其中心軸的空間取向始對稱軸高速轉(zhuǎn)動時,無論如何改變框架的方位,其中心軸的空間取向始終保持不變,角動量守恒定律。如飛機(jī)上裝上三個定向指示儀,并使三終保持不變,角動量守恒定律。如飛機(jī)上裝上三個定向指示儀,并使三個小飛輪的自轉(zhuǎn)軸相互垂直,飛行員就可以通過飛輪軸相對于機(jī)身的指個小飛輪的自轉(zhuǎn)軸相互垂

14、直,飛行員就可以通過飛輪軸相對于機(jī)身的指向來確定飛機(jī)的空間取向。單軸的只能測量一個方向的量,一個系統(tǒng)需向來確定飛機(jī)的空間取向。單軸的只能測量一個方向的量,一個系統(tǒng)需三個陀螺儀,而三軸的一個陀螺儀就能替代三個單軸的。三個陀螺儀,而三軸的一個陀螺儀就能替代三個單軸的。10.2.2 DARTS 分析設(shè)計方法分析設(shè)計方法Design Algorithm for Real Time Systems 嵌入式多任務(wù)軟件開發(fā)階段,著眼于將嵌入式多任務(wù)軟件開發(fā)階段,著眼于將系統(tǒng)分為多個并發(fā)任務(wù),而非多個模塊。要系統(tǒng)分為多個并發(fā)任務(wù),而非多個模塊。要定義任務(wù)間的接口關(guān)系,而非模塊間的接口。定義任務(wù)間的接口關(guān)系,而

15、非模塊間的接口。模塊劃分和接口關(guān)系在任務(wù)設(shè)計階段確定的。模塊劃分和接口關(guān)系在任務(wù)設(shè)計階段確定的。 DARTS DARTS 是結(jié)構(gòu)化分析是結(jié)構(gòu)化分析/ /設(shè)計的擴(kuò)展,給出設(shè)計的擴(kuò)展,給出了劃分任務(wù)的方法,定義任務(wù)間的接口機(jī)制。了劃分任務(wù)的方法,定義任務(wù)間的接口機(jī)制。一個機(jī)器人控制器??刂埔粋€機(jī)器人控制器??刂? 6個轉(zhuǎn)軸,和個轉(zhuǎn)軸,和I/OI/O傳傳感器交互作用。轉(zhuǎn)軸與感器交互作用。轉(zhuǎn)軸與I/OI/O由控制器控制。程由控制器控制。程序由控制面板操作啟動。序由控制面板操作啟動。上電斷電手動運(yùn)行停止結(jié)束程序選擇1.1.需求分析與說明需求分析與說明 需求分析給出了系統(tǒng)功能需求:功能、輸入輸出、外部接口

16、需求、需求分析給出了系統(tǒng)功能需求:功能、輸入輸出、外部接口需求、性能等。狀態(tài)變遷圖說明了操作員與系統(tǒng)之間所有交互作用。結(jié)合操作性能等。狀態(tài)變遷圖說明了操作員與系統(tǒng)之間所有交互作用。結(jié)合操作手冊為用戶提供了操作步驟。手冊為用戶提供了操作步驟。2. 2. 系統(tǒng)設(shè)計系統(tǒng)設(shè)計系統(tǒng)設(shè)計是說明如何將系統(tǒng)分解成為多個任務(wù)。系統(tǒng)設(shè)計是說明如何將系統(tǒng)分解成為多個任務(wù)。(1 1)數(shù)據(jù)流分析)數(shù)據(jù)流分析 (Data Flow DiagramData Flow Diagram) 數(shù)據(jù)流圖有數(shù)據(jù)流圖有4 4種基本圖形符號:種基本圖形符號: 箭頭表箭頭表示數(shù)據(jù)流;示數(shù)據(jù)流; 圓或橢圓表述數(shù)據(jù)加工處理,有圓或橢圓表述數(shù)據(jù)加

17、工處理,有輸入和輸出;輸入和輸出; 表示數(shù)據(jù)存儲;表示數(shù)據(jù)存儲; 方框表方框表示數(shù)據(jù)的源點(diǎn)或終點(diǎn)。示數(shù)據(jù)的源點(diǎn)或終點(diǎn)。 以數(shù)據(jù)流為分析工具,從系統(tǒng)功能開始分析系以數(shù)據(jù)流為分析工具,從系統(tǒng)功能開始分析系統(tǒng)中的數(shù)據(jù)流。確定主要功能。統(tǒng)中的數(shù)據(jù)流。確定主要功能。 每個數(shù)據(jù)流圖都包含變換圈,表示系統(tǒng)完成的每個數(shù)據(jù)流圖都包含變換圈,表示系統(tǒng)完成的功能,箭頭表示變換間的數(shù)據(jù)流動、數(shù)據(jù)存儲區(qū),數(shù)功能,箭頭表示變換間的數(shù)據(jù)流動、數(shù)據(jù)存儲區(qū),數(shù)據(jù)詞典據(jù)詞典。數(shù)據(jù)字典數(shù)據(jù)字典是指對數(shù)據(jù)的數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、處理邏輯、外部實(shí)體等進(jìn)行定義和描述,其目的是對數(shù)據(jù)流程圖中的各個元素做出詳細(xì)的說明。 (2

18、2) 劃分任務(wù)劃分任務(wù) 識別出系統(tǒng)的所有功能和它們之間的數(shù)據(jù)流之識別出系統(tǒng)的所有功能和它們之間的數(shù)據(jù)流之后,還要識別任務(wù)的并行性的功能。后,還要識別任務(wù)的并行性的功能。 將一個軟件系統(tǒng)分解成并行任務(wù),主要考慮系將一個軟件系統(tǒng)分解成并行任務(wù),主要考慮系統(tǒng)中功能的異步性。分析數(shù)據(jù)流圖中的變換,來確統(tǒng)中功能的異步性。分析數(shù)據(jù)流圖中的變換,來確定那些變換可以并行處理,那些變換本質(zhì)上是順序定那些變換可以并行處理,那些變換本質(zhì)上是順序的。通過這些方法劃分任務(wù),一個數(shù)據(jù)的變換對應(yīng)的。通過這些方法劃分任務(wù),一個數(shù)據(jù)的變換對應(yīng)一個任務(wù),或者一個任務(wù)包括幾個變換。一個任務(wù),或者一個任務(wù)包括幾個變換。 一個變換是一

19、個獨(dú)立的任務(wù),還是和其他接個一個變換是一個獨(dú)立的任務(wù),還是和其他接個變換一起組成一個任務(wù),這要決定于:變換一起組成一個任務(wù),這要決定于:1 1) I/OI/O依依賴性;賴性;2 2)功能和時間關(guān)鍵性;)功能和時間關(guān)鍵性;3 3)計算需求;)計算需求;4 4)功)功能內(nèi)聚,能內(nèi)聚,5 5)時間內(nèi)聚;)時間內(nèi)聚;6 6)周期執(zhí)行。這些因素都)周期執(zhí)行。這些因素都需要周密的考慮。需要周密的考慮。(3 3)定義任務(wù)接口)定義任務(wù)接口 有兩類任務(wù)接口模塊:通信模塊有兩類任務(wù)接口模塊:通信模塊TCMTCM和同和同步互斥模塊步互斥模塊TSMTSM來實(shí)現(xiàn)的任務(wù)的關(guān)聯(lián)。來實(shí)現(xiàn)的任務(wù)的關(guān)聯(lián)。 這兩個模塊是由任務(wù)來

20、調(diào)用的,稱為系這兩個模塊是由任務(wù)來調(diào)用的,稱為系統(tǒng)調(diào)用。在調(diào)用統(tǒng)調(diào)用。在調(diào)用TCMTCM過程中要依靠過程中要依靠TSMTSM使兩個使兩個任務(wù)同步和互斥,來保障數(shù)據(jù)的一致性和正任務(wù)同步和互斥,來保障數(shù)據(jù)的一致性和正確性。確性。3. 3. 實(shí)例(略)實(shí)例(略)4.4.任務(wù)設(shè)計任務(wù)設(shè)計任務(wù)間接口設(shè)計好之后,就要建立各個任務(wù)的結(jié)構(gòu)。任務(wù)間接口設(shè)計好之后,就要建立各個任務(wù)的結(jié)構(gòu)。一個任務(wù)就是一個程序序列。畫出各個任務(wù)的數(shù)據(jù)一個任務(wù)就是一個程序序列。畫出各個任務(wù)的數(shù)據(jù)流圖,從數(shù)據(jù)流圖導(dǎo)出任務(wù)模塊結(jié)構(gòu)圖。然后定義流圖,從數(shù)據(jù)流圖導(dǎo)出任務(wù)模塊結(jié)構(gòu)圖。然后定義任務(wù)模塊的接口。(見圖任務(wù)模塊的接口。(見圖10-2

21、2)10-22)5.5.模塊構(gòu)筑模塊構(gòu)筑進(jìn)行每個模塊的詳細(xì)設(shè)計,然后進(jìn)行編碼。進(jìn)行每個模塊的詳細(xì)設(shè)計,然后進(jìn)行編碼。6.6.任務(wù)與系統(tǒng)集成任務(wù)與系統(tǒng)集成最后將模塊連接成任務(wù),然后將各任務(wù)連接成系統(tǒng)。最后將模塊連接成任務(wù),然后將各任務(wù)連接成系統(tǒng)。嵌入式軟件開發(fā)工具嵌入式軟件開發(fā)工具 嵌入式軟件開發(fā)工具的嵌入式軟件開發(fā)工具的集成度集成度和和可用性可用性將直接關(guān)將直接關(guān)系到嵌入式系統(tǒng)的開發(fā)效系到嵌入式系統(tǒng)的開發(fā)效率。率。嵌入式軟件開發(fā)工具的分類嵌入式軟件開發(fā)工具的分類嵌入式軟件開發(fā)階段嵌入式軟件開發(fā)階段 嵌入式軟件開發(fā)工具的分類嵌入式軟件開發(fā)工具的分類根據(jù)不同的階段,嵌入式軟件開發(fā)工具根據(jù)不同的階段

22、,嵌入式軟件開發(fā)工具可以分為:可以分為:需求分析工具(Requirement Analysis Tools)軟件設(shè)計工具(Software Design Tools)編碼、調(diào)試工具(Coding Tools)測試工具(Testing Tools)配置管理工具、維護(hù)工具等主要嵌入式軟件開發(fā)工具產(chǎn)品主要嵌入式軟件開發(fā)工具產(chǎn)品RequirementAnalysisSoftwareDesignCodingTestReleasePhasesTAUObjectGeodeRational Rose RealTimeRhapsodyTornadopRISM+SpectraWin CE PlatformBuil

23、derCodeWarriorXray DebuggerLogiscopeCodeTESTLambdaTOOL嵌入式軟件開發(fā)工具的分類嵌入式軟件開發(fā)工具的分類 嵌入式軟件的開發(fā)可分為以下幾種嵌入式軟件的開發(fā)可分為以下幾種 :編寫簡單的板級測試軟件,主要是輔助硬件的調(diào)試 開發(fā)基本的驅(qū)動程序 開發(fā)特定嵌入式操作系統(tǒng)的驅(qū)動程序(板級支持包) 開發(fā)嵌入式系統(tǒng)軟件,如嵌入式操作系統(tǒng)等 開發(fā)應(yīng)用軟件嵌入式軟件開發(fā)工具的分類嵌入式軟件開發(fā)工具的分類 從以上嵌入式軟件開發(fā)分類來看,嵌入式從以上嵌入式軟件開發(fā)分類來看,嵌入式軟件開發(fā)工具可以分為:軟件開發(fā)工具可以分為:與嵌入式OS相關(guān)的開發(fā)工具,用于開發(fā): 基于嵌

24、入式OS的應(yīng)用 部分驅(qū)動程序等與嵌入式OS無關(guān)的開發(fā)工具,用于開發(fā): 基本的驅(qū)動程序 輔助硬件調(diào)試程序 系統(tǒng)軟件等嵌入式軟件的交叉開發(fā)環(huán)境嵌入式軟件的交叉開發(fā)環(huán)境 交叉開發(fā)環(huán)境交叉開發(fā)環(huán)境是指用于嵌入式軟件開發(fā)的是指用于嵌入式軟件開發(fā)的所有工具軟件的集合,一般包括:所有工具軟件的集合,一般包括:文本編輯器交叉編譯器交叉調(diào)試器仿真器下載器等 交叉開發(fā)環(huán)境由交叉開發(fā)環(huán)境由宿主機(jī)宿主機(jī)和和目標(biāo)機(jī)目標(biāo)機(jī)組成,宿組成,宿主機(jī)與目標(biāo)機(jī)之間在主機(jī)與目標(biāo)機(jī)之間在物理連接物理連接的基礎(chǔ)上建的基礎(chǔ)上建立起立起邏輯連接邏輯連接。交叉開發(fā)環(huán)境交叉開發(fā)環(huán)境目標(biāo)機(jī)硬件目標(biāo)機(jī)硬件目標(biāo)機(jī)應(yīng)用系統(tǒng)目標(biāo)機(jī)應(yīng)用系統(tǒng) 應(yīng)用軟件 應(yīng)用

25、中間件 目標(biāo)機(jī)OS宿主機(jī)硬件宿主機(jī)硬件宿主機(jī)宿主機(jī)OS調(diào)調(diào)試試代代理理運(yùn)運(yùn)行行庫庫宿主機(jī)開發(fā)環(huán)境宿主機(jī)開發(fā)環(huán)境 編輯 編譯 連接 調(diào)試運(yùn)行平臺TargetTarget開發(fā)平臺Host嵌入式軟件的交叉開發(fā)環(huán)境嵌入式軟件的交叉開發(fā)環(huán)境 宿主機(jī)(宿主機(jī)(HostHost) :是用于開發(fā)嵌入式系統(tǒng)的計算:是用于開發(fā)嵌入式系統(tǒng)的計算機(jī)。一般為機(jī)。一般為PCPC機(jī)(或者工作站),具備豐富的軟機(jī)(或者工作站),具備豐富的軟硬件資源,為嵌入式軟件的開發(fā)提供全過程支持。硬件資源,為嵌入式軟件的開發(fā)提供全過程支持。目標(biāo)機(jī)(目標(biāo)機(jī)(TargetTarget):即所開發(fā)的嵌入式系統(tǒng),是:即所開發(fā)的嵌入式系統(tǒng),是嵌入式

26、軟件的運(yùn)行環(huán)境,其硬件軟件是為特定應(yīng)嵌入式軟件的運(yùn)行環(huán)境,其硬件軟件是為特定應(yīng)用定制的。用定制的。在開發(fā)過程中,目標(biāo)機(jī)端需接收和執(zhí)行宿主機(jī)發(fā)在開發(fā)過程中,目標(biāo)機(jī)端需接收和執(zhí)行宿主機(jī)發(fā)出的各種命令如設(shè)置斷點(diǎn)、讀內(nèi)存、寫內(nèi)存等,出的各種命令如設(shè)置斷點(diǎn)、讀內(nèi)存、寫內(nèi)存等,將結(jié)果返回給宿主機(jī),配合宿主機(jī)各方面的工作。將結(jié)果返回給宿主機(jī),配合宿主機(jī)各方面的工作。嵌入式軟件的交叉開發(fā)環(huán)境嵌入式軟件的交叉開發(fā)環(huán)境 物理連接和邏輯連接物理連接和邏輯連接 物理連接物理連接是指宿主機(jī)與目標(biāo)機(jī)通過物理線路連接在一起,連接方式主要有三種: 串口 以太口 OCD(On Chip Debug)方式,如JTAG等物理連接是

27、邏輯連接的基礎(chǔ)。邏輯連接邏輯連接指宿主機(jī)與目標(biāo)機(jī)間按某種通信協(xié)議建立起來的通信連接,目前逐步形成了一些通信協(xié)議的標(biāo)準(zhǔn)。嵌入式軟件實(shí)現(xiàn)階段的開發(fā)過程嵌入式軟件實(shí)現(xiàn)階段的開發(fā)過程 設(shè)計完成后,嵌入式軟件的開發(fā)進(jìn)入實(shí)現(xiàn)階段,設(shè)計完成后,嵌入式軟件的開發(fā)進(jìn)入實(shí)現(xiàn)階段,可分為三個步驟:生成、調(diào)試和固化運(yùn)行??煞譃槿齻€步驟:生成、調(diào)試和固化運(yùn)行。軟件的生成軟件的生成主要是在宿主機(jī)上進(jìn)行,利用各種工具完成對應(yīng)用程序的編輯、交叉編譯和鏈接工作,生成可供調(diào)試或固化的目標(biāo)程序。調(diào)試調(diào)試是通過交叉調(diào)試器完成軟件的調(diào)試工作。調(diào)試完成后還需進(jìn)行必要的測試工作。固化運(yùn)行固化運(yùn)行是先用一定的工具將應(yīng)用程序固化到目標(biāo)機(jī)上,然

28、后啟動目標(biāo)機(jī),在沒有任何工具干預(yù)的情況下應(yīng)用程序能自動地啟動運(yùn)行。嵌入式軟件生成階段嵌入式軟件生成階段 三個過程三個過程 源代碼程序的編寫 編譯成各個目標(biāo)模塊 鏈接成可供下載調(diào)試或固化的目標(biāo)程序編輯器編輯器交叉編交叉編譯器譯器交叉鏈交叉鏈接器接器源程序源程序目標(biāo)目標(biāo)模塊模塊可供調(diào)可供調(diào)試試/ /固固化化庫文件庫文件交叉編譯交叉編譯 把在宿主機(jī)上編寫的高級語言程序編譯成把在宿主機(jī)上編寫的高級語言程序編譯成可以運(yùn)行在目標(biāo)機(jī)上的代碼,即在宿主機(jī)可以運(yùn)行在目標(biāo)機(jī)上的代碼,即在宿主機(jī)上能夠編譯生成另一種上能夠編譯生成另一種CPUCPU(嵌入式微處理(嵌入式微處理器)上的二進(jìn)制程序。器)上的二進(jìn)制程序。

29、嵌入式軟件的調(diào)試嵌入式軟件的調(diào)試 交叉調(diào)試器交叉調(diào)試器是指調(diào)試程序和被調(diào)試程序運(yùn)行在不同機(jī)器上的調(diào)試器;調(diào)試器通過某種方式能控制目標(biāo)機(jī)上被調(diào)試程序的運(yùn)行方式;通過調(diào)試器能查看和修改目標(biāo)機(jī)上的內(nèi)存、寄存器以及被調(diào)試程序中的變量等。交叉調(diào)試交叉調(diào)試非交叉調(diào)試非交叉調(diào)試調(diào)試器和被調(diào)試程序運(yùn)行在不同調(diào)試器和被調(diào)試程序運(yùn)行在不同的計算機(jī)上的計算機(jī)上調(diào)試器和被調(diào)試程序運(yùn)行在同一調(diào)試器和被調(diào)試程序運(yùn)行在同一臺計算機(jī)上臺計算機(jī)上可獨(dú)立運(yùn)行,無需操作系統(tǒng)支持可獨(dú)立運(yùn)行,無需操作系統(tǒng)支持需要操作系統(tǒng)的支持需要操作系統(tǒng)的支持被調(diào)試程序的裝載由調(diào)試器完成被調(diào)試程序的裝載由調(diào)試器完成被調(diào)試程序的裝載由專門的被調(diào)試程序的

30、裝載由專門的LoaderLoader程序完成程序完成需要通過外部通信的方式來控制需要通過外部通信的方式來控制被調(diào)試程序被調(diào)試程序不需要通過外部通信的方式來控不需要通過外部通信的方式來控制被調(diào)試程序制被調(diào)試程序可以直接調(diào)試不同指令集的程序可以直接調(diào)試不同指令集的程序只能直接調(diào)試相同指令集的程序只能直接調(diào)試相同指令集的程序嵌入式軟件的調(diào)試嵌入式軟件的調(diào)試 交叉調(diào)試方式交叉調(diào)試方式 Crash and Burn Rom Monitor Rom Emulator In Circuit Emulator On Chip Debugging SimulatorSimulator方式(非交叉)方式(非交叉)

31、Crash and Burn 最早的最早的嵌入式嵌入式應(yīng)用軟應(yīng)用軟件調(diào)試件調(diào)試方法。方法。在宿主機(jī)上編寫代碼在宿主機(jī)上編寫代碼反復(fù)檢查代碼,直到編譯反復(fù)檢查代碼,直到編譯通過,生成可執(zhí)行程序通過,生成可執(zhí)行程序?qū)⒊绦蚬袒▽⒊绦蚬袒˙urn)到目標(biāo)機(jī)的非易失)到目標(biāo)機(jī)的非易失性存儲器性存儲器(E2PROM、FLASH等)中等)中在宿主機(jī)上反復(fù)檢查在宿主機(jī)上反復(fù)檢查碼,查找問題根源碼,查找問題根源改寫代碼改寫代碼啟動目標(biāo)機(jī)運(yùn)行,觀啟動目標(biāo)機(jī)運(yùn)行,觀察程序是否正常工作察程序是否正常工作NY結(jié)束結(jié)束ROM Monitor ROM MonitorROM Monitor是是被固化且運(yùn)行在目標(biāo)機(jī)上的被固

32、化且運(yùn)行在目標(biāo)機(jī)上的一段程序一段程序,負(fù)責(zé)監(jiān)控目標(biāo)機(jī)上被調(diào)試程序,負(fù)責(zé)監(jiān)控目標(biāo)機(jī)上被調(diào)試程序的運(yùn)行,與宿主機(jī)端的調(diào)試器一起完成對的運(yùn)行,與宿主機(jī)端的調(diào)試器一起完成對應(yīng)用程序的調(diào)試。應(yīng)用程序的調(diào)試。 調(diào)試器與調(diào)試器與ROM MonitorROM Monitor之間的通信遵循遠(yuǎn)程之間的通信遵循遠(yuǎn)程調(diào)試協(xié)議。調(diào)試協(xié)議。ROM Monitor調(diào)試方式調(diào)試方式調(diào)試器調(diào)試器Windows或其它桌或其它桌面操作系統(tǒng)面操作系統(tǒng)PC機(jī)等硬件機(jī)等硬件嵌入式嵌入式硬件硬件監(jiān)控程監(jiān)控程序序(ROM Monitor)被調(diào)試被調(diào)試程序程序宿主機(jī)宿主機(jī)目標(biāo)機(jī)目標(biāo)機(jī)邏輯上的連接邏輯上的連接物理上的連接物理上的連接ROM Mo

33、nitor 在目標(biāo)機(jī)上電或復(fù)位后首先執(zhí)行的就是在目標(biāo)機(jī)上電或復(fù)位后首先執(zhí)行的就是ROM ROM MonitorMonitor,它對目標(biāo)機(jī)進(jìn)行一些必要的初始,它對目標(biāo)機(jī)進(jìn)行一些必要的初始化化 初始化要求的外圍設(shè)備,如最基本的串口和用于內(nèi)存刷新的系統(tǒng)計時器芯片; 初始化用于下載映像的內(nèi)存系統(tǒng); 初始化中斷控制器和安裝中斷處理程序。 初始化自己的程序空間初始化自己的程序空間 等待宿主機(jī)端的命令等待宿主機(jī)端的命令ROM Monitor ROM MonitorROM Monitor能配合調(diào)試器完成:能配合調(diào)試器完成: 程序映像下載 對目標(biāo)機(jī)系統(tǒng)內(nèi)存的讀寫 對寄存器的讀寫 設(shè)置和清除不同類型的斷點(diǎn) 單步執(zhí)

34、行指令 復(fù)位系統(tǒng) 等調(diào)試功能ROM Monitor調(diào)試過程調(diào)試過程(1 1)啟動目標(biāo)機(jī),監(jiān)控器掌握對目標(biāo)機(jī)的控制,)啟動目標(biāo)機(jī),監(jiān)控器掌握對目標(biāo)機(jī)的控制,等待和調(diào)試器建立連接;等待和調(diào)試器建立連接;(2 2)啟動調(diào)試器,并和監(jiān)控器建立起通信連接;)啟動調(diào)試器,并和監(jiān)控器建立起通信連接;(3 3)使用調(diào)試器將應(yīng)用程序下載到目標(biāo)機(jī)上的)使用調(diào)試器將應(yīng)用程序下載到目標(biāo)機(jī)上的RAMRAM空間中;空間中;(4 4)使用調(diào)試器進(jìn)行調(diào)試,發(fā)出各種調(diào)試命令,)使用調(diào)試器進(jìn)行調(diào)試,發(fā)出各種調(diào)試命令,監(jiān)控器解釋并執(zhí)行這些命令,通過目標(biāo)機(jī)上的各種監(jiān)控器解釋并執(zhí)行這些命令,通過目標(biāo)機(jī)上的各種異常來獲取對目標(biāo)機(jī)的控制,

35、將命令執(zhí)行結(jié)果回傳異常來獲取對目標(biāo)機(jī)的控制,將命令執(zhí)行結(jié)果回傳給調(diào)試器;給調(diào)試器; (5 5)如果程序有問題,在調(diào)試器的幫助下定位錯)如果程序有問題,在調(diào)試器的幫助下定位錯誤;修改之后再重新編譯鏈接并下載程序,開始新誤;修改之后再重新編譯鏈接并下載程序,開始新的調(diào)試,如此反復(fù)直至程序正確運(yùn)行為止。的調(diào)試,如此反復(fù)直至程序正確運(yùn)行為止。 ROM Monitor優(yōu)點(diǎn):優(yōu)點(diǎn):提高調(diào)試程序的效率提高調(diào)試程序的效率 ,縮短開發(fā)周期,縮短開發(fā)周期,降低成本;降低成本;簡單、方便;簡單、方便;可擴(kuò)展性強(qiáng),可支持許多高級調(diào)試功能;可擴(kuò)展性強(qiáng),可支持許多高級調(diào)試功能;成本低廉,不需專門的調(diào)試硬件支持;成本低廉,

36、不需專門的調(diào)試硬件支持;1)1)幾乎所有的交叉調(diào)試器都支持這種方式。幾乎所有的交叉調(diào)試器都支持這種方式。 ROM Monitor缺點(diǎn):缺點(diǎn):Debug MonitorDebug Monitor需要用需要用Crash and BurnCrash and Burn方法開發(fā);方法開發(fā);當(dāng)當(dāng)ROM MonitorROM Monitor占用占用CPUCPU時,應(yīng)用程序不響應(yīng)外部的時,應(yīng)用程序不響應(yīng)外部的中斷,因此不便調(diào)試有時間特性的程序;中斷,因此不便調(diào)試有時間特性的程序;某些調(diào)試功能依賴于某些調(diào)試功能依賴于CPUCPU硬件的支持(如硬件斷點(diǎn)功硬件的支持(如硬件斷點(diǎn)功能);能);ROM MonitorR

37、OM Monitor要占用目標(biāo)機(jī)一定數(shù)量的資源,如要占用目標(biāo)機(jī)一定數(shù)量的資源,如CPUCPU、RAMRAM、ROMROM和通信設(shè)備等資源;和通信設(shè)備等資源;1)1)調(diào)試環(huán)境不同于實(shí)際目標(biāo)環(huán)境。調(diào)試環(huán)境不同于實(shí)際目標(biāo)環(huán)境。仿真開發(fā)方式仿真開發(fā)方式嵌入式應(yīng)用的開發(fā)經(jīng)常會遭遇缺少目嵌入式應(yīng)用的開發(fā)經(jīng)常會遭遇缺少目標(biāo)機(jī)環(huán)境、缺乏目標(biāo)機(jī)芯片等資源的問題,標(biāo)機(jī)環(huán)境、缺乏目標(biāo)機(jī)芯片等資源的問題,而開發(fā)過程又不可能停止,因此自然就提而開發(fā)過程又不可能停止,因此自然就提出了根據(jù)不同的應(yīng)用需要,利用仿真器件、出了根據(jù)不同的應(yīng)用需要,利用仿真器件、仿真環(huán)境進(jìn)行開發(fā)的方法。仿真環(huán)境進(jìn)行開發(fā)的方法。硬件仿真開發(fā)硬件仿真

38、開發(fā)ROM EmulatorICEOCD軟件仿真開發(fā)軟件仿真開發(fā)ROM Emulator (軟硬結(jié)合仿真器軟硬結(jié)合仿真器)ROM EmulatorROM Emulator是一種用于是一種用于替代目標(biāo)機(jī)上的替代目標(biāo)機(jī)上的ROMROM芯片芯片的設(shè)備,即的設(shè)備,即ROMROM仿真器。利用這種仿真器。利用這種設(shè)備,目標(biāo)機(jī)可以沒有設(shè)備,目標(biāo)機(jī)可以沒有ROMROM芯片,但目標(biāo)機(jī)芯片,但目標(biāo)機(jī)的的CPUCPU可以讀取可以讀取ROM EmulatorROM Emulator設(shè)備上設(shè)備上ROMROM芯芯片的內(nèi)容:片的內(nèi)容:ROM EmulatorROM Emulator設(shè)備上的設(shè)備上的ROMROM芯片芯片的地址

39、可以實(shí)時地映射到目標(biāo)機(jī)的的地址可以實(shí)時地映射到目標(biāo)機(jī)的ROMROM地址地址空間,從而仿真(空間,從而仿真(EmulationEmulation)目標(biāo)機(jī)的)目標(biāo)機(jī)的ROMROM。ROM EmulatorROM EmulatorROM Emulator的調(diào)試方式是一種不完全的的調(diào)試方式是一種不完全的調(diào)試方式:調(diào)試方式:ROM EmulatorROM Emulator設(shè)備只是為目標(biāo)設(shè)備只是為目標(biāo)機(jī)提供機(jī)提供ROMROM芯片和在芯片和在TargetTarget和和HostHost間建立一間建立一條高速的通信通道,因此它經(jīng)常和前面兩條高速的通信通道,因此它經(jīng)常和前面兩種調(diào)試方式結(jié)合起來形成一種完備的調(diào)試

40、種調(diào)試方式結(jié)合起來形成一種完備的調(diào)試方式。方式。 ROM EmulatorROM Emulator的典型應(yīng)用就是和的典型應(yīng)用就是和ROM ROM MonitorMonitor的調(diào)試方式相結(jié)合。的調(diào)試方式相結(jié)合。ROM Emulator 優(yōu)點(diǎn):優(yōu)點(diǎn):目標(biāo)機(jī)可以沒有目標(biāo)機(jī)可以沒有ROMROM芯片、可以使用芯片、可以使用ROM ROM EmulatorEmulator提供的提供的ROMROM空間且不需要用別的工空間且不需要用別的工具來寫具來寫ROMROM。 缺點(diǎn):缺點(diǎn):目標(biāo)機(jī)必須能支持外部目標(biāo)機(jī)必須能支持外部ROMROM存儲空間,而且存儲空間,而且由于其通常要和由于其通常要和ROM MonitorR

41、OM Monitor配合使用,因配合使用,因此它擁有此它擁有ROM MonitorROM Monitor的所有缺點(diǎn)。的所有缺點(diǎn)。 另外,現(xiàn)在的嵌入式微處理器一般都有集另外,現(xiàn)在的嵌入式微處理器一般都有集成的成的ROMROM,因此不能用這種方法了。,因此不能用這種方法了。ICE ICEICE(In-Circuit EmulatorIn-Circuit Emulator)是一種用于)是一種用于替代目標(biāo)機(jī)上替代目標(biāo)機(jī)上CPUCPU的設(shè)備,即在線仿真器;的設(shè)備,即在線仿真器; 它比一般的它比一般的CPUCPU有更多的引出線,能夠?qū)?nèi)有更多的引出線,能夠?qū)?nèi)部的信號輸出到被控制的目標(biāo)機(jī);部的信號輸出到被

42、控制的目標(biāo)機(jī); ICEICE上的上的MemoryMemory也可以被映射到用戶的程序也可以被映射到用戶的程序空間,這樣即使目標(biāo)機(jī)不存在的情形下也空間,這樣即使目標(biāo)機(jī)不存在的情形下也可以進(jìn)行代碼的調(diào)試??梢赃M(jìn)行代碼的調(diào)試。宿主開發(fā)平臺目標(biāo)平臺ICEICE調(diào)試結(jié)構(gòu)調(diào)試結(jié)構(gòu) 連接連接ICEICE和目標(biāo)機(jī)時,一般是將目標(biāo)機(jī)的和目標(biāo)機(jī)時,一般是將目標(biāo)機(jī)的CPUCPU取取下,而將下,而將ICEICE的的CPUCPU引出線接到目標(biāo)機(jī)的引出線接到目標(biāo)機(jī)的CPUCPU插插槽。槽。 用用ICEICE進(jìn)行調(diào)試時,在進(jìn)行調(diào)試時,在HostHost端運(yùn)行的調(diào)試器通端運(yùn)行的調(diào)試器通過過ICEICE來控制目標(biāo)機(jī)上運(yùn)行的程序

43、。來控制目標(biāo)機(jī)上運(yùn)行的程序。ICEICE功能特點(diǎn)功能特點(diǎn)同時支持同時支持軟斷點(diǎn)軟斷點(diǎn)和和硬件斷點(diǎn)硬件斷點(diǎn)的設(shè)置;的設(shè)置;設(shè)置各種復(fù)雜的斷點(diǎn)和觸發(fā)器;設(shè)置各種復(fù)雜的斷點(diǎn)和觸發(fā)器;實(shí)時跟蹤目標(biāo)程序的運(yùn)行,并可實(shí)現(xiàn)選擇性的實(shí)時跟蹤目標(biāo)程序的運(yùn)行,并可實(shí)現(xiàn)選擇性的跟蹤;跟蹤;支持支持“Time Stamp”Time Stamp”; 允許用戶設(shè)置允許用戶設(shè)置“Timer”Timer”; 提供提供“Shadow RAM”Shadow RAM”,能在不中斷被調(diào)試程序,能在不中斷被調(diào)試程序的運(yùn)行下查看內(nèi)存和變量即非干擾調(diào)試查詢。的運(yùn)行下查看內(nèi)存和變量即非干擾調(diào)試查詢。ICE適用于:適用于:調(diào)試實(shí)時的應(yīng)用系統(tǒng)調(diào)

44、試實(shí)時的應(yīng)用系統(tǒng)調(diào)試設(shè)備驅(qū)動程序調(diào)試設(shè)備驅(qū)動程序?qū)τ布M(jìn)行功能和性能的測試對硬件進(jìn)行功能和性能的測試實(shí)時性能分析實(shí)時性能分析缺點(diǎn):缺點(diǎn):價格太昂貴,不利于團(tuán)隊開發(fā)價格太昂貴,不利于團(tuán)隊開發(fā)1)1)所仿所仿CPUCPU有限有限OCDOCDOCD(On Chip DebuggingOn Chip Debugging)是)是CPUCPU芯片提供芯片提供的一種調(diào)試功能(片上調(diào)試),可以認(rèn)為的一種調(diào)試功能(片上調(diào)試),可以認(rèn)為是一種廉價的是一種廉價的ICEICE功能:功能:OCDOCD的價格只有的價格只有ICEICE的的20%20%,但提供了,但提供了ICE 80%ICE 80%的功能。的功能。OCD調(diào)

45、試結(jié)構(gòu)調(diào)試結(jié)構(gòu)調(diào)試器調(diào)試器Windows或其它桌或其它桌面操作系統(tǒng)面操作系統(tǒng)PC機(jī)等硬件機(jī)等硬件被調(diào)試程序被調(diào)試程序OCD接接口口嵌入式嵌入式硬件硬件宿主機(jī)宿主機(jī)目標(biāo)機(jī)目標(biāo)機(jī)邏輯上的連接邏輯上的連接物理連接物理連接仿真器仿真器針形連接器針形連接器并口、串口并口、串口或網(wǎng)絡(luò)接口或網(wǎng)絡(luò)接口為特定處理為特定處理器而建造器而建造OCD調(diào)試方法調(diào)試方法將將CPUCPU的模式分為的模式分為一般模式一般模式和和調(diào)試模式調(diào)試模式一般模式下,一般模式下, CPUCPU從內(nèi)存讀取指令執(zhí)行從內(nèi)存讀取指令執(zhí)行1)1)調(diào)試模式下,調(diào)試模式下,CPUCPU首先從首先從調(diào)試端口調(diào)試端口讀取指令,通過調(diào)試讀取指令,通過調(diào)試端

46、口可以控制端口可以控制CPUCPU進(jìn)入和退出調(diào)試模式;進(jìn)入和退出調(diào)試模式;HostHost端的調(diào)試端的調(diào)試器可以直接向目標(biāo)機(jī)發(fā)送要執(zhí)行的指令,讀寫目標(biāo)機(jī)的器可以直接向目標(biāo)機(jī)發(fā)送要執(zhí)行的指令,讀寫目標(biāo)機(jī)的內(nèi)存和各種寄存器,控制目標(biāo)程序的運(yùn)行以及完成各種內(nèi)存和各種寄存器,控制目標(biāo)程序的運(yùn)行以及完成各種復(fù)雜的調(diào)試功能。復(fù)雜的調(diào)試功能。OCD優(yōu)點(diǎn):優(yōu)點(diǎn):不占用目標(biāo)機(jī)的資源;不占用目標(biāo)機(jī)的資源;調(diào)試環(huán)境和最終的程序運(yùn)行環(huán)境基本一致;調(diào)試環(huán)境和最終的程序運(yùn)行環(huán)境基本一致;支持軟硬斷點(diǎn)、支持軟硬斷點(diǎn)、TraceTrace功能;功能;精確計量程序的執(zhí)行時間;精確計量程序的執(zhí)行時間;1)1)提供時序分析功能。提

47、供時序分析功能。OCD缺點(diǎn):缺點(diǎn):調(diào)試的實(shí)時性不如調(diào)試的實(shí)時性不如ICEICE;不支持非干擾調(diào)試查詢;不支持非干擾調(diào)試查詢;1)1)CPUCPU必需具有必需具有OCDOCD功能。功能。各種各種OCD仿真器實(shí)例仿真器實(shí)例邊界掃描技術(shù)(邊界掃描技術(shù)(JTAGJTAG) JTAGJTAG標(biāo)準(zhǔn)測試訪問接口與邊界掃描結(jié)構(gòu)標(biāo)準(zhǔn)測試訪問接口與邊界掃描結(jié)構(gòu)(Standard Test Access Port and Boundary Standard Test Access Port and Boundary Scan ArchitectureScan Architecture),已被),已被IEEE1149

48、.1IEEE1149.1標(biāo)準(zhǔn)標(biāo)準(zhǔn)所采納,是面向用戶的測試接口。所采納,是面向用戶的測試接口。 該接口一般由該接口一般由4 4個引腳組成:個引腳組成:測試數(shù)據(jù)輸入(TDI)測試數(shù)據(jù)輸出(TDO)測試時鐘(TCK)測試模式選擇引腳(TMS)異步測試復(fù)位引腳(TRST,可選)邊界掃描技術(shù)(邊界掃描技術(shù)(JTAGJTAG) 優(yōu)點(diǎn):優(yōu)點(diǎn):可以通過邊界掃描操作測試整個板的電氣連接,特別為表面貼元件提供方便; 各個引腳信號的采樣,并可強(qiáng)制引腳輸出用以測試外圍芯片; 可以軟件下載、執(zhí)行、調(diào)試和控制,為復(fù)雜的實(shí)時跟蹤調(diào)試提供路徑; 可以進(jìn)行多內(nèi)核和多處理器的板級和芯片級的調(diào)試,通過串接 ,為芯片制造商提供芯片生

49、產(chǎn)、測試途徑; 不占用系統(tǒng)資源,能夠調(diào)試沒有外部總線的芯片,代價小。 邊界掃描技術(shù)(邊界掃描技術(shù)(JTAGJTAG) 缺點(diǎn):缺點(diǎn):通過串口依次傳遞數(shù)據(jù),速度比較慢; 只能進(jìn)行軟件斷點(diǎn)級別的調(diào)試; 不能完成實(shí)時跟蹤和多種事件觸發(fā)等復(fù)雜調(diào)試功能。Simulator交叉開發(fā)方式存在如下缺點(diǎn):交叉開發(fā)方式存在如下缺點(diǎn):硬件支持硬件支持 必須有目標(biāo)機(jī)或評估板必須有目標(biāo)機(jī)或評估板 易使用性易使用性普通編程人員不熟悉普通編程人員不熟悉 廉價性廉價性成本高成本高 可移植性、可擴(kuò)展性可移植性、可擴(kuò)展性不高不高 團(tuán)隊開發(fā)團(tuán)隊開發(fā)較難較難 開發(fā)周期開發(fā)周期較長較長Simulator (全軟件模擬器)(全軟件模擬器)

50、 一種軟件模擬器,在宿主機(jī)上創(chuàng)建一個虛擬的一種軟件模擬器,在宿主機(jī)上創(chuàng)建一個虛擬的目標(biāo)機(jī)環(huán)境,再將應(yīng)用系統(tǒng)下載到這個虛擬目目標(biāo)機(jī)環(huán)境,再將應(yīng)用系統(tǒng)下載到這個虛擬目標(biāo)機(jī)上運(yùn)行調(diào)試。標(biāo)機(jī)上運(yùn)行調(diào)試。 軟件模擬的對象軟件模擬的對象仿真處理器仿真外設(shè)仿真環(huán)境軟件仿真的級別軟件仿真的級別指令級仿真開發(fā)API級仿真開發(fā)宿主機(jī) OS編輯 :C、C+編譯、鏈接應(yīng)用仿真開發(fā)環(huán)境示意圖調(diào)試目標(biāo)操作系統(tǒng)庫TOSLib應(yīng)用編程接口API仿真調(diào)試代理EDA應(yīng)用系統(tǒng)通信用戶虛擬目標(biāo)硬件V-Target虛虛擬擬目目標(biāo)標(biāo)環(huán)環(huán)境境IDE應(yīng)用仿真開發(fā)環(huán)境示意圖應(yīng)用仿真開發(fā)環(huán)境示意圖設(shè)計編碼測試運(yùn)行維護(hù)下載調(diào)試固化交叉調(diào)試固化運(yùn)行

51、仿真編譯仿真調(diào)試正確N仿真庫編譯鏈接Y運(yùn)行庫結(jié)合了仿真的軟件開發(fā)過程結(jié)合了仿真的軟件開發(fā)過程Simulator 優(yōu)點(diǎn)優(yōu)點(diǎn)最大好處就是可以不用真正的目標(biāo)機(jī),可最大好處就是可以不用真正的目標(biāo)機(jī),可以在目標(biāo)機(jī)環(huán)境并不存在的條件下開發(fā)目以在目標(biāo)機(jī)環(huán)境并不存在的條件下開發(fā)目標(biāo)機(jī)上的應(yīng)用系統(tǒng),并且在調(diào)試時可以利標(biāo)機(jī)上的應(yīng)用系統(tǒng),并且在調(diào)試時可以利用用HostHost資源提供更詳細(xì)的錯誤診斷信息。資源提供更詳細(xì)的錯誤診斷信息。Simulator缺點(diǎn)缺點(diǎn)和實(shí)際的運(yùn)行環(huán)境差別很大和實(shí)際的運(yùn)行環(huán)境差別很大設(shè)備模擬的局限性較大設(shè)備模擬的局限性較大實(shí)時特性較差實(shí)時特性較差對對HostHost的資源要求較高的資源要求較

52、高適用范圍適用范圍對時間特性沒有嚴(yán)格要求、沒有特殊外設(shè)、只對時間特性沒有嚴(yán)格要求、沒有特殊外設(shè)、只需要驗(yàn)證邏輯正確的應(yīng)用程序。需要驗(yàn)證邏輯正確的應(yīng)用程序。嵌入式軟件的測試嵌入式軟件的測試 測試工具測試工具能夠用來輔助測試的工具,主要用來能夠用來輔助測試的工具,主要用來支持測試人員的工作,本身不能直接用來進(jìn)行支持測試人員的工作,本身不能直接用來進(jìn)行測試。測試工具一般都是通用工具,測試人員測試。測試工具一般都是通用工具,測試人員應(yīng)該根據(jù)實(shí)際情況對它們進(jìn)行適當(dāng)?shù)恼{(diào)整。應(yīng)該根據(jù)實(shí)際情況對它們進(jìn)行適當(dāng)?shù)恼{(diào)整。 嵌入式軟件測試中經(jīng)常用到的測試工具有:嵌入式軟件測試中經(jīng)常用到的測試工具有:內(nèi)存分析工具性能分

53、析工具覆蓋分析工具缺陷跟蹤工具等 嵌入式軟件的測試嵌入式軟件的測試內(nèi)存分析工具內(nèi)存分析工具 嵌入式系統(tǒng)的內(nèi)存資源通常是受限的,內(nèi)存分嵌入式系統(tǒng)的內(nèi)存資源通常是受限的,內(nèi)存分析工具可以用來處理在進(jìn)行動態(tài)內(nèi)存分配時產(chǎn)析工具可以用來處理在進(jìn)行動態(tài)內(nèi)存分配時產(chǎn)生的缺陷。當(dāng)動態(tài)分配的內(nèi)存被錯誤地引用時,生的缺陷。當(dāng)動態(tài)分配的內(nèi)存被錯誤地引用時,產(chǎn)生的錯誤通常難以再現(xiàn),出現(xiàn)的失效難以追產(chǎn)生的錯誤通常難以再現(xiàn),出現(xiàn)的失效難以追蹤,使用內(nèi)存分析工具可以很好地檢測出這類蹤,使用內(nèi)存分析工具可以很好地檢測出這類缺陷。缺陷。 目前常用的內(nèi)存分析工具有軟件和硬件兩種:目前常用的內(nèi)存分析工具有軟件和硬件兩種:基于軟件的

54、內(nèi)存分析工具可能會對代碼的執(zhí)行性能基于軟件的內(nèi)存分析工具可能會對代碼的執(zhí)行性能帶來很大影響,從而影響系統(tǒng)的實(shí)時性;帶來很大影響,從而影響系統(tǒng)的實(shí)時性;基于硬件的內(nèi)存分析工具對系統(tǒng)性能影響小,但價基于硬件的內(nèi)存分析工具對系統(tǒng)性能影響小,但價格昂貴,并且只能在特定的環(huán)境中使用。格昂貴,并且只能在特定的環(huán)境中使用。 嵌入式軟件的測試嵌入式軟件的測試性能分析工具性能分析工具 嵌入式系統(tǒng)的性能通常是一個非常關(guān)鍵嵌入式系統(tǒng)的性能通常是一個非常關(guān)鍵的因素,開發(fā)人員一般需要對系統(tǒng)的某的因素,開發(fā)人員一般需要對系統(tǒng)的某些關(guān)鍵代碼進(jìn)行優(yōu)化來改進(jìn)性能。些關(guān)鍵代碼進(jìn)行優(yōu)化來改進(jìn)性能。 性能分析工具性能分析工具可以提供

55、有關(guān)數(shù)據(jù),幫助確定哪些任務(wù)消可以提供有關(guān)數(shù)據(jù),幫助確定哪些任務(wù)消耗了過多的執(zhí)行時間,從而可以決定如何優(yōu)耗了過多的執(zhí)行時間,從而可以決定如何優(yōu)化軟件,以獲得更好的時間性能?;浖垣@得更好的時間性能。引導(dǎo)開發(fā)人員發(fā)現(xiàn)在系統(tǒng)調(diào)用中存在的錯引導(dǎo)開發(fā)人員發(fā)現(xiàn)在系統(tǒng)調(diào)用中存在的錯誤以及程序結(jié)構(gòu)上的缺陷。誤以及程序結(jié)構(gòu)上的缺陷。 嵌入式軟件的測試嵌入式軟件的測試覆蓋分析工具覆蓋分析工具 在進(jìn)行白盒測試時,可以使用代碼覆蓋分析工在進(jìn)行白盒測試時,可以使用代碼覆蓋分析工具追蹤哪些代碼被執(zhí)行過具追蹤哪些代碼被執(zhí)行過 分析過程一般通過插樁來完成,插樁可以是在分析過程一般通過插樁來完成,插樁可以是在測試環(huán)境中嵌入硬件,也可以是在可執(zhí)行代碼測試環(huán)境中嵌入硬件,也可以是在可執(zhí)行代碼中加入軟件,或者是兩者的結(jié)合。中加入軟件,

溫馨提示

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

評論

0/150

提交評論