9嵌入式系統(tǒng)設(shè)計與開發(fā)-ARM嵌入式開發(fā)工具_第1頁
9嵌入式系統(tǒng)設(shè)計與開發(fā)-ARM嵌入式開發(fā)工具_第2頁
9嵌入式系統(tǒng)設(shè)計與開發(fā)-ARM嵌入式開發(fā)工具_第3頁
9嵌入式系統(tǒng)設(shè)計與開發(fā)-ARM嵌入式開發(fā)工具_第4頁
9嵌入式系統(tǒng)設(shè)計與開發(fā)-ARM嵌入式開發(fā)工具_第5頁
已閱讀5頁,還剩76頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、嵌入式系統(tǒng)設(shè)計與開發(fā)第9章 ARM嵌入式開發(fā)工具本章提要要9.1ARM下下層開發(fā)發(fā)工具9.2ARM開開發(fā)工具具概述9.3ARM的ADS9.4EmbestIDE的介紹紹9.1ARM下下層開發(fā)發(fā)工具由于程序序的編譯譯環(huán)境和和運行環(huán)環(huán)境不同同,所以以ARM嵌入式式開發(fā)采采用交叉叉編譯方方法進行行。首先,在在通用計計算機上上對源程程序進行行編寫、編譯、匯編、連接形形成可以以在目標標系統(tǒng)上上運行的的目標文文件;接接著,通通過連接接/調(diào)試試裝置將將目標文文件下載載到目標標系統(tǒng)上上運行;源程序序在目標標系統(tǒng)上上運行的的情況連連接裝置置在計算算機中反反映出來來,開發(fā)發(fā)人員通通過反映映出的情情況根據(jù)據(jù)開發(fā)項項目

2、的需需要進行行相應(yīng)的的修改并并重復(fù)上上述操作作直至達達到項目目開發(fā)預(yù)預(yù)期結(jié)果果。因此,可可以把ARM嵌嵌入式開開發(fā)工具具分為上上層裝在在計算機機中的開開發(fā)工具具、中間間的連接接裝置和和下層的的ARM芯片本本身具有有的支持持嵌入式式開發(fā)的的工具。ARM嵌嵌入式式系統(tǒng)實實時開發(fā)發(fā)組織結(jié)結(jié)構(gòu)圖9.1.1JTAG接口口JTAG接口標標準是由由測試聯(lián)聯(lián)合行動動組(jointtest actiongroup)于于19861988年推出出的基于于邊界掃掃描機制制的標準準化草案。1990年年IEEE組織織將這些些草案標標準化,并命名名為IEEE1149.1標標準,俗俗稱JTAG調(diào)調(diào)試標準準。JTAG除除了實現(xiàn)

3、現(xiàn)通常意意義上的調(diào)試功功能外,還可實實現(xiàn)代碼碼下載或或單步執(zhí)執(zhí)行程序序等功能能。邊界掃描描機制主主要的思思想是:通過在在內(nèi)部邏邏輯之間間,即在在內(nèi)部邏輯輯的邊界界上增加加串行的的可讀寫寫的邊界界掃描單單元,從從而提供芯片級級、板級級、系統(tǒng)統(tǒng)級的標標準測試試框架。邊界掃掃描機制制可以實現(xiàn)下列列目標:測試不同同單元之之間的連連接。測試單個個單元的的功能。應(yīng)用邊界界掃描寄寄存器完完成其他他測試功能,如偽隨隨機測試試、特征征分析和靜態(tài)態(tài)測試等等。JTAG接口的的6個個主要信信號:1)TestClockInput(TCK)。TCK為為TAP的操作作提供了了一個獨立的、基本的的時鐘信信號,TAP的的所有操

4、操作都是是通過這這個時鐘鐘信號來驅(qū)驅(qū)動的。TCK在IEEE1149.1標準里里是強制制要求的的。2)TestModeSelectionInput(TMS)。TMS信信號用來來控制TAP狀狀態(tài)機的的轉(zhuǎn)換,通過TMS信信號,可可以控制制TAP在不同同的狀態(tài)間相互互轉(zhuǎn)換。TMS信號在在TCK的上升升沿有效效。TMS在IEEE1149.1標標準里是是強制要要求的。3)TestDataInput(TDI)。TDI是數(shù)數(shù)據(jù)輸入入接口。所有要要輸入到特定定寄存器器的數(shù)據(jù)據(jù)都是通通過TDI接口口一位一一位串行行輸入的的(由TCK驅(qū)動動)。TDI在在IEEE1149.1標標準里是是強制要要求的。4)TestDa

5、taOutput(TDO)。TDO是是數(shù)據(jù)輸輸出的接接口。所所有要從特定定邊界掃掃描鏈采采樣的保保存在寄寄存器中中的數(shù)據(jù)據(jù)都是通通過TDO接接口一位位一位串串行輸出出的(由由TCK驅(qū)動);在芯芯片串行行測試時,將將數(shù)據(jù)傳傳送給下下一個芯芯片。TDO在在IEEE1149.1標標準里是強制要要求的。5)TestResetInput(TRST/nTRST)。TRST可以以用來對對TAPController進行行復(fù)位(初始化化)即JTAG復(fù)位。該信號號接口在IEEE1149.1標標準里是是可選的的,因為為通過TMS也也可以對對TAPController進行復(fù)復(fù)位/初初始化。為了防防止誤觸觸發(fā),應(yīng)應(yīng)在該

