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

下載本文檔

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

文檔簡介

1、嵌入式系統(tǒng)設(shè)計與開發(fā)第9章 ARM嵌入式開發(fā)工具.本章提要 9.1 ARM下層開發(fā)工具 9.2 ARM開發(fā)工具概述 9.3 ARM的ADS 9.4 Embest IDE的引見.9.1 ARM下層開發(fā)工具由于程序的編譯環(huán)境和運轉(zhuǎn)環(huán)境不同,所以ARM嵌入式開發(fā)采用交叉編譯方法進(jìn)展。首先,在通用計算機上對源程序進(jìn)展編寫、編譯、匯編、銜接構(gòu)成可以在目的系統(tǒng)上運轉(zhuǎn)的目的文件;接著,經(jīng)過銜接/調(diào)試安裝將目的文件下載到目的系統(tǒng)上運轉(zhuǎn);源程序在目的系統(tǒng)上運轉(zhuǎn)的情況銜接安裝在計算機中反映出來,開發(fā)人員經(jīng)過反映出的情況根據(jù)開發(fā)工程的需求進(jìn)展相應(yīng)的修正并反復(fù)上述操作直至到達(dá)工程開發(fā)預(yù)期結(jié)果。因此,可以把ARM嵌入式

2、開發(fā)工具分為上層裝在計算機中的開發(fā)工具、中間的銜接安裝和下層的ARM芯片本身具有的支持嵌入式開發(fā)的工具。.ARM 嵌入式系統(tǒng)實時開發(fā)組織構(gòu)造圖.9.1.1 JTAG接口 JTAG接口規(guī)范是由測試結(jié)合行動組joint test action group于19861988年推出的基于邊境掃描機制的規(guī)范化草案。1990年IEEE組織將這些草案規(guī)范化,并命名為IEEE 1149.1規(guī)范,俗稱JTAG調(diào)試規(guī)范。JTAG除了實現(xiàn)通常意義上的調(diào)試功能外,還可實現(xiàn)代碼下載或單步執(zhí)行程序等功能。 . 邊境掃描機制主要的思想是:經(jīng)過在內(nèi)部邏輯之間,即在內(nèi)部邏輯的邊境上添加串行的可讀寫的邊境掃描單元,從而提供芯片級

3、、板級、系統(tǒng)級的規(guī)范測試框架。邊境掃描機制可以實現(xiàn)以下目的:測試不同單元之間的銜接。測試單個單元的功能。運用邊境掃描存放器完成其他測 試功能,如偽隨機測試、特征分 析和靜態(tài)測試等。.JTAG接口 的6個主要信號 :1Test Clock InputTCK。TCK為TAP的操作提供了一個 獨立的、根本的時鐘信號,TAP的一切操作都是經(jīng)過這個時鐘信號來驅(qū)動的。TCK在IEEE 1149.1規(guī)范里是強迫要求的。 2Test Mode Selection InputTMS。TMS信號用來控制TAP形狀機的轉(zhuǎn)換,經(jīng)過TMS信號,可以控制TAP在不同的狀態(tài)間相互轉(zhuǎn)換。TMS信號在TCK的上升沿有效。TMS

4、在IEEE 1149.1規(guī)范里是強迫要求的。 3Test Data InputTDI。TDI是數(shù)據(jù)輸入接口。一切要輸入到特定存放器的數(shù)據(jù)都是經(jīng)過TDI接口一位一位串行輸入的由TCK驅(qū)動。TDI在IEEE 1149.1規(guī)范里是強迫要求的。 .4Test Data OutputTDO。TDO是數(shù)據(jù)輸出的接口。一切要從特定邊境掃描鏈采樣的保管在存放器中的數(shù)據(jù)都是經(jīng)過TDO接口一位一位串行輸出的由TCK驅(qū)動;在芯片串行測試時,將數(shù)據(jù)傳送給下一個芯片。TDO在IEEE 1149.1規(guī)范里是強迫要求的。 5Test Reset InputTRST/nTRST。TRST可以用來對TAP Controller

