第10章 嵌入式系統軟件開發_第1頁
第10章 嵌入式系統軟件開發_第2頁
第10章 嵌入式系統軟件開發_第3頁
第10章 嵌入式系統軟件開發_第4頁
第10章 嵌入式系統軟件開發_第5頁
已閱讀5頁,還剩85頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第十章第十章嵌入式系統軟件的開發嵌入式系統軟件的開發第一節第一節嵌入式系統開發模式嵌入式系統開發模式概述概述處理器及硬件開發平臺的選定處理器及硬件開發平臺的選定操作系統選定操作系統選定開發環境選定開發環境選定10.1.1 嵌入式系統開發模式概述嵌入式系統開發模式概述 最大特點:最大特點:軟硬件綜合開發軟硬件綜合開發原因:原因: 嵌入式產品是軟硬件的結合體;嵌入式產品是軟硬件的結合體; 軟件針對硬件開發、固化,不能軟件針對硬件開發、固化,不能進行任意修改。進行任意修改。嵌嵌入入式式系系統統開開發發過過程程 系統定義系統定義符合要求符合要求硬件設計制作硬件設計制作軟件設計實現軟件設計實現軟硬件集成

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

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

4、重要環節。步驟是最重要環節。硬件設計實現硬件設計實現l 硬件概要設計硬件概要設計 根據系統總體設計,對硬件進行進一步描述。詳細確定根據系統總體設計,對硬件進行進一步描述。詳細確定各個功能模塊的詳細特性、內存大小、模塊關聯、總線等。各個功能模塊的詳細特性、內存大小、模塊關聯、總線等。要提供一份詳細的硬件功能框圖,每個模塊的輸入輸出等。要提供一份詳細的硬件功能框圖,每個模塊的輸入輸出等。l 硬件詳細設計硬件詳細設計 給出實現硬件功能的具體器件。設計其周邊電路,設計給出實現硬件功能的具體器件。設計其周邊電路,設計出電路的原理圖。生成出電路的原理圖。生成PCBPCB圖(圖(printed circui

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

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

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

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

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

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

11、素的集成。系統設計人員必須對系統元素素的集成。系統設計人員必須對系統元素需求恰當地分配功能和性能。實時性與功需求恰當地分配功能和性能。實時性與功能一樣重要。能一樣重要。 實時軟件的三個特征:實時軟件的三個特征: 1.1.實時系統是受資源約束的。時間是系統的實時系統是受資源約束的。時間是系統的首要資源。要在限定的時間內完成一個定首要資源。要在限定的時間內完成一個定義的任務。義的任務。2.2.實時系統是緊湊和復雜的。實時系統代碼量大,但是有關實時系統是緊湊和復雜的。實時系統代碼量大,但是有關時間的標準代碼只占很小部分。而這小部分代碼是最為復雜時間的標準代碼只占很小部分。而這小部分代碼是最為復雜的,

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

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

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

15、非模塊間的接口。模塊劃分和接口關系在任務設計階段確定的。模塊劃分和接口關系在任務設計階段確定的。 DARTS DARTS 是結構化分析是結構化分析/ /設計的擴展,給出設計的擴展,給出了劃分任務的方法,定義任務間的接口機制。了劃分任務的方法,定義任務間的接口機制。一個機器人控制器。控制一個機器人控制器。控制6 6個轉軸,和個轉軸,和I/OI/O傳傳感器交互作用。轉軸與感器交互作用。轉軸與I/OI/O由控制器控制。程由控制器控制。程序由控制面板操作啟動。序由控制面板操作啟動。上電斷電手動運行停止結束程序選擇1.1.需求分析與說明需求分析與說明 需求分析給出了系統功能需求:功能、輸入輸出、外部接口

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

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

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

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

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

21、2)10-22)5.5.模塊構筑模塊構筑進行每個模塊的詳細設計,然后進行編碼。進行每個模塊的詳細設計,然后進行編碼。6.6.任務與系統集成任務與系統集成最后將模塊連接成任務,然后將各任務連接成系統。最后將模塊連接成任務,然后將各任務連接成系統。嵌入式軟件開發工具嵌入式軟件開發工具 嵌入式軟件開發工具的嵌入式軟件開發工具的集成度集成度和和可用性可用性將直接關將直接關系到嵌入式系統的開發效系到嵌入式系統的開發效率。率。嵌入式軟件開發工具的分類嵌入式軟件開發工具的分類嵌入式軟件開發階段嵌入式軟件開發階段 嵌入式軟件開發工具的分類嵌入式軟件開發工具的分類根據不同的階段,嵌入式軟件開發工具根據不同的階段

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

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