6、端端加適當上拉電電阻。6)SystemReset(nSRST/SRST)。與與目標板板上的系系統(tǒng)復(fù)位位信號相連連??梢砸灾苯訉δ繕讼迪到y(tǒng)復(fù)位位,同時時可以檢檢測目標標系統(tǒng)的復(fù)位情情況。該該信號接接口在IEEE 1149.1標準準里是可可選的,并不是強制制要求的的。20針JTAG接口信信號20針JTAG接口連連接9.1.2JTAGTAPJTAG測試訪訪問端口口JTAGTAP是是一個通通用端口口,是外外部JTAG接接口連接接芯片的的通道,由JTAGTAP控制器器和掃描描鏈構(gòu)成成。通過TAP可以以訪問芯芯片提供供的所有有數(shù)據(jù)寄寄存器(DR,dataregister)和和指令寄寄存器(IR,inst

7、ructionregister)。對整個TAP的的控制是是通過TAPController完成成的。TAP有有5個接接口信號號:TCK、TMS、TDI、TDO和TRST,提供供給JTAG接接口。掃描鏈是是由靠近近芯片的的輸入/輸出管管腳上各各增加一一個用于于實現(xiàn)對對芯片輸輸入/輸輸出信號號進行觀觀察和控控制的移移位寄存存器單元元,相互互連接構(gòu)構(gòu)成。即即在芯片片/內(nèi)部部邏輯的的周圍形形成一個個邊界掃掃描鏈(boundary-scanchain)。如果需要要捕獲芯芯片某個個管腳上上的輸出出,首先先需要把把該管腳腳上的輸輸出裝載載到邊界界掃描鏈鏈的寄存存器單元元里,然然后通過過TDO輸出,得到相相應(yīng)管

8、腳腳的輸出出信號。如果要在在芯片的的某個管管腳上加加載一個個特定的的信號,則首先先通過TDI把把期望的的信號移移位到與與相應(yīng)管管腳相連連的邊界界掃描鏈鏈的寄存存器單元元里,然然后把該該寄存器器單元的的值加載載到相應(yīng)應(yīng)的芯片片管腳。在IEEE1149.1標標準里面面,寄存存器分為為兩大類類:數(shù)據(jù)據(jù)寄存器器DR和和指令寄寄存器IR。邊界掃描描鏈屬于于數(shù)據(jù)寄寄存器的的一種,用來實實現(xiàn)對芯芯片的輸輸入/輸輸出的觀觀察和控控制,而而指令寄寄存器用用來實現(xiàn)現(xiàn)對數(shù)據(jù)據(jù)寄存器器的控制制。如在芯片片提供的的所有邊邊界掃描描鏈中選選擇一條條指定的的邊界掃掃描鏈作作為當前前的目標標掃描鏈鏈,并作作為訪問問對象就就是

9、由相相應(yīng)指令令寄存器器完成的的。通過TAP接口口,對數(shù)數(shù)據(jù)寄存存器進行行訪問的的一般過過程是:1)通過過指令寄寄存器,選定一一個需要要訪問的的數(shù)據(jù)寄寄存器。2)把選選定的數(shù)數(shù)據(jù)寄存存器連接接到TDI和TDO之之間。3)由TCK驅(qū)驅(qū)動,通通過TDI,把把需要的的數(shù)據(jù)輸輸入到選選定的數(shù)數(shù)據(jù)寄存器中,同時把把選定的的數(shù)據(jù)寄寄存器中中的數(shù)據(jù)據(jù)通過TDO讀讀出來。 JTAG TAP控控制器狀狀態(tài)轉(zhuǎn)換換圖指令寄存存器和數(shù)數(shù)據(jù)寄存存器工作作過程:1)系統(tǒng)統(tǒng)上電后后在TMS信號號驅(qū)動下下,TAPController進入Test-Logic Reset狀態(tài),然后可可依次進進入Run-Test/IdleSelec

10、t-DR-ScanSelect-IR-ScanCapture-IRShift-IRExit1-IRPause-IRExit2-IRUpdate-IR,最后后回到Run-Test/Idle狀態(tài)。在Capture-IR狀狀態(tài)中,一個特特定的指指令加載載到指令令寄存器器中,進進入到Shift-IR狀態(tài)態(tài)。在Shift-IR狀態(tài)態(tài)下,通通過TCK的驅(qū)驅(qū)動,可可以將該該指令送送到指令令寄存器器中。每每條指令令都將確確定一個個相應(yīng)的的數(shù)據(jù)寄寄存器。然后可可以沿著著Shift-IRExit1-IRPause-IRExit2-IRUpdate-IR路徑進進行,也也可以沿沿著其他他的路徑徑到達Update-IR

11、狀狀態(tài)。在在Update-IR狀態(tài),剛才輸輸入到指指令寄存存器中的的指令將將更新指指令寄存存器成為為當前指指令。最最后,進進入到Run-Test/Idle狀態(tài),指令生生效,完完成對指指令寄存存器的訪訪問。2)對當當前數(shù)據(jù)據(jù)寄存器器的訪問問由指令令寄存器器中的當當前指令令決定。要訪問問由指令令選定的的數(shù)據(jù)寄寄存器,需要以以Run-Test/Idle為起起點在TMS信信號驅(qū)動動下,依依次進入入Select-DR-ScanCapture-DRShift-DRExit1-DRPause-DRExit2-DRUpdate-DR,最最后回到到Run-Test/Idle狀態(tài)態(tài)。在這這個過程程中,被被當前指指

