浙江大學(xué)計(jì)算機(jī)學(xué)院陳文智2005年3月.ppt_第1頁(yè)
浙江大學(xué)計(jì)算機(jī)學(xué)院陳文智2005年3月.ppt_第2頁(yè)
浙江大學(xué)計(jì)算機(jī)學(xué)院陳文智2005年3月.ppt_第3頁(yè)
浙江大學(xué)計(jì)算機(jī)學(xué)院陳文智2005年3月.ppt_第4頁(yè)
浙江大學(xué)計(jì)算機(jī)學(xué)院陳文智2005年3月.ppt_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

浙江大學(xué)計(jì)算機(jī)學(xué)院 陳文智 2005年3月,(4)開發(fā)環(huán)境及開發(fā)工具,2,嵌入式系統(tǒng)開發(fā)周期長(zhǎng)和產(chǎn)品需要及時(shí)上市成為矛盾。 選擇是一個(gè)問(wèn)題,學(xué)習(xí)掌握嵌入式系統(tǒng)結(jié)構(gòu)及其應(yīng)用更需要時(shí)間。 以開發(fā)工具和技術(shù)咨詢?yōu)榛A(chǔ) 的整體解決方案是迫切需要的。,3,1. 開發(fā)環(huán)境,嵌入式系統(tǒng),是指嵌入于宿主設(shè)備,智能地完成宿主設(shè)備功能的計(jì)算/控制系統(tǒng)。 嵌入式系統(tǒng)開發(fā)環(huán)境,是以開發(fā)嵌入式系統(tǒng)為目的的工程開發(fā)環(huán)境。包括辦公環(huán)境支持、軟件支持、硬件設(shè)備支持。 軟件支持,指集成開發(fā)環(huán)境與軟件模擬器等。 硬件支持,指仿真器、目標(biāo)板、示波器、燒錄器等。,4,1.1集成開發(fā)系統(tǒng),集成開發(fā)系統(tǒng)提供高效明晰的圖形化的嵌入式應(yīng)用軟件開發(fā)平臺(tái),包括一整套完備的面向嵌入式系統(tǒng)的開發(fā)和調(diào)試工具 。 一般包括編輯器、編譯器、連接器、調(diào)試器、工程管理器和底層調(diào)試接口設(shè)備(BDM/JTAG仿真器)等,5,1.1.1編譯器,嵌入式語(yǔ)言: ASM/Ada/C/C+/EC/Java/OP/STAPL EC+標(biāo)準(zhǔn) 95年初在日本成立的Embedded C+技術(shù)委員,6,嵌入式c/c+編譯器 交叉編譯能力:能夠在pc/unix平臺(tái)上生成其他cpu平臺(tái)目標(biāo)代碼 連接/定址器:因?yàn)闊o(wú)法提供dos/windows的動(dòng)態(tài)定位執(zhí)行能力。嵌入式一般需要目標(biāo)代碼靜態(tài)定位到具體地址,定址器完成這一工作。 啟動(dòng)代碼:初始化處理器和c語(yǔ)言堆棧區(qū)等環(huán)境的匯編碼。 EC+:針對(duì)嵌入式的一些實(shí)時(shí)要求等特點(diǎn),對(duì)標(biāo)準(zhǔn)C+語(yǔ)言規(guī)范的修改擴(kuò)充。,嵌入式C/C+開發(fā)環(huán)境,7,嵌入式C/C+開發(fā)環(huán)境,提供目標(biāo)調(diào)試(remote/rom monitor)能力. 另外還有其他一些地方需要注意,如I/O庫(kù),大小尾段等。 主流嵌入式編譯器: GNU 、CADUL 、CodeWarrior、GreenHill、Diab/SDS、IAR、BC/VC+Toolkit.等,8,(1)早期的Franklin Software Inc. 的A51/C51與Keil Software Inc.的 CA51/CA251/CA166赫赫有名。 (2)TASKING Inc. 的C/C+/EC+ 編譯器 (3)CAD-UL Inc.提供一整套工具開發(fā)X86和68K 。 (4)Wind River Systems, Inc.的Diab C/C+ Compiler Suite,應(yīng)用于pSOS系統(tǒng)。 (5)IBM 的High C/C+ Compiler ,針對(duì)Power PC。 (6)GNU組織的免費(fèi)編譯器GCC,9,1.1.2 調(diào)試器,遠(yuǎn)程調(diào)試 調(diào)試器還是運(yùn)行于通用桌面操作系統(tǒng)的應(yīng)用程序,被調(diào)試的程序則運(yùn)行于基于特定硬件平臺(tái)的嵌入式操作系統(tǒng)(目標(biāo)操作系統(tǒng))。,10,問(wèn)題:,調(diào)試器與被調(diào)試程序如何通信 被調(diào)試程序產(chǎn)生異常如何及時(shí)通知調(diào)試器 調(diào)試器如何控制、訪問(wèn)被調(diào)試程序 調(diào)試器如何識(shí)別有關(guān)被調(diào)試程序的多任務(wù)信息并控制某一特定任務(wù) 調(diào)試器如何處理某些與目標(biāo)硬件平臺(tái)相關(guān)的信息(如目標(biāo)平臺(tái)的寄存器信息、機(jī)器代碼的反匯編等)。,11,兩種遠(yuǎn)程調(diào)試的方案,一 插樁(stub) 二 片上調(diào)試(On Chip Debugging),12, 插樁(stub),在目標(biāo)操作系統(tǒng)和調(diào)試器內(nèi)分別加入某些功能模塊,二者互通信息來(lái)進(jìn)行調(diào)試。,13,步驟,調(diào)試器與被調(diào)試程序的通信 調(diào)試器與目標(biāo)操作系統(tǒng)通過(guò)指定通信端口(串口、網(wǎng)卡、并口)遵循遠(yuǎn)程調(diào)試協(xié)議進(jìn)行通信。 被調(diào)試程序產(chǎn)生異常及時(shí)通知調(diào)試器 目標(biāo)操作系統(tǒng)的所有異常處理最終都要轉(zhuǎn)向通信模塊,告知調(diào)試器當(dāng)前的異常號(hào);調(diào)試器據(jù)此向用戶顯示被調(diào)試程序產(chǎn)生了哪一類異常。,14,調(diào)試器控制、訪問(wèn)被調(diào)試程序 調(diào)試器的這類請(qǐng)求實(shí)際上都將轉(zhuǎn)換成對(duì)被調(diào)試程序的地址空間或目標(biāo)平臺(tái)的某些寄存器的訪問(wèn),目標(biāo)操作系統(tǒng)接收到這樣的請(qǐng)求可以直接處理。對(duì)于沒(méi)有虛擬存儲(chǔ)概念的簡(jiǎn)單的嵌入式操作系統(tǒng)而言,完成這些任務(wù)十分容易。 調(diào)試器識(shí)別有關(guān)被調(diào)試程序的多任務(wù)信息并控制某一特定任務(wù) 由目標(biāo)操作系統(tǒng)提供相關(guān)接口。目標(biāo)系統(tǒng)根據(jù)調(diào)試器發(fā)送的關(guān)于多任務(wù)的請(qǐng)求,調(diào)用該接口提供相應(yīng)信息或針對(duì)某一特定任務(wù)進(jìn)行控制,并返回信息給調(diào)試器。,15,調(diào)試器處理與目標(biāo)硬件平臺(tái)相關(guān)的信息 第2條所述調(diào)試器應(yīng)能根據(jù)異常號(hào)識(shí)別目標(biāo)平臺(tái)產(chǎn)生異常的類型也屬于這一范疇,這類工作完全可以由調(diào)試器獨(dú)立完成。支持多種目標(biāo)平臺(tái)正是GNU GDB的一大特色。,16,目標(biāo)操作系統(tǒng)支持,遠(yuǎn)程調(diào)試協(xié)議的通信模塊(包括簡(jiǎn)單的設(shè)備驅(qū)動(dòng)) 多任務(wù)調(diào)試接口 改寫異常處理的有關(guān)部分 定義一個(gè)設(shè)置斷點(diǎn)的函數(shù),17,目標(biāo)操作系統(tǒng)添加的這些模塊統(tǒng)稱為“插樁” 若駐留于ROM中則稱為ROM monitor,18,通用操作系統(tǒng)也有具備這類模塊 編譯運(yùn)行于Alpha、Sparc或PowerPC平臺(tái)的LINUX內(nèi)核時(shí)若將kgdb開關(guān)打開,就相當(dāng)于加入了插樁。,19,調(diào)試過(guò)程,20,Stub的本質(zhì),軟件接管目標(biāo)系統(tǒng)的全部異常處理(exception handler)及部分中斷處理 在其中插入調(diào)試端口通信模塊,與主機(jī)的調(diào)試器交互 不用于正式發(fā)布的調(diào)試版,21,.片上調(diào)試OnChip Debugging,片上調(diào)試是在處理器內(nèi)部嵌入額外的控制模塊,當(dāng)滿足了一定的觸發(fā)條件時(shí)進(jìn)入某種特殊狀態(tài) 在該狀態(tài)下,被調(diào)試程序停止運(yùn)行,主機(jī)的調(diào)試器可以通過(guò)處理器外部特設(shè)的通信接口訪問(wèn)各種資源(寄存器、存儲(chǔ)器等)并執(zhí)行指令。 主機(jī)通信端口與目標(biāo)板調(diào)試通信接口 信號(hào)轉(zhuǎn)換電路板連接,22,23,內(nèi)嵌的控制模塊,以基于微碼的監(jiān)控器(microcode monitor)或純硬件資源的形式存在 包括一些提供給用戶的接口(如斷點(diǎn)寄存器等) 具體產(chǎn)品有Motorola CPU16、CPU32、Coldfire系列的BDM(Background Debug Mode),Motorola PowerPC 5xx、8xx系列的EPBDM(Embedded PowerPC Background Debug Mode),IBM、TI的JTAG(Joint Test Action Debug,IEEE標(biāo)準(zhǔn)),還有OnCE、MPSD等等。,24,EPBDM的執(zhí)行流程,相當(dāng)于用處理器內(nèi)嵌的調(diào)試模塊接管中斷及異常處理。 用戶通過(guò)設(shè)置調(diào)試許可寄存器(debug enable register)來(lái)指定哪些中斷或異常發(fā)生后處理器直接進(jìn)入調(diào)試狀態(tài),而不是操作系統(tǒng)的處理程序。 1、進(jìn)入調(diào)試狀態(tài)后,內(nèi)嵌調(diào)試模塊向外部調(diào)試通信接口發(fā)出信號(hào),通知一直在通信接口監(jiān)聽的主機(jī)調(diào)試器 2、調(diào)試器便可通過(guò)調(diào)試模塊使處理器執(zhí)行任意系統(tǒng)指令(相當(dāng)于特權(quán)態(tài))。,25,3、所有指令均通過(guò)調(diào)試模塊獲取,所有l(wèi)oad/store 均直接訪問(wèn)內(nèi)存,緩存(cache)及存儲(chǔ)管理單元(MMU)均不可用 4、數(shù)據(jù)寄存器被映射為一個(gè)特殊寄存器DPDR,通過(guò)mtspr和mfspr指令訪問(wèn)。 5、調(diào)試器向處理器送rfi(return from interrupt)指令便結(jié)束調(diào)試狀態(tài),被調(diào)試程序繼續(xù)運(yùn)行。,26,OCD(片上調(diào)試)的特點(diǎn),優(yōu)點(diǎn): 不占用目標(biāo)平臺(tái)的通信端口 無(wú)需修改目標(biāo)操作系統(tǒng) 能調(diào)試目標(biāo)操作系統(tǒng)的啟動(dòng)過(guò)程,大大方便了系統(tǒng)開發(fā)人員。 缺點(diǎn): 軟件工作量的增加 調(diào)試器端除了需補(bǔ)充對(duì)目標(biāo)操作系統(tǒng)多任務(wù)的識(shí)別、控制等模塊 針對(duì)使用同一芯片的不同開發(fā)板編寫各類ROM、RAM的初始化程序。,27, 其他調(diào)試器原理,代理(agent) 針對(duì):實(shí)時(shí)系統(tǒng),延時(shí),監(jiān)視點(diǎn)trace point 處理方法: 監(jiān)視點(diǎn)緩沖 命中監(jiān)視點(diǎn),自動(dòng)喚醒代理,存儲(chǔ)數(shù)據(jù)到緩沖 代理無(wú)需通訊 實(shí)時(shí)監(jiān)視的可行方案 CPU支持串行工作 針對(duì)指令緩沖,28,典型調(diào)試器,Applied Microsystems Corp 的AMC System Debug Tools (CodeWarrior) Signum Systems Corp. 的Chameleon Debugger Wind River Systems, Inc. 的SingleStep /Tornado Debugger,29,1.1.3 測(cè)試器,嵌入式微處理器測(cè)試 基準(zhǔn)聯(lián)盟EEMBC(EDN Embedded Microprocessor Benchmark Consortium) EEMBC的測(cè)試標(biāo)準(zhǔn):40多種用于消費(fèi)類產(chǎn)品、網(wǎng)絡(luò)、辦公自動(dòng)化及電信產(chǎn)品、汽車和工業(yè)產(chǎn)品的C語(yǔ)言綜合算法。 僅憑硬件測(cè)試工具來(lái)自動(dòng)記錄嵌入式系統(tǒng)的完整測(cè)試結(jié)果是不可能的,30,測(cè)試程序的選擇,實(shí)際程序 用戶用來(lái)解決問(wèn)題的實(shí)際工作程序.盡管不知道在工作負(fù)載中所占的比例. 如C編譯器,文本編輯器等, 有輸入,輸出,參數(shù) 核心基準(zhǔn)測(cè)試程序(kernel benchmark) 從實(shí)際程序中抽出來(lái)的核心代碼段,適于獨(dú)立評(píng)價(jià)某一方面的性能 如Livemore Loops(浮點(diǎn)循環(huán)), Linpack等,31,簡(jiǎn)單基準(zhǔn)測(cè)試程序(toy benchmark) 事先知道結(jié)果的小程序(10100行) 如快速排序,八皇后問(wèn)題 等 綜合基準(zhǔn)程序(synthetic benchmark) 根據(jù)大量實(shí)際程序的統(tǒng)計(jì)數(shù)據(jù)(指令和操作數(shù)的使用頻度)人為設(shè)計(jì)編制的程序 如Whetstone, Dhrystone等,32,33,常見測(cè)試工具,Applied Microsystems Corp. 的CodeTEST,擁有性能分析、內(nèi)存分析、代碼跟蹤和高級(jí)覆蓋率分析四大功能模塊。單元級(jí)、集成級(jí)和系統(tǒng)級(jí)測(cè)試 。 Vector Software, Inc的VectorCAST,功能涵蓋環(huán)境構(gòu)造器、測(cè)試用例產(chǎn)生器、執(zhí)行管理器、測(cè)試報(bào)告產(chǎn)生器、代碼覆蓋率、靜態(tài)分析,34,1.2 仿真開發(fā),非硬件平臺(tái)開發(fā) 1源程序模擬器(Simulator) 2實(shí)時(shí)在線仿真系統(tǒng)ICE,35,1.2.1 源程序模擬器(Simulator),簡(jiǎn)單的模擬器可以通過(guò)指令解釋方式逐條執(zhí)行源程序,分配虛擬存儲(chǔ)空間和外設(shè)。 高級(jí)的模擬器可以利用計(jì)算機(jī)的外部接口模擬出處理器的I/O電氣信號(hào)。 模擬器軟件獨(dú)立于處理器硬件,一般與編譯器集成在同一個(gè)環(huán)境中,是一種有效的源程序檢驗(yàn)和測(cè)試工具。 在指令執(zhí)行時(shí)間、中斷響應(yīng)、定時(shí)器等方面很可能與實(shí)際處理器有相當(dāng)?shù)牟顒e。 和ICE有區(qū)別 、,36,優(yōu)點(diǎn),模擬器軟件獨(dú)立于處理器硬件 一般與編譯器集成在同一個(gè)環(huán)境中 有效的源程序檢驗(yàn)和測(cè)試工具。,37,缺點(diǎn),以一種處理器模擬另一種處理器的運(yùn)行,在指令執(zhí)行時(shí)間、中斷響應(yīng)、定時(shí)器等方面很可能與實(shí)際處理器有相當(dāng)?shù)牟顒e 它無(wú)法和ICE一樣,仿真嵌入式系統(tǒng)在應(yīng)用系統(tǒng)中的實(shí)際執(zhí)行情況。,38,ChipView-x51 for Windows,39,ChipView-166 for Windows,40,SystemView,41,42,WinCE的Pocket系列模擬器,43,1.2.2實(shí)時(shí)在線仿真系統(tǒng)ICE-仿真器,ICE具有三大功能 ICE排除了設(shè)計(jì)邏輯錯(cuò)誤。通過(guò)實(shí)際執(zhí)行,對(duì)應(yīng)用程序進(jìn)行原理性檢驗(yàn),可以發(fā)現(xiàn)人的思維不能發(fā)現(xiàn)的問(wèn)題。 ICE可以發(fā)現(xiàn)與排除硬件干擾等引起的異常執(zhí)行行為。通過(guò)在應(yīng)用系統(tǒng)中仿真微控制器的實(shí)時(shí)執(zhí)行,系統(tǒng)的異常執(zhí)行行為得到制止。 高級(jí)的ICE帶有完善的跟蹤功能。它可以將應(yīng)用系統(tǒng)的實(shí)際狀態(tài)變化、微控制器對(duì)狀態(tài)變化的反應(yīng)、以及應(yīng)用系統(tǒng)對(duì)控制的響應(yīng)等以一種錄像的方式連續(xù)記錄下來(lái),以供分析,在分析中優(yōu)化控制過(guò)程。,44,ICE不僅是軟件硬件排錯(cuò)工具,同時(shí)也是提高和優(yōu)化系統(tǒng)性能指標(biāo)的工具,高檔ICE工具(如美國(guó)NOHAU公司的產(chǎn)品)是可根據(jù)用戶投資裁剪功能的系統(tǒng),亦可根據(jù)需要選擇配置各種檔次的實(shí)時(shí)邏輯跟蹤器(Trace)、實(shí)時(shí)映象存儲(chǔ)器(Shadow RAM)及程序效率實(shí)時(shí)分析功能(PPA)。,45,常見ICE,Applied Microsystems Corp. 的CodeICE/EL/CodeTAP/SuperTAP/PowerTAP仿真器 Lauterbach, Inc. 的TRACE32-ICE仿真器 Signum Systems Corp. 的Signum系列仿真器 Embedded Support Tools Corp. 的visionICE仿真器 ,46,EMUL-ARM Supports the ARM7 and ARM9 CORES,EMUL-PPC Emulator Supporting the Xilinx PowerPC Family,47,1.3 仿真器與調(diào)試器的功能,內(nèi)存查看 寄存器瀏覽 單步/斷點(diǎn)設(shè)置 跟蹤 程序下載執(zhí)行 Flash燒寫 操作系統(tǒng)任務(wù)級(jí)狀態(tài)查看,48,1.4 仿真器與調(diào)試器的歷史,全仿真器 使用硬件仿真芯片和仿真內(nèi)存,連接困難,價(jià)格昂貴。 如常見的51仿真器 Rom monitor 調(diào)試器的一場(chǎng)革命,最廉價(jià)的一種方式,燒入 Flash的一段小程序,可通過(guò)串/并/ethernet口調(diào)試,49,仿真器與調(diào)試器的歷史,Rom仿真器 通過(guò)連接目標(biāo)系統(tǒng)上的Rom插座,實(shí)現(xiàn)虛擬串/ethernet口和Rom monitor.與Rom下載器不同。 Rom monitor 與Rom仿真器的優(yōu)點(diǎn): Cpu 無(wú)關(guān),下載程序速度快。 價(jià)格便宜。 monitor程序的“雞,蛋”悖論 Rom仿真器對(duì)C/C+開發(fā)環(huán)境的支持很重要。,50,仿真器與調(diào)試器的歷史,BDM 背景調(diào)試模式,由motorola提出,把相應(yīng)調(diào)試微碼放入處理器,使用高速串口進(jìn)行訪問(wèn)。(rom monitor的進(jìn)一步擴(kuò)展) JTAG 邊界掃描協(xié)議,是IEEE規(guī)范,目前是主流。使外界可以訪問(wèn)ASIC內(nèi)部寄存器的技術(shù)。,51,仿真器與調(diào)試器的歷史,BDM&JTAG調(diào)試器,與仿真器的區(qū)別。 同樣能夠直接控制處理器硬件,在單板的硬件調(diào)試能力比rom monitor強(qiáng)。 價(jià)格便宜/連接方便 仿真器使用仿真內(nèi)存,調(diào)試器需要目標(biāo)板。 仿真器支持硬件斷點(diǎn)能力強(qiáng) 仿真器可以支持trace功能,排錯(cuò)能力強(qiáng),52,2. 主要開發(fā)工具,53,54,2. 1 MontaVista Linux,跨平臺(tái)開發(fā),它支持14個(gè)主機(jī)開發(fā)環(huán)境,包括Red Hat、Yellow Dog Linux、SuSE、Mandrake、Solaris以及VMWare on Windows NT/2000 本提供了215多個(gè)主機(jī)配套工具和嵌入式目標(biāo)平臺(tái)開發(fā)組件軟件包 擴(kuò)展了針對(duì)嵌入式跨平臺(tái)開發(fā)的各類開放源代碼工具的支持 支持x86和PowerPC平臺(tái)的Linux跟蹤工具(包括內(nèi)核性能和執(zhí)行分析器) ext3日志文件系統(tǒng),55,2.2 CodeWarrior* IDE,提供統(tǒng)一的圖形用戶界面來(lái)集成各種開發(fā)工具,支持多種主機(jī)平臺(tái)、多種編程語(yǔ)言、多種處理器和多種實(shí)時(shí)操作系統(tǒng),稱為下一代集成開發(fā)環(huán)境。 包括以下模塊:編輯器、源碼瀏覽器、搜索引擎、構(gòu)造系統(tǒng)、調(diào)試器、工程

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論