5、進(jìn)展復(fù)位初始化即JTAG復(fù)位。該信號接口在IEEE 1149.1規(guī)范里是可選的,由于經(jīng)過TMS也可以對TAP Controller進(jìn)展復(fù)位/初始化。為了防止誤觸發(fā),應(yīng)在該端加適當(dāng)上拉電阻。6System ResetnSRST/SRST。與目的板上的系統(tǒng)復(fù)位信號相連。可以直接對目的系統(tǒng)復(fù)位,同時可以檢測目的系統(tǒng)的復(fù)位情況。該信號接口在IEEE 1149.1規(guī)范里是可選的,并不是強迫要求的。.20針JTAG接口信號 20針JTAG接口銜接 .9.1.2 JTAG TAP JTAG測試訪問端口JTAG TAP是一個通用端口,是外部JTAG接口銜接芯片的通道,由JTAG TAP控制器和掃描鏈構(gòu)成。經(jīng)過

6、TAP可以訪問芯片提供的一切數(shù)據(jù)存放器DR,data register和指令存放器IR,instruction register。對整個TAP的控制是經(jīng)過TAP Controller完成的。TAP有5個接口信號:TCK、TMS、TDI、TDO和TRST,提供應(yīng)JTAG接口。.掃描鏈?zhǔn)怯山咏酒妮斎?輸出管腳上各添加一個用于實現(xiàn)對芯片輸入/輸出信號進(jìn)展察看和控制的移位存放器單元,相互銜接構(gòu)成。即在芯片/內(nèi)部邏輯的周圍構(gòu)成一個邊境掃描鏈boundary-scan chain。假設(shè)需求捕獲芯片某個管腳上的輸出,首先需求把該管腳上的輸出裝載到邊境掃描鏈的存放器單元里,然后經(jīng)過TDO輸出,得到相應(yīng)管腳

7、的輸出信號。假設(shè)要在芯片的某個管腳上加載一個特定的信號,那么首先經(jīng)過TDI把期望的信號移位到與相應(yīng)管腳相連的邊境掃描鏈的存放器單元里,然后把該存放器單元的值加載到相應(yīng)的芯片管腳。 .在IEEE 1149.1規(guī)范里面,存放器分為兩大類:數(shù)據(jù)存放器DR和指令存放器IR。邊境掃描鏈屬于數(shù)據(jù)存放器的一種,用來實現(xiàn)對芯片的輸入/輸出的察看和控制,而指令存放器用來實現(xiàn)對數(shù)據(jù)存放器的控制。如在芯片提供的一切邊境掃描鏈中選擇一條指定的邊境掃描鏈作為當(dāng)前的目的掃描鏈,并作為訪問對象就是由相應(yīng)指令存放器完成的。.經(jīng)過TAP接口,對數(shù)據(jù)存放器進(jìn)展訪問的普經(jīng)過程是:1經(jīng)過指令存放器,選定一個需求訪問的數(shù)據(jù)存放器。2把

8、選定的數(shù)據(jù)存放器銜接到TDI和TDO之間。3由TCK驅(qū)動,經(jīng)過TDI,把需求的數(shù)據(jù)輸入到選定的數(shù)據(jù)寄存器中,同時把選定的數(shù)據(jù)存放器中的數(shù)據(jù)經(jīng)過TDO讀出來。 .JTAG TAP 控制器形狀轉(zhuǎn)換圖 .指令存放器和數(shù)據(jù)存放器任務(wù)過程: 1系統(tǒng)上電后在TMS信號驅(qū)動下,TAP Controller進(jìn)入Test-Logic Reset形狀,然后可依次進(jìn)入Run-Test/IdleSelect-DR-ScanSelect-IR-ScanCapture-IRShift-IR Exit1-IRPause-IRExit2-IRUpdate-IR,最后回到Run-Test/Idle形狀。在Capture-IR形

9、狀中,一個特定的指令加載到指令存放器中,進(jìn)入到Shift-IR形狀。在Shift-IR形狀下,經(jīng)過TCK的驅(qū)動,可以將該指令送到指令存放器中。每條指令都將確定一個相應(yīng)的數(shù)據(jù)存放器。然后可以沿著Shift-IRExit1-IRPause-IRExit2-IRUpdate-IR途徑進(jìn)展,也可以沿著其他的途徑到達(dá)Update-IR形狀。在Update-IR形狀,剛剛輸入到指令存放器中的指令將更新指令存放器成為當(dāng)前指令。最后,進(jìn)入到Run-Test/Idle形狀,指令生效,完成對指令存放器的訪問。 .2對當(dāng)前數(shù)據(jù)存放器的訪問由指令存放器中的當(dāng)前指令決議。要訪問由指令選定的數(shù)據(jù)存放器,需求以Run-Te