24、入式OS的應用 部分驅動程序等與嵌入式OS無關的開發工具,用于開發: 基本的驅動程序 輔助硬件調試程序 系統軟件等嵌入式軟件的交叉開發環境嵌入式軟件的交叉開發環境 交叉開發環境交叉開發環境是指用于嵌入式軟件開發的是指用于嵌入式軟件開發的所有工具軟件的集合,一般包括:所有工具軟件的集合,一般包括:文本編輯器交叉編譯器交叉調試器仿真器下載器等 交叉開發環境由交叉開發環境由宿主機宿主機和和目標機目標機組成,宿組成,宿主機與目標機之間在主機與目標機之間在物理連接物理連接的基礎上建的基礎上建立起立起邏輯連接邏輯連接。交叉開發環境交叉開發環境目標機硬件目標機硬件目標機應用系統目標機應用系統 應用軟件 應用

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

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

27、邏輯連接的基礎。邏輯連接邏輯連接指宿主機與目標機間按某種通信協議建立起來的通信連接,目前逐步形成了一些通信協議的標準。嵌入式軟件實現階段的開發過程嵌入式軟件實現階段的開發過程 設計完成后,嵌入式軟件的開發進入實現階段,設計完成后,嵌入式軟件的開發進入實現階段,可分為三個步驟:生成、調試和固化運行。可分為三個步驟:生成、調試和固化運行。軟件的生成軟件的生成主要是在宿主機上進行,利用各種工具完成對應用程序的編輯、交叉編譯和鏈接工作,生成可供調試或固化的目標程序。調試調試是通過交叉調試器完成軟件的調試工作。調試完成后還需進行必要的測試工作。固化運行固化運行是先用一定的工具將應用程序固化到目標機上,然

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

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

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

31、Crash and Burn 最早的最早的嵌入式嵌入式應用軟應用軟件調試件調試方法。方法。在宿主機上編寫代碼在宿主機上編寫代碼反復檢查代碼,直到編譯反復檢查代碼,直到編譯通過,生成可執行程序通過,生成可執行程序將程序固化(將程序固化(Burn)到目標機的非易失)到目標機的非易失性存儲器性存儲器(E2PROM、FLASH等)中等)中在宿主機上反復檢查在宿主機上反復檢查碼,查找問題根源碼,查找問題根源改寫代碼改寫代碼啟動目標機運行,觀啟動目標機運行,觀察程序是否正常工作察程序是否正常工作NY結束結束ROM Monitor ROM MonitorROM Monitor是是被固化且運行在目標機上的被固

32、化且運行在目標機上的一段程序一段程序,負責監控目標機上被調試程序,負責監控目標機上被調試程序的運行,與宿主機端的調試器一起完成對的運行,與宿主機端的調試器一起完成對應用程序的調試。應用程序的調試。 調試器與調試器與ROM MonitorROM Monitor之間的通信遵循遠程之間的通信遵循遠程調試協議。調試協議。ROM Monitor調試方式調試方式調試器調試器Windows或其它桌或其它桌面操作系統面操作系統PC機等硬件機等硬件嵌入式嵌入式硬件硬件監控程監控程序序(ROM Monitor)被調試被調試程序程序宿主機宿主機目標機目標機邏輯上的連接邏輯上的連接物理上的連接物理上的連接ROM Mo

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

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

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

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

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

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

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

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

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

42、控制的目標機; ICEICE上的上的MemoryMemory也可以被映射到用戶的程序也可以被映射到用戶的程序空間,這樣即使目標機不存在的情形下也空間,這樣即使目標機不存在的情形下也可以進行代碼的調試。可以進行代碼的調試。宿主開發平臺目標平臺ICEICE調試結構調試結構 連接連接ICEICE和目標機時,一般是將目標機的和目標機時,一般是將目標機的CPUCPU取取下,而將下,而將ICEICE的的CPUCPU引出線接到目標機的引出線接到目標機的CPUCPU插插槽。槽。 用用ICEICE進行調試時,在進行調試時,在HostHost端運行的調試器通端運行的調試器通過過ICEICE來控制目標機上運行的程序

43、。來控制目標機上運行的程序。ICEICE功能特點功能特點同時支持同時支持軟斷點軟斷點和和硬件斷點硬件斷點的設置;的設置;設置各種復雜的斷點和觸發器;設置各種復雜的斷點和觸發器;實時跟蹤目標程序的運行,并可實現選擇性的實時跟蹤目標程序的運行,并可實現選擇性的跟蹤;跟蹤;支持支持“Time Stamp”Time Stamp”; 允許用戶設置允許用戶設置“Timer”Timer”; 提供提供“Shadow RAM”Shadow RAM”,能在不中斷被調試程序,能在不中斷被調試程序的運行下查看內存和變量即非干擾調試查詢。的運行下查看內存和變量即非干擾調試查詢。ICE適用于:適用于:調試實時的應用系統調

