資源描述:
《ARMADS集成開發(fā)環(huán)境》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、ARM嵌入式系統(tǒng)第8章ARMADS集成開發(fā)環(huán)境第8章ARMADS集成開發(fā)環(huán)境ARM開發(fā)工具簡(jiǎn)介ARM應(yīng)用軟件的開發(fā)工具根據(jù)功能的不同,分別有編譯軟件、匯編軟件、鏈接軟件、調(diào)試軟件、嵌入式實(shí)時(shí)操作系統(tǒng)、函數(shù)庫(kù)、評(píng)估板、JTAG仿真器、在線仿真器等,目前世界上約有四十多家公司提供以上不同類別的產(chǎn)品。第8章ARMADS集成開發(fā)環(huán)境常見的調(diào)試方法有以下幾種:指令集模擬器駐留監(jiān)控軟件JTAG仿真器在線仿真器第8章ARMADS集成開發(fā)環(huán)境ARMADS的英文全稱為ARMDeveloperSuite,是ARM公司推出的新一代ARM集成開發(fā)工具,用來取代ARM公司以前推出的開發(fā)工具ARMSDT,目前ARMAD
2、S的最新版本為1.2。ARMADS支持所有ARM系列處理器,除了ARMSDT支持的運(yùn)行操作系統(tǒng)外還可以在Windows2000/Me以及RedHatLinux上運(yùn)行。第8章ARMADS集成開發(fā)環(huán)境ARMADS由六部分組成:代碼生成工具集成開發(fā)環(huán)境調(diào)試器指令集模擬器ARM開發(fā)包ARM應(yīng)用庫(kù)創(chuàng)建工程ADS中的CodeWarrior是集管理、編輯、編譯、鏈接于一體的集成開發(fā)環(huán)境。用戶可以利用工程管理的思想組織項(xiàng)目開發(fā)中的源文件、庫(kù)文件、頭文件和其他相關(guān)的輸入輸出文件。工程能夠?qū)⑺械脑创a文件有機(jī)地組織在一起,并決定最終生成文件存放的路徑,輸出的格式等。下面從最基本的工程創(chuàng)建入手介紹CodeWarr
3、ior集成開發(fā)環(huán)境。創(chuàng)建工程_選擇File
4、New命令生成目標(biāo)的設(shè)置每個(gè)工程項(xiàng)目都有3種生成目標(biāo):Debug包含了所有調(diào)試信息。DebugRel包含了部分調(diào)試信息。Release不包含調(diào)試信息。參數(shù)設(shè)置_RO基地址參數(shù)設(shè)置_設(shè)置入口點(diǎn)參數(shù)設(shè)置_指定起始輸入段參數(shù)設(shè)置_指定可執(zhí)行文件格式使用ARMulator來調(diào)試簡(jiǎn)單程序ARMulator是一個(gè)ARM指令集仿真器,集成在ARM的調(diào)試器AXD中,它提供對(duì)ARM處理器指令集的仿真,為ARM和Thumb提供精確的模擬。利用ARMulator可以在沒有硬件目標(biāo)平臺(tái)條件下開發(fā)、運(yùn)行特定ARM處理器上的應(yīng)用程序。ARMulaor可以提供指令執(zhí)行時(shí)內(nèi)部寄存
5、器狀況及執(zhí)行周期,可以進(jìn)行應(yīng)用程序的性能分析,這樣就為軟硬件并行開發(fā)提供了極大的方便。使用ARMulator來調(diào)試簡(jiǎn)單程序AXD調(diào)試環(huán)境_加載映像文件AXD調(diào)試環(huán)境_運(yùn)行程序StepIn(或F8)或工具欄中圖標(biāo)Step(或F10)或工具欄中圖標(biāo)StepOut(或Shift+F8)或工具欄中圖標(biāo)RunToCursor(或F7)或工具欄中圖標(biāo)AXD調(diào)試環(huán)境_設(shè)置斷點(diǎn)AXD調(diào)試環(huán)境_查看寄存器內(nèi)容AXD調(diào)試環(huán)境_查看內(nèi)存空間AXD調(diào)試環(huán)境_查看變量AXD調(diào)試環(huán)境_查看反匯編代碼使用JTAG仿真器來調(diào)試程序使用AXD可以完成對(duì)程序的軟件仿真調(diào)試,但要完成硬件仿真和調(diào)試功能,則需要通過JTAG仿真器實(shí)
6、現(xiàn)ARM處理器與主機(jī)的通信聯(lián)絡(luò)。使用JTAG仿真器來調(diào)試程序初始化存儲(chǔ)器通常ARM處理器都集成有SDRAM控制器。程序的在線調(diào)試實(shí)際上是要將程序代碼通過JTAG仿真器下載到處理器的SDRAM空間執(zhí)行,但是SDRAM在初始化上電時(shí)并不能直接訪問,必須配置它的刷新計(jì)數(shù)值、刷新時(shí)間、刷新使能等才可以訪問。初始化存儲(chǔ)器就是設(shè)置ARM處理器的某些寄存器,實(shí)現(xiàn)對(duì)SDRAM存儲(chǔ)空間映射的初始化過程。EELIOD系統(tǒng)硬件決定了在進(jìn)行JTAG調(diào)試時(shí),一上電SDRAM并沒有初始化,故不能直接訪問,下載程序前需要先進(jìn)行SDRAM的初始化工作。初始化存儲(chǔ)器程序仿真調(diào)試Semihosting調(diào)試技術(shù)Semihosti
7、ng定義軟件中斷(SWI)指令SWI編號(hào)Semihosting調(diào)試技術(shù)Semihosting的實(shí)現(xiàn)原理C庫(kù)函數(shù)重定向下面是實(shí)現(xiàn)fputc()重定向的一個(gè)例子:externvoidsendchar(char*ch);intfputc(intch,FILE*f){/*e.g.writeacharactertoanUART*/chartempch=ch;sendchar(&tempch);returnch;}程序的固化程序固化就是將調(diào)試完成后的程序代碼燒寫到非易失性存儲(chǔ)介質(zhì)中,常用介質(zhì)包括ROM、EEPROM和FLASH等。程序的固化在程序固化開始前,需重新配置項(xiàng)目工程的ROBase和RWBase
8、,使ROBase指向上電復(fù)位后的首地址0x0,RWBase指向256K片內(nèi)RAM區(qū)首地址0x5C000000。將工程重新鏈接生成用于下載的8LED_SEG_c.bin文件。