10、st/Idle為起點在TMS信號驅(qū)動下,依次進(jìn)入Select-DR-Scan Capture-DR Shift-DRExit1-DRPause-DRExit2-DRUpdate-DR,最后回到Run-Test/Idle形狀。在這個過程中,被當(dāng)前指令選定的數(shù)據(jù)存放器會被銜接在TDI和TDO之間。經(jīng)過TDI和TDO,就可以將新的數(shù)據(jù)加載到數(shù)據(jù)存放器中,同時,也可以捕獲數(shù)據(jù)存放器中的數(shù)據(jù)。.如今常用的ARM7和ARM9的微內(nèi)核ARM7TDMI與ARM9TDMI都提供了4條掃描鏈: 1Scan Chain 0 測試鏈2Scan Chain 1調(diào)試鏈3Scan Chain 2編程鏈4Scan Chain

11、 3外圍測試鏈.ARM9TDMI邊境掃描鏈1的另外兩個信號DDEN和SYSSPEED的作用是:DDEN在ARM9TDMI內(nèi)部測試方式下,是可獲取、可測試的。在ARM9TDMI外部測試方式下低電平表示將獲取數(shù)據(jù)總線上輸入的數(shù)據(jù),高電平表示將要輸出掃描鏈上存儲的數(shù)據(jù)。在ARM9TDMI進(jìn)入調(diào)試形狀時,SYSSPEED將輸出。低電平表示微內(nèi)核如今進(jìn)入斷點調(diào)試,高電平表示微內(nèi)核進(jìn)入觀 察點調(diào)試形狀。 .9.1.3 Embedded ICE 嵌入式在線仿真器 系統(tǒng)中內(nèi)核調(diào)試功能,主要由4部分組成: ARM核內(nèi)的一組調(diào)試擴展。Embedded ICE宏。Embedded ICE宏接口?;贘TAG接口的在