12、令選定定的數(shù)據(jù)據(jù)寄存器器會被連連接在TDI和和TDO之間。通過TDI和和TDO,就可可以將新新的數(shù)據(jù)據(jù)加載到到數(shù)據(jù)寄寄存器中中,同時時,也可可以捕獲獲數(shù)據(jù)寄寄存器中中的數(shù)據(jù)據(jù)?,F(xiàn)在常用用的ARM7和和ARM9的微微內(nèi)核ARM7TDMI與ARM9TDMI都提供了了4條掃掃描鏈:1)ScanChain0測測試鏈2)ScanChain1調(diào)試試鏈3)ScanChain2編程程鏈4)ScanChain3外圍圍測試鏈鏈ARM9TDMI邊界界掃描鏈鏈1的另另外兩個個信號DDEN和SYSSPEED的作用是是:DDEN在ARM9TDMI內(nèi)部測測試模式式下,是是可獲取取、可測測試的。在ARM9TDMI外部測測試模

13、式式下低電電平表示示將獲取取數(shù)據(jù)總總線上輸輸入的數(shù)數(shù)據(jù),高高電平表表示將要要輸出掃掃描鏈上上存儲的的數(shù)據(jù)。在ARM9TDMI進進入調(diào)試試狀態(tài)時時,SYSSPEED將輸出出。低電電平表示示微內(nèi)核核現(xiàn)在進進入斷點點調(diào)試,高電平平表示微微內(nèi)核進進入觀察點調(diào)試試狀態(tài)。 9.1.3EmbeddedICE 嵌入入式在線線仿真器器系統(tǒng)中內(nèi)內(nèi)核調(diào)試試功能,主要由由4部分分組成:ARM核核內(nèi)的一一組調(diào)試試擴展。EmbeddedICE宏宏。EmbeddedICE宏宏接口?;贘TAG接接口的在在主機和和內(nèi)核之之間的調(diào)調(diào)試通信信通道。EmbeddedICE寄寄存器地 址 寬 度 功 能 地 址 寬 度 功 能 00

14、000 6 調(diào)試控制寄存器 01100 9觀察點0控制值寄存器 00001 5調(diào)試狀態(tài)寄存器 01101 8觀察點0控制屏蔽寄存器 00010 1中止狀態(tài)寄存器 10000 32觀察點1地址值寄存器 00100 6調(diào)試通信控制寄存器 10001 32觀察點1地址屏蔽寄存器 00101 32調(diào)試通信數(shù)據(jù)寄存器 10010 32觀察點1數(shù)據(jù)值寄存器 01000 32觀察點0地址值寄存器 10011 32觀察點1數(shù)據(jù)屏蔽寄存器 01001 32觀察點0地址屏蔽寄存器 10100 9觀察點1控制值寄存器 01010 32觀察點0數(shù)據(jù)值寄存器 10101 8觀察點1控制屏蔽寄存器 01011 32觀察點

15、0數(shù)據(jù)屏蔽寄存器 調(diào)試控制制寄存器器(debug controlregister)用來控控制Embedded ICE,6位分別別對應(yīng)6種控制制信號,從低到到高依次次是DBGACK、DBGRQ、INTDIS、SBZ/RAZ、Monitor ModeEnable和Embedded ICE。DBGRQ調(diào)試試請求信信號,通通過將該該信號置置1,可可以強制制ARM7TDMI/ARM9TDMI暫暫停當前前的指令令,進入入調(diào)試狀狀態(tài);INTDIS用用來控制制中斷;SBZ/RAZ任何何時候都都必須被被置0;MonitorMode Enable用來來控制是是否進入入Monitor模式式;EmbeddedICE-

16、RTDisable用來來控制整整個Embedded ICE-RT,是是啟用還還是禁用用,如果果禁用的的話,ARM7TDMI/ARM9TDMI將一一直保持持在正常常的運行行狀態(tài)。通過調(diào)試試狀態(tài)寄寄存器(debugstatus register)可以以查詢當當前系統(tǒng)統(tǒng)的狀態(tài)態(tài)。調(diào)試試狀態(tài)寄寄存器是是可讀可可寫的,但一般般只進行行讀操作作。5位位信號從從低位到到高位分分別是:DBGACK、DBGRQ、IFEN、CGENL和和TBIT,其其中DBGACK標識識當前系系統(tǒng)是否否處于調(diào)調(diào)試狀態(tài)態(tài),置1表示處處于調(diào)試試狀態(tài);DBGRQ標標識DBGRQ信號的的當前狀狀態(tài);IFEN標識系系統(tǒng)的中中斷狀態(tài)態(tài)是啟用

17、用還是禁禁用;CGENL標識識調(diào)試狀狀態(tài)下對對存儲器器的訪問問是否完完成;TBIT用來判判斷是從從ARM還是Thumb模式式進入調(diào)調(diào)試狀態(tài)態(tài)。中止狀態(tài)態(tài)寄存器器(abort statusregister)用用來確定定異常的的產(chǎn)生原原因:斷斷點、觀觀察點還還是真的的異常。調(diào)試通信信控制寄寄存器(debugcommscontrolregister)和和調(diào)試通通信數(shù)據(jù)據(jù)寄存器器(debug comms dataregister)是用來來控制和和操作調(diào)調(diào)試通信信通道。其他的的寄存器器都是關(guān)關(guān)于觀察察點WATCH POINT的寄存存器,用用于設(shè)置置斷點和和觀察點點。剩下的12個寄寄存器可可以表示示成如下