44、試實時的應用系統調試設備驅動程序調試設備驅動程序對硬件進行功能和性能的測試對硬件進行功能和性能的測試實時性能分析實時性能分析缺點:缺點:價格太昂貴,不利于團隊開發價格太昂貴,不利于團隊開發1)1)所仿所仿CPUCPU有限有限OCDOCDOCD(On Chip DebuggingOn Chip Debugging)是)是CPUCPU芯片提供芯片提供的一種調試功能(片上調試),可以認為的一種調試功能(片上調試),可以認為是一種廉價的是一種廉價的ICEICE功能:功能:OCDOCD的價格只有的價格只有ICEICE的的20%20%,但提供了,但提供了ICE 80%ICE 80%的功能。的功能。OCD調

45、試結構調試結構調試器調試器Windows或其它桌或其它桌面操作系統面操作系統PC機等硬件機等硬件被調試程序被調試程序OCD接接口口嵌入式嵌入式硬件硬件宿主機宿主機目標機目標機邏輯上的連接邏輯上的連接物理連接物理連接仿真器仿真器針形連接器針形連接器并口、串口并口、串口或網絡接口或網絡接口為特定處理為特定處理器而建造器而建造OCD調試方法調試方法將將CPUCPU的模式分為的模式分為一般模式一般模式和和調試模式調試模式一般模式下,一般模式下, CPUCPU從內存讀取指令執行從內存讀取指令執行1)1)調試模式下,調試模式下,CPUCPU首先從首先從調試端口調試端口讀取指令,通過調試讀取指令,通過調試端

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

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

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

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

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

51、仿真編譯仿真調試正確N仿真庫編譯鏈接Y運行庫結合了仿真的軟件開發過程結合了仿真的軟件開發過程Simulator 優點優點最大好處就是可以不用真正的目標機,可最大好處就是可以不用真正的目標機,可以在目標機環境并不存在的條件下開發目以在目標機環境并不存在的條件下開發目標機上的應用系統,并且在調試時可以利標機上的應用系統,并且在調試時可以利用用HostHost資源提供更詳細的錯誤診斷信息。資源提供更詳細的錯誤診斷信息。Simulator缺點缺點和實際的運行環境差別很大和實際的運行環境差別很大設備模擬的局限性較大設備模擬的局限性較大實時特性較差實時特性較差對對HostHost的資源要求較高的資源要求較

52、高適用范圍適用范圍對時間特性沒有嚴格要求、沒有特殊外設、只對時間特性沒有嚴格要求、沒有特殊外設、只需要驗證邏輯正確的應用程序。需要驗證邏輯正確的應用程序。嵌入式軟件的測試嵌入式軟件的測試 測試工具測試工具能夠用來輔助測試的工具,主要用來能夠用來輔助測試的工具,主要用來支持測試人員的工作,本身不能直接用來進行支持測試人員的工作,本身不能直接用來進行測試。測試工具一般都是通用工具,測試人員測試。測試工具一般都是通用工具,測試人員應該根據實際情況對它們進行適當的調整。應該根據實際情況對它們進行適當的調整。 嵌入式軟件測試中經常用到的測試工具有:嵌入式軟件測試中經常用到的測試工具有:內存分析工具性能分

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

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

55、有關數據,幫助確定哪些任務消可以提供有關數據,幫助確定哪些任務消耗了過多的執行時間,從而可以決定如何優耗了過多的執行時間,從而可以決定如何優化軟件,以獲得更好的時間性能。化軟件,以獲得更好的時間性能。引導開發人員發現在系統調用中存在的錯引導開發人員發現在系統調用中存在的錯誤以及程序結構上的缺陷。誤以及程序結構上的缺陷。 嵌入式軟件的測試嵌入式軟件的測試覆蓋分析工具覆蓋分析工具 在進行白盒測試時,可以使用代碼覆蓋分析工在進行白盒測試時,可以使用代碼覆蓋分析工具追蹤哪些代碼被執行過具追蹤哪些代碼被執行過 分析過程一般通過插樁來完成,插樁可以是在分析過程一般通過插樁來完成,插樁可以是在測試環境中嵌入硬件,也可以是在可執行代碼測試環境中嵌入硬件,也可以是在可執行代碼中加入軟件,或者是兩者的結合。中加入軟件,

溫馨提示

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

最新文檔

評論

0/150

提交評論