12、主機和內(nèi)核之間的調(diào)試通訊通道。 .Embedded ICE存放器 地 址 寬 度 功 能 地 址 寬 度 功 能 00000 6 調(diào)試控制寄存器 01100 9觀察點0控制值寄存器 00001 5調(diào)試狀態(tài)寄存器 01101 8觀察點0控制屏蔽寄存器 00010 1中止?fàn)顟B(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觀

13、察點1控制值寄存器 01010 32觀察點0數(shù)據(jù)值寄存器 10101 8觀察點1控制屏蔽寄存器 01011 32觀察點0數(shù)據(jù)屏蔽寄存器 .調(diào)試控制存放器debug control register用來控制Embedded ICE,6位分別對應(yīng)6種控制信號,從低到高依次是DBGACK、DBGRQ、INTDIS、SBZ/RAZ、Monitor Mode Enable和Embedded ICE。DBGRQ調(diào)試懇求信號,經(jīng)過將該信號置1,可以強迫ARM7TDMI/ARM9TDMI暫停當(dāng)前的指令,進(jìn)入調(diào)試形狀;INTDIS用來控制中斷;SBZ/RAZ任何時候都必需被置0;Monitor Mode Ena

14、ble用來控制能否進(jìn)入Monitor方式; Embedded ICE-RT Disable用來控制整個Embedded ICE-RT,是啟用還是禁用,假設(shè)禁用的話,ARM7TDMI/ARM9TDMI將不斷堅持在正常的運轉(zhuǎn)形狀。.經(jīng)過調(diào)試形狀存放器debug status register可以查詢當(dāng)前系統(tǒng)的形狀。調(diào)試形狀存放器是可讀可寫的,但普通只進(jìn)展讀操作。5位信號從低位到高位分別是:DBGACK、DBGRQ、IFEN、CGENL和TBIT,其中DBGACK標(biāo)識當(dāng)前系統(tǒng)能否處于調(diào)試形狀,置1表示處于調(diào)試形狀;DBGRQ標(biāo)識DBGRQ信號的當(dāng)前形狀;IFEN標(biāo)識系統(tǒng)的中斷形狀是啟用還是禁用;CG

15、ENL標(biāo)識調(diào)試形狀下對存儲器的訪問能否完成;TBIT用來判別是從ARM還是Thumb方式進(jìn)入調(diào)試形狀。.中止形狀存放器abort status register用來確定異常的產(chǎn)生緣由:斷點、察看點還是真的異常。調(diào)試通訊控制存放器debug comms control register和調(diào)試通訊數(shù)據(jù)存放器debug comms data register是用來控制和操作調(diào)試通訊通道。其他的存放器都是關(guān)于察看點WATCH POINT的存放器,用于設(shè)置斷點和察看點。剩下的12個存放器可以表示成如下方式:察看點0/1地址值/屏蔽存放器。察看點0/1數(shù)據(jù)值/屏蔽存放器。察看點0/1控制值/屏蔽存放器。.

16、9.1.4 ETM嵌入式跟蹤宏 ETM能捕獲指令和數(shù)據(jù)序列,訪問并把它們的記錄發(fā)送給芯片上或芯片外的緩沖器,ARM的ETM既可設(shè)置成允許觸發(fā)器任務(wù)也可設(shè)置成允許跟蹤結(jié)果被濾出。運用ETM的過濾功能,可以只捕獲特別中斷的或特殊文件的代碼執(zhí)行,即相當(dāng)于提供了對代碼的緊縮功能。ETM由如下兩部分組成:跟蹤端口,用于實時執(zhí)行的跟蹤。代碼執(zhí)行時,CPU發(fā)送串行、經(jīng)過編碼、緊縮的分支目的地址、管線形狀、讀寫數(shù)據(jù)給ETM。觸發(fā)安裝,規(guī)范已被開發(fā)。該規(guī)范允許指定特定運用所需的觸發(fā)源的準(zhǔn)確集合。資源包括地址和數(shù)據(jù)比較器、計數(shù)器和定序器。.9.2 ARM開發(fā)工具概述9.2.1 JTAG仿真器JTAG仿真器也稱為J

17、TAG調(diào)試器,是經(jīng)過ARM芯片的JTAG邊界掃描口進(jìn)展調(diào)試的設(shè)備。JTAG仿真器銜接比較方便,經(jīng)過現(xiàn)有的JTAG邊境掃描口與 ARM CPU 核通訊,屬于完全非插入式即不運用片上資源調(diào)試,它無需目的存儲器,不占用目的系統(tǒng)的任何端口,而這些是駐留監(jiān)控軟件所必需的。另外,由于JTAG調(diào)試的目的程序是在目的板上執(zhí)行,仿真更接近于目的硬件,因此,許多接口問題,如高頻操作限制、AC和DC參數(shù)不匹配與電線長度的限制等均被最小化了。運用集成開發(fā)環(huán)境配合JTAG仿真器進(jìn)展開發(fā)是目前采用最多的一種調(diào)試方式。 .JTAG仿真器經(jīng)過ARM處置器的JTAG調(diào)試接口與目的機通訊,經(jīng)過并口或串口、網(wǎng)口、USB口與宿主機通

18、訊。經(jīng)過JTAG方式可以完成: 讀出/寫入CPU的存放器,訪問控制ARM處置器內(nèi)核。讀出/寫入內(nèi)存,訪問系統(tǒng)中的存儲器和系統(tǒng)端口。訪問ASI C系統(tǒng)。訪問I/O系統(tǒng)。控制程序運轉(zhuǎn)、停頓、單步執(zhí)行和實時執(zhí)行程序、設(shè)置程序斷點。復(fù)位目的系統(tǒng)、下載代碼到目的ARM。實時的設(shè)置基于指令地址值、數(shù)據(jù)值的斷點。.目前國內(nèi)最常用的幾種該類型仿真器:1Embest PowerICE for ARMEmbest PowerICE for ARM是英蓓特公司開發(fā)的實時在線仿真器。2RealView ICERealView ICE是ARM公司最新仿真器。3TRACE32-ICDTRACE32-ICD是德國Laute

19、rbach公司開發(fā)的基于BDM、JTAG和OCDS等調(diào)試接口的仿真工具。.9.2.2 在線仿真器ICE在線仿真器ICEin-circuit emulator是一種模擬CPU的設(shè)備,在線仿真器運用仿真頭完全取代目的板上的CPU,可以完全仿真ARM芯片的行為,提供更加深化的調(diào)試功能。在和宿主機銜接的接口上,在線仿真器也是經(jīng)過串行端口或并行端口、網(wǎng)口和USB口通訊。在線仿真器為了可以全速仿真時鐘速度很高的ARM處置器,通常必需采用極其復(fù)雜的設(shè)計和工藝,因此其價錢比較昂貴。在線仿真器通常用在ARM硬件開發(fā)中,軟件開發(fā)中運用較少。 .9.2.3 集成開發(fā)環(huán)境本身帶的仿真軟件以Embest為例,編譯好運轉(zhuǎn)

20、在目的系統(tǒng)上的文件后,在Project Settings對話框的Remote選項卡上,選擇Remote device下拉列表框的SimArm7選項,即可經(jīng)過軟件方式在IDE中進(jìn)展仿真。.Embest IDE軟件仿真設(shè)置 .9.2.4 Multi 2000集成開發(fā)環(huán)境Multi 2000是美國Green Hills軟件公司ghs開發(fā)的集成開發(fā)環(huán)境,支持C/C+/Embedded C+/Ada 95/Fortran編程言語的開發(fā)和調(diào)試,可運轉(zhuǎn)于Windows平臺和UNIX平臺,并支持各類設(shè)備的遠(yuǎn)程調(diào)試。Multi 2000支持的編譯器除了該公司的各類編譯器和其他遵照EABIembeddedappl

21、ication binary interface規(guī)范的編譯器外,還支持16位、32位、64位的處置器和DSP,包括PowerPC、ARM、MIPS、x86、Sparc、TriCore、SH-DSP等,并支持多處置器調(diào)試。Multi 2000包含完成一個軟件工程所需求的一切工具,這些工具可以單獨運用,也可集成第三方系統(tǒng)工具。.Multi 2000模塊與運用系統(tǒng) .該IDE開發(fā)環(huán)境主要包括:工程生成工具project builer源代碼調(diào)試器source-level debugger事件分析器event analyzer性能分析器performance profiler實時運轉(zhuǎn)錯誤檢查工具run-

22、time error checking圖形化閱讀器graphical brower文本編輯器text editor版本控制工具version control system.9.2.5 RVDS集成開發(fā)環(huán)境Real View Developer Suite工具是ARM公司繼ADS之后推出的新一代ARM集成開發(fā)環(huán)境,是RealView ARM新一代開發(fā)工具集中的集成開發(fā)環(huán)境部分,目前的最新版本是2.2。RealView ARM完好的開發(fā)工具,包括集成開發(fā)環(huán)境、在線調(diào)試工具仿真器等。適用于采用多ARM內(nèi)核構(gòu)造或ARM內(nèi)核加DSP內(nèi)核混合構(gòu)造的系統(tǒng),為開發(fā)人員提供一個“認(rèn)識操作系統(tǒng)OS-aware的多

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

24、eadX和Nucleus等操作系統(tǒng)。具有跟蹤、分析程序功能。 .9.3 ARM的ADS ADS即 ARM Developer Suite,是ARM公司推出的新一代ARM集成開發(fā)工具,用來取代ARM公司在此前推出的開發(fā)工具ARM SDTARM software development toolkit。.9.3.1 ADS引見ARM ADS運用CodeWarrior IDE集成開發(fā)環(huán)境替代了SDT的工程管理器APM,運用AXDARM extended debugger交換了SDT的調(diào)試工具ADW,可以在Windows和RedHat Linux上運行。.CodeWarrior IDE為用戶提供下面的

25、功能:源代碼編輯器,集成在CodeWarrior IDE閱讀器中,可以根據(jù)語法格式,運用不同的顏色顯示代碼。源代碼閱讀器,保管了在源碼中定義的一切符號,可以運用戶在源碼中快速方便的跳轉(zhuǎn)。查找和交換功能,用戶可在多個文件中,利用字符串通配符,進(jìn)展字符串的搜索和交換。文件比較功能,可以運用戶比較途徑中的不同文本文件內(nèi)容。 .ARM ADS由6部分組成:1代碼生成工具。2集成開發(fā)環(huán)境。3調(diào)試器。4指令集模擬器。5ARM開發(fā)包。6ARM運用庫。.9.3.2 ADS運用1. 建立一個工程工程將一切的源碼文件組織在一同,并可以決議最終生成文件存放途徑,輸出文件格式等。 1首先在CodeWarrior中新建

26、一個工程的方法有兩種,可以在工具欄中單擊New按鈕,也可以在File菜單中選擇New命令。.CodeWarrior初始工程對話框 .對話框中為用戶提供了7種可選擇的工程類型:ARM Executable Image:用于由ARM指令的代碼生成一個ELF格式的可執(zhí)行映像文件。ARM Object Library:用于由ARM指令的代碼生成一個armar格式的目的文件庫。Empty Project:用于創(chuàng)建一個不包含任何庫或源文件的工程。Makefile Importer Wizard:用于將Visual C的nmake或GNU make文件轉(zhuǎn)入到CodeWarrior IDE 工程文件。Thum

27、b ARM Interworking Image:用于由ARM指令和Thumb指令的混和代碼生成一個可執(zhí)行的ELF格式的映像文件。Thumb Executable image:用于由Thumb指令創(chuàng)建一個可執(zhí)行的ELF格式的映像文件。Thumb Object Library:用于由Thumb指令的代碼生成一個armar格式的目的文件庫。 .選擇ARM Executable Image工程,在Project name文本框中輸入工程文件名如Test,單擊Set按鈕,可更改該工程保管的途徑,將這些設(shè)置好后,單擊“確定即可建立一個新的名為Test.mcp的ADS工程。*.mcp文件是ARM 的工程文

28、件,當(dāng)建立一個工程文件后,可以經(jīng)過翻開該工程的*.mcp文件在CodeWarrior中翻開該工程。這時會出現(xiàn)Test.mcp的窗口。 可以看到它默許的目的調(diào)試環(huán) 境是DebugRel,單擊旁邊的下 三角按鈕,可以看到還有另外 兩個可用的目的調(diào)試環(huán)境,分 別為Release和Debug。工程窗口 .這3個目的調(diào)試系統(tǒng)的含義: DebugRel:表示在生成目的的時候,會為每一個源文件生成調(diào)試信息。Debug:表示該目的為每一個源文件生成最完全的調(diào)試信息。Release:表示該目的不會生成任何調(diào)試信息。有3個標(biāo)簽,分別為Files、Link Order和Target,默許的是顯示第一個Files選項

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

30、 DebugRel Settings命令或直接單擊工具欄上的DebugRel Settings圖標(biāo),可以對生成的目的文件進(jìn)展配置。這個選項會因創(chuàng)建工程時選擇目的調(diào)試系統(tǒng)不同而不同。DebugRel設(shè)置對話框 .1Target設(shè)置選項。Target Name文本框顯示了當(dāng)前的目的設(shè)置。Linker下拉列表框供用戶選擇要運用的鏈接器。這里默許的是ARM Linker,運用該鏈接器,將運用ARM Linker鏈接編譯器和匯編器生成的工程文件作為相應(yīng)目的文件。另外兩個可選項,None表示不用任何鏈接器即工程中的一切文件都不會被編譯器或匯編器處置。ARM Librarian表示將編譯或匯編得到的目的文件

31、轉(zhuǎn)換為ARM庫文件。這里運用默許的鏈接器ARM Linker。Post-Linker下拉列表框表示鏈接后,對輸出文件進(jìn)展怎樣的操作。.2Language Settings。ARM ADS的匯編器是armasm。如下圖,這里可以進(jìn)展很多設(shè)置,包括運轉(zhuǎn)的目的處置器的內(nèi)核系列,可根據(jù)運轉(zhuǎn)的目的板處置器類型進(jìn)展選擇。命令行工具選項設(shè)置 .3Linker設(shè)置。選中ARM Linker,翻開對話框。對話框的主要標(biāo)簽選項對最終生成的文件有著直接的影響。在選項卡Output中,Linktype選項中提供了3種鏈接方式。Partial方式表示鏈接器只進(jìn)展部分鏈接,經(jīng)過部分鏈接生成的目的文件,可以作為以后進(jìn)一步鏈

32、接時的輸入文件。Simple方式是默許的鏈接方式,它鏈接生成簡單的ELF格式的目的文件,運用的是鏈接器選項中指定的地址映射方式。Scattered方式使鏈接器根據(jù)scatter格式文件指定地址映射,生成復(fù)雜的ELF格式的映像文件,這個選項普通情況下不用。這里選擇常用默許的Simple方式。.鏈接器設(shè)置 .在選中Simple方式后,就會出現(xiàn)Simple image,其各項含義:RO Base:即Read-only段,段是指描畫映像文件的代碼或數(shù)據(jù)塊。該段的加載域和運轉(zhuǎn)域為同一個地址,默許是0 x8000。這里要根據(jù)實踐的硬件SDRAM的地址空間來修正這個地址,保證在這里填寫的地址,是程序運轉(zhuǎn)時S

33、DRAM地址空間所能覆蓋的地址。RW Base:即Read-write段,這個文本框設(shè)置了包含RW和ZIzero-initialized輸出段的運轉(zhuǎn)域地址。假設(shè)選中split選項,鏈接器生成的映像文件將包含兩個加載域和兩個運轉(zhuǎn)域。此時,在RW Base中所輸入的地址為包含RW和ZI輸出段的域設(shè)置了加載域和運轉(zhuǎn)域地址。Ropi:選中這個復(fù)選框?qū)⑼ㄖ溄悠魇拱蠷O輸出段的運轉(zhuǎn)域位置無關(guān)。運用這個選項,鏈接器將保證:首先檢查各段之間的重地址能否有效,其次確保任何由ARM鏈接器armlink本身生成的代碼是只讀位置無關(guān)的。.Rwpi:選中該復(fù)選框?qū)ㄖ溄悠魇拱琑W和ZI輸出段的運轉(zhuǎn)域位置無關(guān)