18、下形式:觀察點0/1地地址值/屏蔽寄寄存器。觀察點0/1數(shù)數(shù)據(jù)值/屏蔽寄寄存器。觀察點0/1控控制值/屏蔽寄寄存器。9.1.4ETM嵌入式式跟蹤宏宏ETM能能捕獲指指令和數(shù)數(shù)據(jù)序列列,訪問問并把它它們的記記錄發(fā)送送給芯片片上或芯芯片外的的緩沖器器,ARM的ETM既既可設(shè)置置成允許許觸發(fā)器器工作也也可設(shè)置置成允許許跟蹤結(jié)結(jié)果被濾濾出。使使用ETM的過過濾功能能,可以以只捕獲獲特別中中斷的或或特殊文文件的代代碼執(zhí)行行,即相相當于提提供了對對代碼的的壓縮功功能。ETM由由如下兩兩部分組組成:跟蹤端口口,用于于實時執(zhí)執(zhí)行的跟跟蹤。代代碼執(zhí)行行時,CPU發(fā)發(fā)送串行行、經(jīng)過過編碼、壓縮的的分支目目標地址址

19、、管線線狀態(tài)、讀寫數(shù)數(shù)據(jù)給ETM。觸發(fā)裝置置,規(guī)范范已被開開發(fā)。該該規(guī)范允允許指定定特定應(yīng)應(yīng)用所需需的觸發(fā)發(fā)源的準準確集合合。資源源包括地地址和數(shù)數(shù)據(jù)比較較器、計計數(shù)器和和定序器器。9.2ARM開發(fā)發(fā)工具概概述9.2.1JTAG仿真真器JTAG仿真器器也稱為為JTAG調(diào)試試器,是是通過ARM芯芯片的JTAG邊界掃描口口進行調(diào)調(diào)試的設(shè)設(shè)備。JTAG仿真器器連接比比較方便便,通過過現(xiàn)有的JTAG邊界掃掃描口與與 ARMCPU核核通信信,屬于于完全非非插入式(即即不使用用片上資資源)調(diào)調(diào)試,它它無需目目標存儲儲器,不不占用目標系統(tǒng)統(tǒng)的任何何端口,而這些些是駐留留監(jiān)控軟軟件所必必需的。另外,由于于JT

20、AG調(diào)試試的目標標程序是是在目標標板上執(zhí)執(zhí)行,仿仿真更接接近于目標標硬件,因此,許多接接口問題題,如高高頻操作作限制、AC和和DC參數(shù)數(shù)不匹配配與電線線長度的的限制等等均被最最小化了了。使用用集成開發(fā)環(huán)境境配合JTAG仿真器器進行開開發(fā)是目目前采用用最多的的一種調(diào)調(diào)試方式。JTAG仿真器器通過ARM處處理器的的JTAG調(diào)試試接口與與目標機機通信,通過并口口或串口口、網(wǎng)口口、USB口與與宿主機機通信。通過JTAG方式可以完完成:讀出/寫寫入CPU的寄寄存器,訪問控控制ARM處理理器內(nèi)核核。讀出/寫寫入內(nèi)存存,訪問問系統(tǒng)中中的存儲儲器和系系統(tǒng)端口口。訪問ASIC系統(tǒng)。訪問I/O系統(tǒng)統(tǒng)??刂瞥绦蛐蜻\

21、行、停止、單步執(zhí)執(zhí)行和實實時執(zhí)行行程序、設(shè)置程程序斷點點。復(fù)位目標標系統(tǒng)、下載代代碼到目目標ARM。實時的設(shè)設(shè)置基于于指令地地址值、數(shù)據(jù)值值的斷點點。目前國內(nèi)內(nèi)最常用用的幾種種該類型型仿真器器:1EmbestPowerICEforARMEmbestPowerICEfor ARM是英英蓓特公公司開發(fā)發(fā)的實時時在線仿仿真器。2RealView ICERealViewICE是是ARM公司最最新仿真真器。3TRACE32-ICDTRACE32-ICD是德德國Lauterbach公公司開發(fā)發(fā)的基于于BDM、JTAG和OCDS等調(diào)調(diào)試接口口的仿真真工具。9.2.2在在線仿仿真器ICE在線仿真真器ICE(i

22、n-circuit emulator)是一一種模擬擬CPU的設(shè)備,在線線仿真器器使用仿仿真頭完完全取代代目標板板上的CPU,可以完完全仿真ARM芯芯片的行行為,提提供更加加深入的的調(diào)試功功能。在在和宿主主機連接的的接口上上,在線線仿真器器也是通通過串行行端口或或并行端端口、網(wǎng)口和USB口口通信。在線仿仿真器為為了能夠夠全速仿仿真時鐘鐘速度很很高的ARM處理理器,通通常必須須采用極極其復(fù)雜雜的設(shè)計計和工藝藝,因而而其價格比比較昂貴貴。在線線仿真器器通常用用在ARM硬件件開發(fā)中中,軟件件開發(fā)中使使用較少少。9.2.3集集成開開發(fā)環(huán)境境本身帶帶的仿真真軟件以Embest為例,編譯好好運行在在目標系系

