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

下載本文檔

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

文檔簡介

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

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論