34、。假設(shè)它沒有被選中,域就標(biāo)識為絕對。每一個可寫的輸入段必需是讀寫位置無關(guān)的。假設(shè)被選中,鏈接器檢查可讀/可寫屬性的運轉(zhuǎn)域的輸入段能否設(shè)置了位置無關(guān)屬性,檢查在各段之間的重地址能否有效。Split Image:選中這個復(fù)選框把包含RO和RW輸出段的加載域分成兩個加載域:一個是包含RO輸出段的域,一個是包含RW輸出段的域。Relocatable:選中這個復(fù)選框保管了映像文件的重地址偏移量。這些偏移量為程序加載器提供了有用信息。Options選項卡,用于指明存儲器的交換方法、調(diào)試信息的設(shè)置和映像文件的初始入口地址等信息。 .鏈接器的操作選項卡設(shè)置 .2進(jìn)展編譯和鏈接選擇Project | make命

35、令或單擊工具欄上的Make圖標(biāo),就可以對工程進(jìn)展編譯和鏈接了。在工程Test所在目錄下,會生成一個名為“工程名_data目錄,在本例中就是“Test_data目錄,在這個目錄下不同類別的目的對應(yīng)不同目錄。本例運用的是DebugRel目的,所以生成的最終文件都應(yīng)該在該目錄下。進(jìn)入到DebugRel目錄中,會看到生成的映像文件和二進(jìn)制文件,映像文件用于調(diào)試,二進(jìn)制文件可以燒寫到開發(fā)板或?qū)嶒炏涞腇lash中運轉(zhuǎn)。.編譯和鏈接過程 .3. 用AXD進(jìn)展代碼調(diào)試AXD是ADS軟件中獨立于CodeWarrior IDE的代碼調(diào)試工具,翻開AXD軟件,默許翻開的目的是ARMulator。ARMulator是

