版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第十章第十章嵌入式系統(tǒng)軟件的開發(fā)嵌入式系統(tǒng)軟件的開發(fā)第一節(jié)第一節(jié)嵌入式系統(tǒng)開發(fā)模式嵌入式系統(tǒng)開發(fā)模式概述概述處理器及硬件開發(fā)平臺(tái)的選定處理器及硬件開發(fā)平臺(tái)的選定操作系統(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é)合體; 軟件針對(duì)硬件開發(fā)、固化,不能軟件針對(duì)硬件開發(fā)、固化,不能進(jìn)行任意修改。進(jìn)行任意修改。嵌嵌入入式式系系統(tǒng)統(tǒng)開開發(fā)發(fā)過過程程 系統(tǒng)定義系統(tǒng)定義符合要求符合要求硬件設(shè)計(jì)制作硬件設(shè)計(jì)制作軟件設(shè)計(jì)實(shí)現(xiàn)軟件設(shè)計(jì)實(shí)現(xiàn)軟硬件集成
2、軟硬件集成功能性能測(cè)試功能性能測(cè)試產(chǎn)品產(chǎn)品YesYes系統(tǒng)總體設(shè)計(jì)系統(tǒng)總體設(shè)計(jì)NoNo系統(tǒng)總體設(shè)計(jì)軟硬件劃分系統(tǒng)總體框架處理器選定操作系統(tǒng)選定開發(fā)環(huán)境選定硬件設(shè)計(jì)制作硬件設(shè)計(jì)制作硬件概要設(shè)計(jì)硬件概要設(shè)計(jì)硬件詳細(xì)設(shè)計(jì)硬件詳細(xì)設(shè)計(jì)硬件制作硬件制作硬件測(cè)試硬件測(cè)試功能模塊圖設(shè)計(jì)功能模塊圖設(shè)計(jì)邏輯電路圖設(shè)計(jì)邏輯電路圖設(shè)計(jì)PCBPCB設(shè)計(jì)與制作設(shè)計(jì)與制作PCBPCB 測(cè)試測(cè)試軟件設(shè)計(jì)實(shí)現(xiàn)軟件設(shè)計(jì)實(shí)現(xiàn)軟件概要設(shè)計(jì)軟件詳細(xì)設(shè)計(jì)軟件實(shí)現(xiàn)軟件測(cè)試圖中各個(gè)術(shù)語介紹:圖中各個(gè)術(shù)語介紹:l系統(tǒng)定義系統(tǒng)定義 此階段與通用軟件工程中的含義一致。是系統(tǒng)生命周期此階段與通用軟件工程中的含義一致。是系統(tǒng)生命周期最簡(jiǎn)短的階段。最
3、簡(jiǎn)短的階段。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è)計(jì)系統(tǒng)總體設(shè)計(jì) 確定嵌入式總體構(gòu)架,從功能上對(duì)軟硬件進(jìn)行劃分。選確定嵌入式總體構(gòu)架,從功能上對(duì)軟硬件進(jìn)行劃分。選擇嵌入式微處理器、是否使用嵌入式擇嵌入式微處理器、是否使用嵌入式OSOS,及,及OSOS種類等。這個(gè)種類等。這個(gè)步驟是最
4、重要環(huán)節(jié)。步驟是最重要環(huán)節(jié)。硬件設(shè)計(jì)實(shí)現(xiàn)硬件設(shè)計(jì)實(shí)現(xiàn)l 硬件概要設(shè)計(jì)硬件概要設(shè)計(jì) 根據(jù)系統(tǒng)總體設(shè)計(jì),對(duì)硬件進(jìn)行進(jìn)一步描述。詳細(xì)確定根據(jù)系統(tǒng)總體設(shè)計(jì),對(duì)硬件進(jìn)行進(jìn)一步描述。詳細(xì)確定各個(gè)功能模塊的詳細(xì)特性、內(nèi)存大小、模塊關(guān)聯(lián)、總線等。各個(gè)功能模塊的詳細(xì)特性、內(nèi)存大小、模塊關(guān)聯(lián)、總線等。要提供一份詳細(xì)的硬件功能框圖,每個(gè)模塊的輸入輸出等。要提供一份詳細(xì)的硬件功能框圖,每個(gè)模塊的輸入輸出等。l 硬件詳細(xì)設(shè)計(jì)硬件詳細(xì)設(shè)計(jì) 給出實(shí)現(xiàn)硬件功能的具體器件。設(shè)計(jì)其周邊電路,設(shè)計(jì)給出實(shí)現(xiàn)硬件功能的具體器件。設(shè)計(jì)其周邊電路,設(shè)計(jì)出電路的原理圖。生成出電路的原理圖。生成PCBPCB圖(圖(printed circui
5、t Boardprinted circuit Board。l 硬件制作硬件制作 根據(jù)根據(jù)PCBPCB加工出印刷電路板,焊接、裝配后調(diào)試,直到證加工出印刷電路板,焊接、裝配后調(diào)試,直到證明各個(gè)模塊連接無錯(cuò)誤為止。明各個(gè)模塊連接無錯(cuò)誤為止。l 硬件測(cè)試硬件測(cè)試 對(duì)制成的整體硬件進(jìn)行功能、性能測(cè)試,修改。直到完對(duì)制成的整體硬件進(jìn)行功能、性能測(cè)試,修改。直到完全達(dá)到設(shè)計(jì)要求為止。全達(dá)到設(shè)計(jì)要求為止。l 軟硬件集成軟硬件集成 將測(cè)試完的軟件系統(tǒng)裝入硬件系統(tǒng)中。進(jìn)行系將測(cè)試完的軟件系統(tǒng)裝入硬件系統(tǒng)中。進(jìn)行系統(tǒng)綜合測(cè)試。驗(yàn)證系統(tǒng)功能,必須正確無誤地實(shí)統(tǒng)綜合測(cè)試。驗(yàn)證系統(tǒng)功能,必須正確無誤地實(shí)現(xiàn)系統(tǒng)功能。然后
6、才能將軟件固化在硬件系統(tǒng)中現(xiàn)系統(tǒng)功能。然后才能將軟件固化在硬件系統(tǒng)中(EPROMEPROM)。復(fù)雜、費(fèi)時(shí)間。)。復(fù)雜、費(fèi)時(shí)間。l 功能性能測(cè)試功能性能測(cè)試 將系統(tǒng)在實(shí)踐中進(jìn)行檢驗(yàn)。如不能滿足要求,將系統(tǒng)在實(shí)踐中進(jìn)行檢驗(yàn)。如不能滿足要求,還要修改。最糟糕情況下還要回到系統(tǒng)總體設(shè)計(jì)還要修改。最糟糕情況下還要回到系統(tǒng)總體設(shè)計(jì)階段,進(jìn)行重新設(shè)計(jì)和實(shí)現(xiàn)。階段,進(jìn)行重新設(shè)計(jì)和實(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)集成、測(cè)試、集成、測(cè)試、驗(yàn)證驗(yàn)證嵌入式軟件開發(fā)
7、嵌入式軟件開發(fā)嵌入式硬件開發(fā)嵌入式硬件開發(fā)嵌入式系統(tǒng)嵌入式系統(tǒng)協(xié)同設(shè)計(jì)、測(cè)試、驗(yàn)證協(xié)同設(shè)計(jì)、測(cè)試、驗(yàn)證10.1.2 處理器及硬件開發(fā)平臺(tái)的選定處理器及硬件開發(fā)平臺(tái)的選定選擇依據(jù):選擇依據(jù): 應(yīng)用的類型及應(yīng)用的類型及I/OI/O接口接口 主頻及功耗主頻及功耗 對(duì)不同類型存儲(chǔ)器的支持對(duì)不同類型存儲(chǔ)器的支持 封裝封裝 產(chǎn)品生命力和廠家實(shí)力、技術(shù)支持及第三產(chǎn)品生命力和廠家實(shí)力、技術(shù)支持及第三方軟件的支持方軟件的支持 硬件開發(fā)平臺(tái)的選擇硬件開發(fā)平臺(tái)的選擇10.1.3 操作系統(tǒng)選定操作系統(tǒng)選定選擇依據(jù):選擇依據(jù): 選擇嵌入式選擇嵌入式OSOS的必要性的必要性 自建、購(gòu)買或使用開源軟件自建、購(gòu)買或使用開源軟
8、件 對(duì)嵌入式操作系統(tǒng)的功能、性能要求對(duì)嵌入式操作系統(tǒng)的功能、性能要求 與硬件平臺(tái)和開發(fā)工具的關(guān)系與硬件平臺(tái)和開發(fā)工具的關(guān)系 行業(yè)標(biāo)準(zhǔn)行業(yè)標(biāo)準(zhǔn) 技術(shù)支持技術(shù)支持 版稅或服務(wù)費(fèi)版稅或服務(wù)費(fèi)操作系統(tǒng)與硬件平臺(tái)的關(guān)系操作系統(tǒng)與硬件平臺(tái)的關(guān)系 操作系統(tǒng)應(yīng)支持選定的硬件平臺(tái)操作系統(tǒng)應(yīng)支持選定的硬件平臺(tái) 如果不支持,需考慮移植工作如果不支持,需考慮移植工作 不同類型嵌入式微處理器之間的移植:任務(wù)上下文切換、時(shí)鐘、中斷等 同類型微處理器但不同類型硬件板之間的移植:硬件接口及設(shè)備驅(qū)動(dòng)程序 工具是否能為基于特定操作系統(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)用框架 對(duì)操作系統(tǒng)的剪裁與配置 提供高級(jí)調(diào)試功能 提供配套的應(yīng)用邏輯分析工具、覆蓋測(cè)試工具等10.1.4 開發(fā)環(huán)境選定開發(fā)環(huán)境選定 對(duì)硬件平臺(tái)的支持對(duì)硬件平臺(tái)的支持 嵌入式軟件開發(fā)特點(diǎn)是交叉開發(fā)。交叉鏈接。和交叉嵌入式軟件開發(fā)特點(diǎn)是交叉開發(fā)。交叉鏈接。和交叉調(diào)試,開發(fā)工具要能支持選定的硬件平臺(tái),生成相應(yīng)微處調(diào)試,開發(fā)工具要能支持選定的硬件平臺(tái),生成相應(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,購(gòu)
10、買還是自編,或采用開源軟,購(gòu)買還是自編,或采用開源軟件。(公開源代碼的軟件)。購(gòu)買是需要付費(fèi)的,自編件。(公開源代碼的軟件)。購(gòu)買是需要付費(fèi)的,自編OSOS代價(jià)高、時(shí)代價(jià)高、時(shí)間長(zhǎng),但能獲得更好的性能。開源軟件需要自己改動(dòng),要經(jīng)過精密仔間長(zhǎng),但能獲得更好的性能。開源軟件需要自己改動(dòng),要經(jīng)過精密仔細(xì)的調(diào)試和驗(yàn)證無錯(cuò)(折中方案)細(xì)的調(diào)試和驗(yàn)證無錯(cuò)(折中方案) 。第二節(jié)第二節(jié)實(shí)時(shí)軟件分析設(shè)計(jì)方法實(shí)時(shí)軟件分析設(shè)計(jì)方法10.2 實(shí)時(shí)軟件分析設(shè)計(jì)方法實(shí)時(shí)軟件分析設(shè)計(jì)方法10.2.1 10.2.1 實(shí)時(shí)軟件的分析設(shè)計(jì)要求實(shí)時(shí)軟件的分析設(shè)計(jì)要求 一個(gè)實(shí)時(shí)系統(tǒng)是硬件、軟件和數(shù)據(jù)元一個(gè)實(shí)時(shí)系統(tǒng)是硬件、軟件和數(shù)據(jù)元
11、素的集成。系統(tǒng)設(shè)計(jì)人員必須對(duì)系統(tǒng)元素素的集成。系統(tǒng)設(shè)計(jì)人員必須對(duì)系統(tǒng)元素需求恰當(dāng)?shù)胤峙涔δ芎托阅?。?shí)時(shí)性與功需求恰當(dāng)?shù)胤峙涔δ芎托阅堋?shí)時(shí)性與功能一樣重要。能一樣重要。 實(shí)時(shí)軟件的三個(gè)特征:實(shí)時(shí)軟件的三個(gè)特征: 1.1.實(shí)時(shí)系統(tǒng)是受資源約束的。時(shí)間是系統(tǒng)的實(shí)時(shí)系統(tǒng)是受資源約束的。時(shí)間是系統(tǒng)的首要資源。要在限定的時(shí)間內(nèi)完成一個(gè)定首要資源。要在限定的時(shí)間內(nèi)完成一個(gè)定義的任務(wù)。義的任務(wù)。2.2.實(shí)時(shí)系統(tǒng)是緊湊和復(fù)雜的。實(shí)時(shí)系統(tǒng)代碼量大,但是有關(guān)實(shí)時(shí)系統(tǒng)是緊湊和復(fù)雜的。實(shí)時(shí)系統(tǒng)代碼量大,但是有關(guān)時(shí)間的標(biāo)準(zhǔn)代碼只占很小部分。而這小部分代碼是最為復(fù)雜時(shí)間的標(biāo)準(zhǔn)代碼只占很小部分。而這小部分代碼是最為復(fù)雜的,
12、有復(fù)雜的算法。的,有復(fù)雜的算法。3.3.在運(yùn)行中是不需要用戶參與的。實(shí)時(shí)軟件必須能自檢測(cè)到在運(yùn)行中是不需要用戶參與的。實(shí)時(shí)軟件必須能自檢測(cè)到導(dǎo)致故障的問題,在其對(duì)數(shù)據(jù)和控制環(huán)境造成破壞之前進(jìn)行導(dǎo)致故障的問題,在其對(duì)數(shù)據(jù)和控制環(huán)境造成破壞之前進(jìn)行處理和改正。處理和改正。 滿足系統(tǒng)響應(yīng)時(shí)間是實(shí)時(shí)系統(tǒng)設(shè)計(jì)的一項(xiàng)重要任務(wù)。滿足系統(tǒng)響應(yīng)時(shí)間是實(shí)時(shí)系統(tǒng)設(shè)計(jì)的一項(xiàng)重要任務(wù)。例:一個(gè)移動(dòng)作戰(zhàn)系統(tǒng)例:一個(gè)移動(dòng)作戰(zhàn)系統(tǒng)對(duì)敵目標(biāo)的探測(cè)、攻擊和接收上級(jí)命令的功能。對(duì)敵目標(biāo)的探測(cè)、攻擊和接收上級(jí)命令的功能。其中自身定位系統(tǒng)如下圖。用來確定系統(tǒng)在地球上的位置。其中自身定位系統(tǒng)如下圖。用來確定系統(tǒng)在地球上的位置。(確定物體
13、東西位置的為經(jīng)度,確定位置南北的為緯度)(確定物體東西位置的為經(jīng)度,確定位置南北的為緯度)采樣時(shí)間和任務(wù)計(jì)算時(shí)間:陀螺儀及三軸陀螺儀陀螺儀及三軸陀螺儀 陀螺儀是一個(gè)裝在能自由轉(zhuǎn)向的小框架上的小飛輪。當(dāng)飛輪繞自身陀螺儀是一個(gè)裝在能自由轉(zhuǎn)向的小框架上的小飛輪。當(dāng)飛輪繞自身對(duì)稱軸高速轉(zhuǎn)動(dòng)時(shí),無論如何改變框架的方位,其中心軸的空間取向始對(duì)稱軸高速轉(zhuǎn)動(dòng)時(shí),無論如何改變框架的方位,其中心軸的空間取向始終保持不變,角動(dòng)量守恒定律。如飛機(jī)上裝上三個(gè)定向指示儀,并使三終保持不變,角動(dòng)量守恒定律。如飛機(jī)上裝上三個(gè)定向指示儀,并使三個(gè)小飛輪的自轉(zhuǎn)軸相互垂直,飛行員就可以通過飛輪軸相對(duì)于機(jī)身的指?jìng)€(gè)小飛輪的自轉(zhuǎn)軸相互垂
14、直,飛行員就可以通過飛輪軸相對(duì)于機(jī)身的指向來確定飛機(jī)的空間取向。單軸的只能測(cè)量一個(gè)方向的量,一個(gè)系統(tǒng)需向來確定飛機(jī)的空間取向。單軸的只能測(cè)量一個(gè)方向的量,一個(gè)系統(tǒng)需三個(gè)陀螺儀,而三軸的一個(gè)陀螺儀就能替代三個(gè)單軸的。三個(gè)陀螺儀,而三軸的一個(gè)陀螺儀就能替代三個(gè)單軸的。10.2.2 DARTS 分析設(shè)計(jì)方法分析設(shè)計(jì)方法Design Algorithm for Real Time Systems 嵌入式多任務(wù)軟件開發(fā)階段,著眼于將嵌入式多任務(wù)軟件開發(fā)階段,著眼于將系統(tǒng)分為多個(gè)并發(fā)任務(wù),而非多個(gè)模塊。要系統(tǒng)分為多個(gè)并發(fā)任務(wù),而非多個(gè)模塊。要定義任務(wù)間的接口關(guān)系,而非模塊間的接口。定義任務(wù)間的接口關(guān)系,而
15、非模塊間的接口。模塊劃分和接口關(guān)系在任務(wù)設(shè)計(jì)階段確定的。模塊劃分和接口關(guān)系在任務(wù)設(shè)計(jì)階段確定的。 DARTS DARTS 是結(jié)構(gòu)化分析是結(jié)構(gòu)化分析/ /設(shè)計(jì)的擴(kuò)展,給出設(shè)計(jì)的擴(kuò)展,給出了劃分任務(wù)的方法,定義任務(wù)間的接口機(jī)制。了劃分任務(wù)的方法,定義任務(wù)間的接口機(jī)制。一個(gè)機(jī)器人控制器。控制一個(gè)機(jī)器人控制器。控制6 6個(gè)轉(zhuǎn)軸,和個(gè)轉(zhuǎn)軸,和I/OI/O傳傳感器交互作用。轉(zhuǎn)軸與感器交互作用。轉(zhuǎn)軸與I/OI/O由控制器控制。程由控制器控制。程序由控制面板操作啟動(dòng)。序由控制面板操作啟動(dòng)。上電斷電手動(dòng)運(yùn)行停止結(jié)束程序選擇1.1.需求分析與說明需求分析與說明 需求分析給出了系統(tǒng)功能需求:功能、輸入輸出、外部接口
16、需求、需求分析給出了系統(tǒng)功能需求:功能、輸入輸出、外部接口需求、性能等。狀態(tài)變遷圖說明了操作員與系統(tǒng)之間所有交互作用。結(jié)合操作性能等。狀態(tài)變遷圖說明了操作員與系統(tǒng)之間所有交互作用。結(jié)合操作手冊(cè)為用戶提供了操作步驟。手冊(cè)為用戶提供了操作步驟。2. 2. 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)是說明如何將系統(tǒng)分解成為多個(gè)任務(wù)。系統(tǒng)設(shè)計(jì)是說明如何將系統(tǒng)分解成為多個(gè)任務(wù)。(1 1)數(shù)據(jù)流分析)數(shù)據(jù)流分析 (Data Flow DiagramData Flow Diagram) 數(shù)據(jù)流圖有數(shù)據(jù)流圖有4 4種基本圖形符號(hào):種基本圖形符號(hào): 箭頭表箭頭表示數(shù)據(jù)流;示數(shù)據(jù)流; 圓或橢圓表述數(shù)據(jù)加工處理,有圓或橢圓表述數(shù)據(jù)加
17、工處理,有輸入和輸出;輸入和輸出; 表示數(shù)據(jù)存儲(chǔ);表示數(shù)據(jù)存儲(chǔ); 方框表方框表示數(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ù)流。確定主要功能。 每個(gè)數(shù)據(jù)流圖都包含變換圈,表示系統(tǒng)完成的每個(gè)數(shù)據(jù)流圖都包含變換圈,表示系統(tǒng)完成的功能,箭頭表示變換間的數(shù)據(jù)流動(dòng)、數(shù)據(jù)存儲(chǔ)區(qū),數(shù)功能,箭頭表示變換間的數(shù)據(jù)流動(dòng)、數(shù)據(jù)存儲(chǔ)區(qū),數(shù)據(jù)詞典據(jù)詞典。數(shù)據(jù)字典數(shù)據(jù)字典是指對(duì)數(shù)據(jù)的數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、處理邏輯、外部實(shí)體等進(jìn)行定義和描述,其目的是對(duì)數(shù)據(jù)流程圖中的各個(gè)元素做出詳細(xì)的說明。 (2
18、2) 劃分任務(wù)劃分任務(wù) 識(shí)別出系統(tǒng)的所有功能和它們之間的數(shù)據(jù)流之識(shí)別出系統(tǒng)的所有功能和它們之間的數(shù)據(jù)流之后,還要識(shí)別任務(wù)的并行性的功能。后,還要識(shí)別任務(wù)的并行性的功能。 將一個(gè)軟件系統(tǒng)分解成并行任務(wù),主要考慮系將一個(gè)軟件系統(tǒng)分解成并行任務(wù),主要考慮系統(tǒng)中功能的異步性。分析數(shù)據(jù)流圖中的變換,來確統(tǒng)中功能的異步性。分析數(shù)據(jù)流圖中的變換,來確定那些變換可以并行處理,那些變換本質(zhì)上是順序定那些變換可以并行處理,那些變換本質(zhì)上是順序的。通過這些方法劃分任務(wù),一個(gè)數(shù)據(jù)的變換對(duì)應(yīng)的。通過這些方法劃分任務(wù),一個(gè)數(shù)據(jù)的變換對(duì)應(yīng)一個(gè)任務(wù),或者一個(gè)任務(wù)包括幾個(gè)變換。一個(gè)任務(wù),或者一個(gè)任務(wù)包括幾個(gè)變換。 一個(gè)變換是一
19、個(gè)獨(dú)立的任務(wù),還是和其他接個(gè)一個(gè)變換是一個(gè)獨(dú)立的任務(wù),還是和其他接個(gè)變換一起組成一個(gè)任務(wù),這要決定于:變換一起組成一個(gè)任務(wù),這要決定于:1 1) I/OI/O依依賴性;賴性;2 2)功能和時(shí)間關(guān)鍵性;)功能和時(shí)間關(guān)鍵性;3 3)計(jì)算需求;)計(jì)算需求;4 4)功)功能內(nèi)聚,能內(nèi)聚,5 5)時(shí)間內(nèi)聚;)時(shí)間內(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)。 這兩個(gè)模塊是由任務(wù)來
20、調(diào)用的,稱為系這兩個(gè)模塊是由任務(wù)來調(diào)用的,稱為系統(tǒng)調(diào)用。在調(diào)用統(tǒng)調(diào)用。在調(diào)用TCMTCM過程中要依靠過程中要依靠TSMTSM使兩個(gè)使兩個(gè)任務(wù)同步和互斥,來保障數(shù)據(jù)的一致性和正任務(wù)同步和互斥,來保障數(shù)據(jù)的一致性和正確性。確性。3. 3. 實(shí)例(略)實(shí)例(略)4.4.任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì)任務(wù)間接口設(shè)計(jì)好之后,就要建立各個(gè)任務(wù)的結(jié)構(gòu)。任務(wù)間接口設(shè)計(jì)好之后,就要建立各個(gè)任務(wù)的結(jié)構(gòu)。一個(gè)任務(wù)就是一個(gè)程序序列。畫出各個(gè)任務(wù)的數(shù)據(jù)一個(gè)任務(wù)就是一個(gè)程序序列。畫出各個(gè)任務(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)行每個(gè)模塊的詳細(xì)設(shè)計(jì),然后進(jìn)行編碼。進(jìn)行每個(gè)模塊的詳細(xì)設(shè)計(jì),然后進(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è)計(jì)工具(Software Design Tools)編碼、調(diào)試工具(Coding Tools)測(cè)試工具(Testing Tools)配置管理工具、維護(hù)工具等主要嵌入式軟件開發(fā)工具產(chǎn)品主要嵌入式軟件開發(fā)工具產(chǎn)品RequirementAnalysisSoftwareDesignCodingTestReleasePhasesTAUObjectGeodeRational Rose RealTimeRhapsodyTornadopRISM+SpectraWin CE PlatformBuil
23、derCodeWarriorXray DebuggerLogiscopeCodeTESTLambdaTOOL嵌入式軟件開發(fā)工具的分類嵌入式軟件開發(fā)工具的分類 嵌入式軟件的開發(fā)可分為以下幾種嵌入式軟件的開發(fā)可分為以下幾種 :編寫簡(jiǎn)單的板級(jí)測(cè)試軟件,主要是輔助硬件的調(diào)試 開發(fā)基本的驅(qū)動(dòng)程序 開發(fā)特定嵌入式操作系統(tǒng)的驅(qū)動(dòng)程序(板級(jí)支持包) 開發(fā)嵌入式系統(tǒng)軟件,如嵌入式操作系統(tǒng)等 開發(fā)應(yīng)用軟件嵌入式軟件開發(fā)工具的分類嵌入式軟件開發(fā)工具的分類 從以上嵌入式軟件開發(fā)分類來看,嵌入式從以上嵌入式軟件開發(fā)分類來看,嵌入式軟件開發(fā)工具可以分為:軟件開發(fā)工具可以分為:與嵌入式OS相關(guān)的開發(fā)工具,用于開發(fā): 基于嵌
24、入式OS的應(yīng)用 部分驅(qū)動(dòng)程序等與嵌入式OS無關(guān)的開發(fā)工具,用于開發(fā): 基本的驅(qū)動(dòng)程序 輔助硬件調(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)行平臺(tái)TargetTarget開發(fā)平臺(tái)Host嵌入式軟件的交叉開發(fā)環(huán)境嵌入式軟件的交叉開發(fā)環(huán)境 宿主機(jī)(宿主機(jī)(HostHost) :是用于開發(fā)嵌入式系統(tǒng)的計(jì)算:是用于開發(fā)嵌入式系統(tǒng)的計(jì)算機(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è)計(jì)完成后,嵌入式軟件的開發(fā)進(jìn)入實(shí)現(xiàn)階段,設(shè)計(jì)完成后,嵌入式軟件的開發(fā)進(jìn)入實(shí)現(xiàn)階段,可分為三個(gè)步驟:生成、調(diào)試和固化運(yùn)行。可分為三個(gè)步驟:生成、調(diào)試和固化運(yùn)行。軟件的生成軟件的生成主要是在宿主機(jī)上進(jìn)行,利用各種工具完成對(duì)應(yīng)用程序的編輯、交叉編譯和鏈接工作,生成可供調(diào)試或固化的目標(biāo)程序。調(diào)試調(diào)試是通過交叉調(diào)試器完成軟件的調(diào)試工作。調(diào)試完成后還需進(jìn)行必要的測(cè)試工作。固化運(yùn)行固化運(yùn)行是先用一定的工具將應(yīng)用程序固化到目標(biāo)機(jī)上,然
28、后啟動(dòng)目標(biāo)機(jī),在沒有任何工具干預(yù)的情況下應(yīng)用程序能自動(dòng)地啟動(dòng)運(yùn)行。嵌入式軟件生成階段嵌入式軟件生成階段 三個(gè)過程三個(gè)過程 源代碼程序的編寫 編譯成各個(gè)目標(biāo)模塊 鏈接成可供下載調(diào)試或固化的目標(biāo)程序編輯器編輯器交叉編交叉編譯器譯器交叉鏈交叉鏈接器接器源程序源程序目標(biāo)目標(biāo)模塊模塊可供調(diào)可供調(diào)試試/ /固固化化庫文件庫文件交叉編譯交叉編譯 把在宿主機(jī)上編寫的高級(jí)語言程序編譯成把在宿主機(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ī)上的計(jì)算機(jī)上調(diào)試器和被調(diào)試程序運(yùn)行在同一調(diào)試器和被調(diào)試程序運(yùn)行在同一臺(tái)計(jì)算機(jī)上臺(tái)計(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ī)的非易失性存儲(chǔ)器性存儲(chǔ)器(E2PROM、FLASH等)中等)中在宿主機(jī)上反復(fù)檢查在宿主機(jī)上反復(fù)檢查碼,查找問題根源碼,查找問題根源改寫代碼改寫代碼啟動(dòng)目標(biāo)機(jī)運(yùn)行,觀啟動(dòng)目標(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)試器一起完成對(duì)的運(yùn)行,與宿主機(jī)端的調(diào)試器一起完成對(duì)應(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,它對(duì)目標(biāo)機(jī)進(jìn)行一些必要的初始,它對(duì)目標(biāo)機(jī)進(jìn)行一些必要的初始化化 初始化要求的外圍設(shè)備,如最基本的串口和用于內(nèi)存刷新的系統(tǒng)計(jì)時(shí)器芯片; 初始化用于下載映像的內(nèi)存系統(tǒng); 初始化中斷控制器和安裝中斷處理程序。 初始化自己的程序空間初始化自己的程序空間 等待宿主機(jī)端的命令等待宿主機(jī)端的命令ROM Monitor ROM MonitorROM Monitor能配合調(diào)試器完成:能配合調(diào)試器完成: 程序映像下載 對(duì)目標(biāo)機(jī)系統(tǒng)內(nèi)存的讀寫 對(duì)寄存器的讀寫 設(shè)置和清除不同類型的斷點(diǎn) 單步執(zhí)
34、行指令 復(fù)位系統(tǒng) 等調(diào)試功能ROM Monitor調(diào)試過程調(diào)試過程(1 1)啟動(dòng)目標(biāo)機(jī),監(jiān)控器掌握對(duì)目標(biāo)機(jī)的控制,)啟動(dòng)目標(biāo)機(jī),監(jiān)控器掌握對(duì)目標(biāo)機(jī)的控制,等待和調(diào)試器建立連接;等待和調(diào)試器建立連接;(2 2)啟動(dòng)調(diào)試器,并和監(jiān)控器建立起通信連接;)啟動(dòng)調(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ī)上的各種異常來獲取對(duì)目標(biāo)機(jī)的控制,
35、將命令執(zhí)行結(jié)果回傳異常來獲取對(duì)目標(biāo)機(jī)的控制,將命令執(zhí)行結(jié)果回傳給調(diào)試器;給調(diào)試器; (5 5)如果程序有問題,在調(diào)試器的幫助下定位錯(cuò))如果程序有問題,在調(diào)試器的幫助下定位錯(cuò)誤;修改之后再重新編譯鏈接并下載程序,開始新誤;修改之后再重新編譯鏈接并下載程序,開始新的調(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ā)周期,降低成本;降低成本;簡(jiǎn)單、方便;簡(jiǎn)單、方便;可擴(kuò)展性強(qiáng),可支持許多高級(jí)調(diào)試功能;可擴(kuò)展性強(qiáng),可支持許多高級(jí)調(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時(shí),應(yīng)用程序不響應(yīng)外部的時(shí),應(yīng)用程序不響應(yīng)外部的中斷,因此不便調(diào)試有時(shí)間特性的程序;中斷,因此不便調(diào)試有時(shí)間特性的程序;某些調(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)常會(huì)遭遇缺少目嵌入式應(yīng)用的開發(fā)經(jīng)常會(huì)遭遇缺少目標(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í)時(shí)地映射到目標(biāo)機(jī)的的地址可以實(shí)時(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存儲(chǔ)空間,而且存儲(chǔ)空間,而且由于其通常要和由于其通常要和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)部的信號(hào)輸出到被控制的目標(biāo)機(jī);部的信號(hào)輸出到被
42、控制的目標(biāo)機(jī); ICEICE上的上的MemoryMemory也可以被映射到用戶的程序也可以被映射到用戶的程序空間,這樣即使目標(biāo)機(jī)不存在的情形下也空間,這樣即使目標(biāo)機(jī)不存在的情形下也可以進(jìn)行代碼的調(diào)試。可以進(jìn)行代碼的調(diào)試。宿主開發(fā)平臺(tái)目標(biāo)平臺(tái)ICEICE調(diào)試結(jié)構(gòu)調(diào)試結(jié)構(gòu) 連接連接ICEICE和目標(biāo)機(jī)時(shí),一般是將目標(biāo)機(jī)的和目標(biāo)機(jī)時(shí),一般是將目標(biāo)機(jī)的CPUCPU取取下,而將下,而將ICEICE的的CPUCPU引出線接到目標(biāo)機(jī)的引出線接到目標(biāo)機(jī)的CPUCPU插插槽。槽。 用用ICEICE進(jìn)行調(diào)試時(shí),在進(jìn)行調(diào)試時(shí),在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)同時(shí)支持同時(shí)支持軟斷點(diǎn)軟斷點(diǎn)和和硬件斷點(diǎn)硬件斷點(diǎn)的設(shè)置;的設(shè)置;設(shè)置各種復(fù)雜的斷點(diǎn)和觸發(fā)器;設(shè)置各種復(fù)雜的斷點(diǎn)和觸發(fā)器;實(shí)時(shí)跟蹤目標(biāo)程序的運(yùn)行,并可實(shí)現(xiàn)選擇性的實(shí)時(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í)時(shí)的應(yīng)用系統(tǒng)調(diào)
44、試實(shí)時(shí)的應(yīng)用系統(tǒng)調(diào)試設(shè)備驅(qū)動(dòng)程序調(diào)試設(shè)備驅(qū)動(dòng)程序?qū)τ布M(jìn)行功能和性能的測(cè)試對(duì)硬件進(jìn)行功能和性能的測(cè)試實(shí)時(shí)性能分析實(shí)時(shí)性能分析缺點(diǎn):缺點(diǎn):價(jià)格太昂貴,不利于團(tuán)隊(duì)開發(fā)價(jià)格太昂貴,不利于團(tuán)隊(duì)開發(fā)1)1)所仿所仿CPUCPU有限有限OCDOCDOCD(On Chip DebuggingOn Chip Debugging)是)是CPUCPU芯片提供芯片提供的一種調(diào)試功能(片上調(diào)試),可以認(rèn)為的一種調(diào)試功能(片上調(diào)試),可以認(rèn)為是一種廉價(jià)的是一種廉價(jià)的ICEICE功能:功能:OCDOCD的價(jià)格只有的價(jià)格只有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功能;功能;精確計(jì)量程序的執(zhí)行時(shí)間;精確計(jì)量程序的執(zhí)行時(shí)間;1)1)提供時(shí)序分析功能。提
47、供時(shí)序分析功能。OCD缺點(diǎn):缺點(diǎn):調(diào)試的實(shí)時(shí)性不如調(diào)試的實(shí)時(shí)性不如ICEICE;不支持非干擾調(diào)試查詢;不支持非干擾調(diào)試查詢;1)1)CPUCPU必需具有必需具有OCDOCD功能。功能。各種各種OCD仿真器實(shí)例仿真器實(shí)例邊界掃描技術(shù)(邊界掃描技術(shù)(JTAGJTAG) JTAGJTAG標(biāo)準(zhǔn)測(cè)試訪問接口與邊界掃描結(jié)構(gòu)標(biāo)準(zhǔn)測(cè)試訪問接口與邊界掃描結(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)所采納,是面向用戶的測(cè)試接口。所采納,是面向用戶的測(cè)試接口。 該接口一般由該接口一般由4 4個(gè)引腳組成:個(gè)引腳組成:測(cè)試數(shù)據(jù)輸入(TDI)測(cè)試數(shù)據(jù)輸出(TDO)測(cè)試時(shí)鐘(TCK)測(cè)試模式選擇引腳(TMS)異步測(cè)試復(fù)位引腳(TRST,可選)邊界掃描技術(shù)(邊界掃描技術(shù)(JTAGJTAG) 優(yōu)點(diǎn):優(yōu)點(diǎn):可以通過邊界掃描操作測(cè)試整個(gè)板的電氣連接,特別為表面貼元件提供方便; 各個(gè)引腳信號(hào)的采樣,并可強(qiáng)制引腳輸出用以測(cè)試外圍芯片; 可以軟件下載、執(zhí)行、調(diào)試和控制,為復(fù)雜的實(shí)時(shí)跟蹤調(diào)試提供路徑; 可以進(jìn)行多內(nèi)核和多處理器的板級(jí)和芯片級(jí)的調(diào)試,通過串接 ,為芯片制造商提供芯片生
49、產(chǎn)、測(cè)試途徑; 不占用系統(tǒng)資源,能夠調(diào)試沒有外部總線的芯片,代價(jià)小。 邊界掃描技術(shù)(邊界掃描技術(shù)(JTAGJTAG) 缺點(diǎn):缺點(diǎn):通過串口依次傳遞數(shù)據(jù),速度比較慢; 只能進(jìn)行軟件斷點(diǎn)級(jí)別的調(diào)試; 不能完成實(shí)時(shí)跟蹤和多種事件觸發(fā)等復(fù)雜調(diào)試功能。Simulator交叉開發(fā)方式存在如下缺點(diǎn):交叉開發(fā)方式存在如下缺點(diǎn):硬件支持硬件支持 必須有目標(biāo)機(jī)或評(píng)估板必須有目標(biāo)機(jī)或評(píng)估板 易使用性易使用性普通編程人員不熟悉普通編程人員不熟悉 廉價(jià)性廉價(jià)性成本高成本高 可移植性、可擴(kuò)展性可移植性、可擴(kuò)展性不高不高 團(tuán)隊(duì)開發(fā)團(tuán)隊(duì)開發(fā)較難較難 開發(fā)周期開發(fā)周期較長(zhǎng)較長(zhǎng)Simulator (全軟件模擬器)(全軟件模擬器)
50、 一種軟件模擬器,在宿主機(jī)上創(chuàng)建一個(gè)虛擬的一種軟件模擬器,在宿主機(jī)上創(chuàng)建一個(gè)虛擬的目標(biāo)機(jī)環(huán)境,再將應(yīng)用系統(tǒng)下載到這個(gè)虛擬目目標(biāo)機(jī)環(huán)境,再將應(yīng)用系統(tǒng)下載到這個(gè)虛擬目標(biāo)機(jī)上運(yùn)行調(diào)試。標(biāo)機(jī)上運(yùn)行調(diào)試。 軟件模擬的對(duì)象軟件模擬的對(duì)象仿真處理器仿真外設(shè)仿真環(huán)境軟件仿真的級(jí)別軟件仿真的級(jí)別指令級(jí)仿真開發(fā)API級(jí)仿真開發(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è)計(jì)編碼測(cè)試運(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)試時(shí)可以利標(biāo)機(jī)上的應(yīng)用系統(tǒng),并且在調(diào)試時(shí)可以利用用HostHost資源提供更詳細(xì)的錯(cuò)誤診斷信息。資源提供更詳細(xì)的錯(cuò)誤診斷信息。Simulator缺點(diǎn)缺點(diǎn)和實(shí)際的運(yùn)行環(huán)境差別很大和實(shí)際的運(yùn)行環(huán)境差別很大設(shè)備模擬的局限性較大設(shè)備模擬的局限性較大實(shí)時(shí)特性較差實(shí)時(shí)特性較差對(duì)對(duì)HostHost的資源要求較高的資源要求較
52、高適用范圍適用范圍對(duì)時(shí)間特性沒有嚴(yán)格要求、沒有特殊外設(shè)、只對(duì)時(shí)間特性沒有嚴(yán)格要求、沒有特殊外設(shè)、只需要驗(yàn)證邏輯正確的應(yīng)用程序。需要驗(yàn)證邏輯正確的應(yīng)用程序。嵌入式軟件的測(cè)試嵌入式軟件的測(cè)試 測(cè)試工具測(cè)試工具能夠用來輔助測(cè)試的工具,主要用來能夠用來輔助測(cè)試的工具,主要用來支持測(cè)試人員的工作,本身不能直接用來進(jìn)行支持測(cè)試人員的工作,本身不能直接用來進(jìn)行測(cè)試。測(cè)試工具一般都是通用工具,測(cè)試人員測(cè)試。測(cè)試工具一般都是通用工具,測(cè)試人員應(yīng)該根據(jù)實(shí)際情況對(duì)它們進(jìn)行適當(dāng)?shù)恼{(diào)整。應(yīng)該根據(jù)實(shí)際情況對(duì)它們進(jìn)行適當(dāng)?shù)恼{(diào)整。 嵌入式軟件測(cè)試中經(jīng)常用到的測(cè)試工具有:嵌入式軟件測(cè)試中經(jīng)常用到的測(cè)試工具有:內(nèi)存分析工具性能分
53、析工具覆蓋分析工具缺陷跟蹤工具等 嵌入式軟件的測(cè)試嵌入式軟件的測(cè)試內(nèi)存分析工具內(nèi)存分析工具 嵌入式系統(tǒng)的內(nèi)存資源通常是受限的,內(nèi)存分嵌入式系統(tǒng)的內(nèi)存資源通常是受限的,內(nèi)存分析工具可以用來處理在進(jìn)行動(dòng)態(tài)內(nèi)存分配時(shí)產(chǎn)析工具可以用來處理在進(jìn)行動(dòng)態(tài)內(nèi)存分配時(shí)產(chǎn)生的缺陷。當(dāng)動(dòng)態(tài)分配的內(nèi)存被錯(cuò)誤地引用時(shí),生的缺陷。當(dāng)動(dòng)態(tài)分配的內(nèi)存被錯(cuò)誤地引用時(shí),產(chǎn)生的錯(cuò)誤通常難以再現(xiàn),出現(xiàn)的失效難以追產(chǎn)生的錯(cuò)誤通常難以再現(xiàn),出現(xiàn)的失效難以追蹤,使用內(nèi)存分析工具可以很好地檢測(cè)出這類蹤,使用內(nèi)存分析工具可以很好地檢測(cè)出這類缺陷。缺陷。 目前常用的內(nèi)存分析工具有軟件和硬件兩種:目前常用的內(nèi)存分析工具有軟件和硬件兩種:基于軟件的
54、內(nèi)存分析工具可能會(huì)對(duì)代碼的執(zhí)行性能基于軟件的內(nèi)存分析工具可能會(huì)對(duì)代碼的執(zhí)行性能帶來很大影響,從而影響系統(tǒng)的實(shí)時(shí)性;帶來很大影響,從而影響系統(tǒng)的實(shí)時(shí)性;基于硬件的內(nèi)存分析工具對(duì)系統(tǒng)性能影響小,但價(jià)基于硬件的內(nèi)存分析工具對(duì)系統(tǒng)性能影響小,但價(jià)格昂貴,并且只能在特定的環(huán)境中使用。格昂貴,并且只能在特定的環(huán)境中使用。 嵌入式軟件的測(cè)試嵌入式軟件的測(cè)試性能分析工具性能分析工具 嵌入式系統(tǒng)的性能通常是一個(gè)非常關(guān)鍵嵌入式系統(tǒng)的性能通常是一個(gè)非常關(guān)鍵的因素,開發(fā)人員一般需要對(duì)系統(tǒng)的某的因素,開發(fā)人員一般需要對(duì)系統(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í)行時(shí)間,從而可以決定如何優(yōu)耗了過多的執(zhí)行時(shí)間,從而可以決定如何優(yōu)化軟件,以獲得更好的時(shí)間性能。化軟件,以獲得更好的時(shí)間性能。引導(dǎo)開發(fā)人員發(fā)現(xiàn)在系統(tǒng)調(diào)用中存在的錯(cuò)引導(dǎo)開發(fā)人員發(fā)現(xiàn)在系統(tǒng)調(diào)用中存在的錯(cuò)誤以及程序結(jié)構(gòu)上的缺陷。誤以及程序結(jié)構(gòu)上的缺陷。 嵌入式軟件的測(cè)試嵌入式軟件的測(cè)試覆蓋分析工具覆蓋分析工具 在進(jìn)行白盒測(cè)試時(shí),可以使用代碼覆蓋分析工在進(jìn)行白盒測(cè)試時(shí),可以使用代碼覆蓋分析工具追蹤哪些代碼被執(zhí)行過具追蹤哪些代碼被執(zhí)行過 分析過程一般通過插樁來完成,插樁可以是在分析過程一般通過插樁來完成,插樁可以是在測(cè)試環(huán)境中嵌入硬件,也可以是在可執(zhí)行代碼測(cè)試環(huán)境中嵌入硬件,也可以是在可執(zhí)行代碼中加入軟件,或者是兩者的結(jié)合。中加入軟件,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024酒店土建工程合同風(fēng)險(xiǎn)評(píng)估與控制合同
- 2025年度旅行社與旅游電商平臺(tái)合作合同4篇
- 2024版影視后期制作技術(shù)服務(wù)合同
- 二零二五年房屋租賃合同中水電費(fèi)結(jié)算細(xì)則3篇
- 全國(guó)青島版信息技術(shù)九年級(jí)下冊(cè)第1單元第2課《信息技術(shù)綜述》說課稿001
- 個(gè)人與公司之間的特許經(jīng)營(yíng)協(xié)議(2024版)3篇
- 二零二五年酒店客房租賃合同附帶酒店客房升級(jí)改造協(xié)議3篇
- 二零二五年度海沙采購(gòu)運(yùn)輸綜合服務(wù)合同3篇
- 二零二四年度三方貿(mào)易代理采購(gòu)合同范本:金屬原材料采購(gòu)3篇
- 二零二五年度籃球場(chǎng)場(chǎng)地翻新與體育設(shè)備更新?lián)Q代合同3篇
- 2024-2024年上海市高考英語試題及答案
- 注射泵管理規(guī)范及工作原理
- 山東省濟(jì)南市2023-2024學(xué)年高二上學(xué)期期末考試化學(xué)試題 附答案
- 大唐電廠采購(gòu)合同范例
- 國(guó)潮風(fēng)中國(guó)風(fēng)2025蛇年大吉蛇年模板
- GB/T 18724-2024印刷技術(shù)印刷品與印刷油墨耐各種試劑性的測(cè)定
- IEC 62368-1標(biāo)準(zhǔn)解讀-中文
- 15J403-1-樓梯欄桿欄板(一)
- 2024年中考語文名句名篇默寫分類匯編(解析版全國(guó))
- 新煤礦防治水細(xì)則解讀
- 醫(yī)院領(lǐng)導(dǎo)班子集體議事決策制度
評(píng)論
0/150
提交評(píng)論