23、統(tǒng)上的的文件后后,在Project Settings對話框框的Remote選項項卡上,選擇Remotedevice下下拉列表表框的SimArm7選項,即可通通過軟件件形式在在IDE中進行仿仿真。EmbestIDE軟件仿仿真設(shè)置置Multi2000模塊與與應(yīng)用系系統(tǒng)該IDE開發(fā)環(huán)環(huán)境主要要包括:工程生成成工具(projectbuiler)源代碼調(diào)調(diào)試器(source-level debugger)事件分析析器(eventanalyzer)性能剖析析器(performanceprofiler)實時運行行錯誤檢檢查工具具(run-time error checking)圖形化瀏瀏覽器(graphic

24、al brower)文本編輯輯器(text editor)版本控制制工具(versioncontrol system)9.2.5RVDS集成成開發(fā)環(huán)環(huán)境Real ViewDeveloper Suite工具是是ARM公司繼繼ADS之后推推出的新一代ARM集集成開發(fā)發(fā)環(huán)境,是RealView ARM新一一代開發(fā)發(fā)工具集中的集集成開發(fā)發(fā)環(huán)境部部分,目目前的最最新版本本是2.2。RealViewARM完完整的開開發(fā)工具具,包括括集成開開發(fā)環(huán)境境、在線線調(diào)試工具仿仿真器等等。適用用于采用用多ARM內(nèi)核核結(jié)構(gòu)或或ARM內(nèi)核加加DSP內(nèi)內(nèi)核混合合結(jié)構(gòu)的的系統(tǒng),為開發(fā)發(fā)人員提提供一個個“認識識操作系系統(tǒng)(OS

25、-aware)”的多多內(nèi)核調(diào)調(diào)試器。新產(chǎn)品品是第一一個能對對多ARM和DSP內(nèi)核真真正同步步進行高高集成度度調(diào)試的的調(diào)試器器。它通通過單一一內(nèi)核程序序進行多多內(nèi)核調(diào)調(diào)試,并并采用了了Mentor Graphics的嵌入入技術(shù)。支持持的操作作系統(tǒng)包包括Symbian、ThreadX和Nucleus等。RVDS集成開開發(fā)環(huán)境境的主要要特性包包括編譯譯工具、調(diào)試工工具和指指令集仿真真工具。編譯工具具和調(diào)試試工具的的特點:(1)RealView編譯譯工具全面優(yōu)化化ISO C+編譯譯器。ARM、Thumb、C、C+編編譯,ARM、Thumb匯匯編和宏宏匯編。ARM連連接器。庫的連接接和管理理。映像文件件

26、轉(zhuǎn)化功功能。(2)RVD調(diào)調(diào)試工具具支持多核核(ARM+DSP)調(diào)試和和單核ARM/DSP調(diào)試。自動識別別Symbian、ThreadX和Nucleus等等操作系系統(tǒng)。具有跟蹤蹤、分析析程序功功能。9.3ARM的ADSADS即即 ARMDeveloperSuite,是ARM公司司推出的的新一代代ARM集成開發(fā)發(fā)工具,用來取取代ARM公司司在此前前推出的的開發(fā)工工具ARMSDT(ARMsoftwaredevelopmenttoolkit)。9.3.1ADS介紹ARMADS使用CodeWarriorIDE集集成開發(fā)發(fā)環(huán)境替替代了SDT的的工程管理器器APM,使用用AXD(ARMextendedde

27、bugger)替替換了SDT的的調(diào)試工工具ADW,可可以在Windows和RedHatLinux上運運行。CodeWarriorIDE為為用戶提提供下面面的功能能:源代碼編編輯器,集成在在CodeWarriorIDE瀏覽器器中,能能夠根據(jù)據(jù)語法格格式,使使用不同同的顏色色顯示代代碼。源代碼瀏瀏覽器,保存了了在源碼碼中定義義的所有有符號,能夠使使用戶在在源碼中中快速方方便的跳跳轉(zhuǎn)。查找和替替換功能能,用戶戶可在多多個文件件中,利利用字符符串通配配符,進進行字符符串的搜搜索和替替換。文件比較較功能,可以使使用戶比比較路徑徑中的不不同文本本文件內(nèi)內(nèi)容。ARMADS由6部部分組成成:1)代碼碼生成工工

28、具。2)集成成開發(fā)環(huán)環(huán)境。3)調(diào)試試器。4)指令令集模擬擬器。5)ARM開發(fā)發(fā)包。6)ARM應(yīng)用用庫。9.3.2ADS應(yīng)用1.建建立一一個工程程工程將所所有的源源碼文件件組織在在一起,并能夠夠決定最最終生成成文件存放路徑徑,輸出出文件格格式等。1)首先先在CodeWarrior中新建建一個工工程的方方法有兩兩種,可可以在工具欄中中單擊New按按鈕,也也可以在在File菜單單中選擇擇New命令。CodeWarrior初始始工程對對話框?qū)υ捒蛑兄袨橛脩魬籼峁┝肆?種可可選擇的的工程類類型:ARMExecutableImage:用用于由ARM指指令的代代碼生成成一個ELF格格式的可可執(zhí)行映映像文件件

29、。ARMObject Library:用于由由ARM指令的的代碼生生成一個個armar格格式的目目標文件件庫。EmptyProject:用于于創(chuàng)建一一個不包包含任何何庫或源源文件的的工程。MakefileImporterWizard:用于將將Visual C的的nmake或或GNU make文文件轉(zhuǎn)入入到CodeWarrior IDE工工程文件件。ThumbARMInterworking Image:用于于由ARM指令令和Thumb指令的的混和代代碼生成成一個可可執(zhí)行的的ELF格式的的映像文文件。ThumbExecutable image:用于于由Thumb指令創(chuàng)創(chuàng)建一個個可執(zhí)行行的ELF格式