36、在主系統(tǒng)上用軟件模擬各種ARM處置器核行為的程序。這是最常用的一種調(diào)試工具,要運用AXD必需首先翻開曾經(jīng)生成的.axf文件,該文件就是含有調(diào)試信息的可執(zhí)行ELF格式的映像文件。在沒有添加其他仿真驅(qū)動程序前,Target 項只需兩項分別為ADDP JTAG硬件仿真和ARMUL即ARMulator軟件仿真。假設(shè)運用其他硬件仿真器銜接到相應(yīng)的目的板或?qū)嶒炏渖希梢苑_AXD工具欄的Options | Configure Target 命令進(jìn)展添加。在添加之前首先要進(jìn)展相應(yīng)仿真器驅(qū)動程序的安裝,將仿真器的驅(qū)動文件復(fù)制到ADS的BIN目錄下,如C:Program FilesARMADSv1_2 BIN。

37、 .AXD的選擇目的環(huán)境對話框 .AXD調(diào)試環(huán)境 .9.4 Embest IDE引見 9.4.1 概述1. Embest IDE 集成開發(fā)環(huán)境Embest IDE的英文全稱是Embest Integrated Development Environment,是由深圳市英蓓特信息技術(shù)開發(fā),應(yīng)用于嵌入式軟件開發(fā)的集成開發(fā)環(huán)境。提供嵌入式運用軟件開發(fā)平臺,包括一整套完備的面向嵌入式系統(tǒng)的開發(fā)和調(diào)試工具:有編輯器、編譯器、鏈接器、調(diào)試器、工程管理器和底層調(diào)試接口設(shè)備BDM/JTAG仿真器等。集成開發(fā)環(huán)境IDE的界面同Microsoft Visual Studio環(huán)境類似,可以在Embest IDE集成

38、開發(fā)環(huán)境中創(chuàng)建工程、翻開工程,建立、翻開和編輯文件,編譯、鏈接、運轉(zhuǎn)、調(diào)試嵌入式運用程序。.Embest IDE工具集表示圖 .2. Embest IDE主要特征Embest IDE可運轉(zhuǎn)于Windows系列操作系統(tǒng),支持ARM7和ARM9系列處置器、Motorola公司的部分處置器。與處置器和調(diào)試設(shè)備相關(guān)模塊采用即插即用方式,可以在同一個任務(wù)區(qū)中同時管理多個運用軟件和庫工程,各工程均可配置不同的處置器和仿真器,用戶可以在各工程中無縫切換。.Embest IDE for ARM的主要特性:支持開發(fā)言語:ANSI C、Embedded C+、匯編言語。類似Visual Studio的用戶界面,支

39、持打印功能,支持文件內(nèi)查找功能和Find in Files功能,支持C言語程序函數(shù)列表及定位。工程管理器:以project為單位管理用戶的運用程序,進(jìn)展編譯鏈接選項定制。源碼編輯器:支持規(guī)范的文本編輯功能、syntax-color、用戶定義言語模板、語法關(guān)鍵字、關(guān)鍵字顏色顯示和Hex文件編輯器。編譯工具:運用自在軟件GNU的GCC編譯鏈接器,同時兼容ARM SDT編譯工具套件,支持C言語、匯編言語等。調(diào)試器:源碼級調(diào)試,提供了圖形和命令行兩種調(diào)試方式。可進(jìn)展斷點設(shè)置、單步執(zhí)行、異常處置,可查看修正存儲器、存放器、變量等,可查看函數(shù)棧、堆棧;可進(jìn)展反匯編、提供圖形界面操作和命令行操作方式,支持源