30、式的映像像文件。ThumbObjectLibrary:用用于由Thumb指令令的代碼碼生成一一個armar格式的的目標文文件庫。選擇ARMExecutable Image工程,在Projectname文本本框中輸輸入工程程文件名名如Test,單擊Set按按鈕,可可更改該該工程保保存的路路徑,將將這些設(shè)設(shè)置好后后,單擊擊“確定定”即可可建立一一個新的的名為Test.mcp的ADS工工程。*.mcp文件件是ARM的的工程文文件,當當建立一一個工程程文件后后,可以以通過打打開該工工程的*.mcp文件件在CodeWarrior中打開開該工程程。這時會出出現(xiàn)Test.mcp的窗口口。可以看到到它默認認的

31、目標標調(diào)試環(huán)環(huán)境是DebugRel,單擊擊旁邊的的下三角按鈕鈕,可以以看到還還有另外外兩個可用用的目標標調(diào)試環(huán)環(huán)境,分分別為Release和和Debug。工程窗口口這3個目目標調(diào)試試系統(tǒng)的的含義:DebugRel:表表示在生生成目標標的時候候,會為為每一個個源文件件生成調(diào)調(diào)試信息息。Debug:表表示該目目標為每每一個源源文件生生成最完完全的調(diào)調(diào)試信息息。Release:表示示該目標標不會生生成任何何調(diào)試信信息。有3個標標簽,分分別為Files、Link Order和Target,默默認的是是顯示第第一個Files選項項卡。通通過在該該空白的的選項卡卡上右擊擊,選擇擇Add Files命令可可

32、以把要要用到的的源程序序添加到到該工程程中。2)打開開ADS的MetrowerksCodeWarrior集集成開發(fā)發(fā)環(huán)境IDE,單擊工具欄欄上的新新建文本本文件的的圖標,可在在出現(xiàn)的的IDE下的空空白頁面上上輸入要要調(diào)試的的源文件件,并以以Test1.s為文文件名后后綴保存。3)將文文件保存存在剛才才所建工工程的文文件夾下下,文件件名為Test1.s。最小小化該頁頁面,也也可以在在Project菜單單中,選選擇AddFiles命令令,打開開文件對對話框,用戶可可以把已已經(jīng)存在在的文件件添加到工程中中,也可可以在剛剛才所建建工程中中添加該該工程。 在工程中中添加文文件2.編編譯和鏈鏈接工程程(1

33、)生生成目標標的配置置選擇Edit|DebugRelSettings命令令或直接接單擊工工具欄上上的DebugRelSettings圖標標,可以以對生成成的目標標文件進進行配置置。這個選項會會因創(chuàng)建建工程時時選擇目目標調(diào)試試系統(tǒng)不不同而不不同。DebugRel設(shè)置置對話框框1)Target設(shè)置置選項。TargetName文本本框顯示示了當前前的目標標設(shè)置。Linker下下拉列表表框供用用戶選擇擇要使用用的鏈接接器。這這里默認認的是ARMLinker,使用用該鏈接接器,將將使用ARMLinker鏈接編編譯器和和匯編器器生成的的工程文文件作為為相應(yīng)目目標文件件。另外兩個個可選項項,None表表示不

34、用用任何鏈鏈接器即即工程中中的所有有文件都都不會被被編譯器器或匯編編器處理理。ARMLibrarian表表示將編編譯或匯匯編得到到的目標標文件轉(zhuǎn)轉(zhuǎn)換為ARM庫庫文件。這里使使用默認認的鏈接接器ARMLinker。Post-Linker下拉拉列表框框表示鏈鏈接后,對輸出出文件進進行怎樣樣的操作作。2)Language Settings。ARMADS的匯編編器是armasm。如圖所所示,這這里可以以進行很很多設(shè)置,包包括運行行的目標標處理器器的內(nèi)核核系列,可根據(jù)據(jù)運行的的目標板處理器器類型進進行選擇擇。命令行工工具選項項設(shè)置3)Linker設(shè)置置。選中ARMLinker,打開對對話框。對話框框的主

35、要要標簽選選項對最最終生成成的文件件有著直直接的影影響。在選項卡卡Output中,Linktype選項項中提供供了3種種鏈接方方式。Partial方式表表示鏈接接器只進進行部分分鏈接,經(jīng)過部部分鏈接接生成的的目標文文件,可可以作為為以后進進一步鏈鏈接時的的輸入文文件。Simple方方式是默默認的鏈鏈接方式式,它鏈鏈接生成成簡單的的ELF格式的的目標文文件,使使用的是是鏈接器器選項中中指定的的地址映映射方式式。Scattered方式式使鏈接接器根據(jù)據(jù)scatter格式式文件指指定地址址映射,生成復(fù)復(fù)雜的ELF格格式的映映像文件件,這個個選項一一般情況況下不用用。這里里選擇常常用默認認的Simpl

36、e方式式。鏈接器設(shè)設(shè)置在選中Simple方方式后,就會出出現(xiàn)Simpleimage,其其各項含含義:ROBase:即Read-only段段,段是是指描述述映像文文件的代代碼或數(shù)數(shù)據(jù)塊。該段的的加載域域和運行行域為同同一個地地址,默默認是0 x8000。這里要要根據(jù)實實際的硬硬件SDRAM的地址址空間來來修改這這個地址址,保證證在這里里填寫的的地址,是程序序運行時時SDRAM地地址空間間所能覆覆蓋的地地址。RWBase:即Read-write段,這這個文本本框設(shè)置置了包含含RW和和ZI(zero-initialized)輸輸出段的的運行域域地址。如果選選中split選項,鏈接器器生成的的映像文文

37、件將包包含兩個個加載域域和兩個個運行域域。此時時,在RWBase中所輸輸入的地地址為包包含RW和ZI輸出段段的域設(shè)設(shè)置了加加載域和和運行域域地址。Ropi:選中中這個復(fù)復(fù)選框?qū)⒏嬖V鏈鏈接器使使包含有有RO輸輸出段的的運行域域位置無無關(guān)。使使用這個個選項,鏈接器器將保證證:首先先檢查各各段之間間的重地地址是否否有效,其次確確保任何何由ARM鏈接接器armlink自自身生成成的代碼碼是只讀讀位置無無關(guān)的。Rwpi:選中中該復(fù)選選框?qū)嬖V鏈鏈接器使使包含RW和ZI輸出出段的運運行域位位置無關(guān)關(guān)。如果果它沒有有被選中中,域就就標識為為絕對。每一個個可寫的的輸入段段必須是是讀寫位位置無關(guān)關(guān)的。如如

38、果被選選中,鏈鏈接器檢檢查可讀讀/可寫寫屬性的的運行域域的輸入入段是否否設(shè)置了了位置無無關(guān)屬性性,檢查查在各段段之間的的重地址址是否有有效。SplitImage:選選中這個個復(fù)選框框把包含含RO和和RW輸輸出段的的加載域域分成兩兩個加載載域:一一個是包包含RO輸出段段的域,一個是是包含RW輸出出段的域域。Relocatable:選選中這個個復(fù)選框框保留了了映像文文件的重重地址偏偏移量。這些偏偏移量為為程序加加載器提提供了有有用信息息。Options選項卡卡,用于于指明存存儲器的的替換方方法、調(diào)調(diào)試信息息的設(shè)置置和映像像文件的的初始入入口地址址等信息息。鏈接器的的操作選選項卡設(shè)設(shè)置(2)進進行編

39、譯譯和鏈接接選擇Project|make命令或或單擊工工具欄上上的Make圖圖標,就就可以對工程進進行編譯譯和鏈接接了。在在工程Test所在目目錄下,會生成成一個名為“工程名名_data目目錄”,在本例例中就是是“Test_data目錄錄”,在在這個目錄錄下不同同類別的的目標對對應(yīng)不同同目錄。本例使使用的是是DebugRel目標標,所以以生成的的最終文文件都應(yīng)應(yīng)該在該該目錄下下。進入到DebugRel目錄中中,會看看到生成成的映像像文件和和二進制制文件,映像像文件用用于調(diào)試試,二進進制文件件可以燒燒寫到開開發(fā)板或或?qū)嶒炏涞腇lash中運行行。編譯和鏈鏈接過程程3.用用AXD進行代代碼調(diào)試試AX

40、D是是ADS軟件中中獨立于于CodeWarriorIDE的代碼碼調(diào)試工工具,打打開AXD軟件件,默認認打開的的目標是是ARMulator。ARMulator是在在主系統(tǒng)統(tǒng)上用軟軟件模擬擬各種ARM處處理器核核行為的的程序。這是最最常用的的一種調(diào)調(diào)試工具具,要使使用AXD必須須首先打打開已經(jīng)經(jīng)生成的的.axf文件件,該文文件就是是含有調(diào)調(diào)試信息息的可執(zhí)執(zhí)行ELF格式式的映像像文件。在沒有添添加其他他仿真驅(qū)驅(qū)動程序序前,Target項項只有有兩項分分別為ADDP (JTAG硬件仿仿真)和和ARMUL(即ARMulator軟件件仿真)。如果果使用其其他硬件件仿真器器連接到到相應(yīng)的的目標板板或?qū)嶒烌炏?/p>

41、上,可以打打開AXD工具具欄的Options |Configure Target命命令進行行添加。在添加加之前首首先要進進行相應(yīng)應(yīng)仿真器器驅(qū)動程程序的安安裝,將將仿真器器的驅(qū)動動文件復(fù)復(fù)制到ADS的的BIN目錄下下,如C:Program FilesARMADSv1_2 BIN。AXD的的選擇目目標環(huán)境境對話框框AXD調(diào)調(diào)試環(huán)境境9.4EmbestIDE介介紹9.4.1概概述1.Embest IDE集集成開發(fā)發(fā)環(huán)境EmbestIDE的英文文全稱是是Embest IntegratedDevelopmentEnvironment,是是由深圳圳市英蓓蓓特信息息技術(shù)有有限公司司開發(fā),應(yīng)用于嵌入入式軟件件

42、開發(fā)的的集成開開發(fā)環(huán)境境。提供供嵌入式式應(yīng)用軟軟件開發(fā)平臺,包括一一整套完完備的面面向嵌入入式系統(tǒng)統(tǒng)的開發(fā)發(fā)和調(diào)試試工具:有編輯輯器、編編譯器、鏈接器器、調(diào)試試器、工工程管理理器和底底層調(diào)試接接口設(shè)備備(BDM/JTAG仿真器器)等。集成開開發(fā)環(huán)境境IDE的界面同同Microsoft VisualStudio環(huán)環(huán)境相似似,可以以在EmbestIDE集集成開發(fā)發(fā)環(huán)境中中創(chuàng)建工工程、打打開工程程,建立立、打開開和編輯輯文件,編編譯、鏈鏈接、運運行、調(diào)調(diào)試嵌入入式應(yīng)用用程序。EmbestIDE工具集集示意圖圖2.EmbestIDE主要特特征EmbestIDE可運行行于Windows系系列操作作系統(tǒng),