40、程序、反匯編程序和混合窗口顯示,還提供了程序下載功能等。.3. Embest IDE主框架窗口Embest IDE主界面圖 .開發(fā)環(huán)境主框架窗口由標(biāo)題欄、菜單欄、工具欄、任務(wù)區(qū)、客戶區(qū)、輸出窗口和形狀欄等組成。主框架窗口的最上端為標(biāo)題欄,用于顯示當(dāng)前翻開的文件名。標(biāo)題欄下面為菜單欄和工具欄,工具欄的下面為任務(wù)區(qū)和客戶區(qū)。任務(wù)區(qū)用于顯示當(dāng)前翻開工程的有關(guān)信息,包括工程的文件組成等內(nèi)容??蛻魠^(qū)用于文本編輯器進(jìn)展C、匯編等源文件的編輯。輸出窗口通常在任務(wù)區(qū)和客戶區(qū)的下面,用于輸出編譯信息、調(diào)試信息、命令行輸入/輸出和輸出一些查詢結(jié)果信息等。主框架窗口的最底端為形狀欄,用于顯示關(guān)于菜單欄、工具欄等的簡

41、單闡明信息以及文本編輯器中當(dāng)前光標(biāo)所在的行列號等。各個欄、區(qū)的功能和Visual Studio中根本一樣,這里不再贅述。 .9.4.2 工程例如從一個簡單工程的創(chuàng)建、編譯、下載到調(diào)試運轉(zhuǎn)來說明Embest IDE的運用。1工程的創(chuàng)建翻開Embest IDE軟件,選擇File|New Workspace命令建立一個新的工程,在彈出的對話框中輸入工程的稱號,并確定工程存放的途徑。單擊OK按鈕保管本人的設(shè)置。 .工程對話框 .2. 輸入源文件并加到工程中選擇File | New命令或單擊工具欄上的新建文本文件圖標(biāo) ,在客戶區(qū)中輸入本人的源文件。該文件完成將十六進(jìn)制的AA、56存儲到內(nèi)存中0 x8000開場的存儲單元中。保管文件到工程Test所在的目錄下,留意文件名應(yīng)以.s為擴展名,這里保管為Test.s。在任務(wù)區(qū)的Project Source Files中右擊,在彈出的對話框中選擇Add Files to Folder命令,添加Test.s到工程Test中。.3. 編譯工程在編譯工程前先要對工程文件將要運轉(zhuǎn)的目的環(huán)境進(jìn)展設(shè)置。選擇Project | Settings命令,彈出對話框。設(shè)置完CPU的類型和所用的編譯工具后,單擊OK按鈕。單擊工具欄上的Build圖標(biāo) ,或按F7快捷鍵對工程進(jìn)展編譯。

溫馨提示

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

評論

0/150

提交評論