43、支持ARM7和ARM9系列處處理器、Motorola公公司的部部分處理理器。與與處理器器和調(diào)試設(shè)備備相關(guān)模模塊采用用即插即即用方式式,可以以在同一一個工作作區(qū)中同時管理理多個應(yīng)應(yīng)用軟件件和庫工工程,各各工程均均可配置置不同的的處理器和仿真真器,用用戶可以以在各工工程中無無縫切換換。EmbestIDE forARM的的主要特特性:支持開發(fā)發(fā)語言:ANSIC、Embedded C+、匯匯編語言言。類似VisualStudio的的用戶界界面,支支持打印印功能,支持文文件內(nèi)查查找功能能和FindinFiles功功能,支支持C語語言程序序函數(shù)列列表及定定位。工程管理理器:以以project為單單位管理理

44、用戶的的應(yīng)用程程序,進進行編譯譯鏈接選選項定制制。源碼編輯輯器:支支持標準準的文本本編輯功功能、syntax-color、用戶定定義語言言模板、語法關(guān)關(guān)鍵字、關(guān)鍵字字色彩顯顯示和Hex文文件編輯輯器。編譯工具具:使用用自由軟軟件GNU的GCC編編譯鏈接接器,同同時兼容容ARM SDT編譯譯工具套套件,支支持C語語言、匯匯編語言言等。調(diào)試器:源碼級級調(diào)試,提供了了圖形和和命令行行兩種調(diào)調(diào)試方式式??蛇M進行斷點點設(shè)置、單步執(zhí)執(zhí)行、異異常處理理,可查查看修改改存儲器器、寄存存器、變變量等,可查看看函數(shù)棧棧、堆棧棧;可進進行反匯匯編、提提供圖形形界面操操作和命命令行操操作方式式,支持持源程序序、反匯匯

45、編程序序和混合合窗口顯顯示,還還提供了了程序下下載功能能等。3.EmbestIDE主框架架窗口EmbestIDE主界面面圖開發(fā)環(huán)境境主框架架窗口由由標題欄欄、菜單單欄、工工具欄、工作區(qū)區(qū)、客戶戶區(qū)、輸輸出窗口口和狀態(tài)態(tài)欄等組組成。主主框架窗窗口的最最上端為為標題欄欄,用于于顯示當當前打開開的文件件名。標標題欄下下面為菜菜單欄和和工具欄欄,工具具欄的下下面為工工作區(qū)和和客戶區(qū)區(qū)。工作作區(qū)用于于顯示當當前打開開工程的的有關(guān)信信息,包包括工程程的文件件組成等等內(nèi)容??蛻魠^(qū)區(qū)用于文文本編輯輯器進行行C、匯匯編等源源文件的的編輯。輸出窗窗口通常常在工作作區(qū)和客客戶區(qū)的的下面,用于輸輸出編譯譯信息、調(diào)試信

46、信息、命命令行輸輸入/輸輸出和輸輸出一些些查詢結(jié)結(jié)果信息息等。主主框架窗窗口的最最底端為為狀態(tài)欄欄,用于于顯示關(guān)關(guān)于菜單單欄、工工具欄等等的簡單單說明信信息以及及文本編編輯器中中當前光光標所在在的行列列號等。各個欄欄、區(qū)的的功能和和Visual Studio中基基本相同同,這里里不再贅贅述。9.4.2工工程示示例從一個簡簡單工程程的創(chuàng)建建、編譯譯、下載載到調(diào)試試運行來來說明Embest IDE的應(yīng)應(yīng)用。1工程程的創(chuàng)建建打開EmbestIDE軟軟件,選選擇File|New Workspace命令令建立一個個新的工工程,在在彈出的的對話框框中輸入入工程的的名稱,并確定工程存存放的路路徑。單單擊OK

47、按鈕保保存自己己的設(shè)置置。工程對話話框2.輸輸入源文文件并加加到工程程中選擇File|New命命令或單單擊工具具欄上的的新建文文本文件件圖標,在客戶區(qū)區(qū)中輸入入自己的的源文件件。該文文件完成成將十六六進制的的AA、56存儲儲到內(nèi)存存中0 x8000開始始的存儲儲單元中中。保存文件件到工程程Test所在在的目錄錄下,注注意文件件名應(yīng)以以.s為為擴展名,這里里保存為為Test.s。在工作區(qū)區(qū)的ProjectSource Files中右擊擊,在彈彈出的對對話框中中選擇Add Files to Folder命令令,添加加Test.s到工程程Test中。3.編編譯工程程在編譯工工程前先先要對工工程文件件將要運運行的目目標環(huán)境境進行設(shè)設(shè)置。選選擇Project|Settings命令令,彈出出對話框框。設(shè)置置完CPU的類類型和所所用的編編譯工具具后,單單擊OK按鈕。單擊工具具欄上的的Build圖圖標,或按F7快捷捷鍵對工工程進行行編譯。如果文文件有錯錯誤會在在輸出窗窗口輸出出錯誤信信息,可可根據(jù)錯錯誤信息息進行修修改。如如果沒錯錯誤將輸輸出Command(s)successfully exec

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論