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

下載本文檔

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

文檔簡介

嵌入式系統(tǒng)設(shè)計與開發(fā)

第9章ARM嵌入式開發(fā)工具本章提要

9.1ARM下層開發(fā)工具

9.2ARM開發(fā)工具概述

9.3ARM的ADS

9.4EmbestIDE的介紹9.1ARM下層開發(fā)工具由于程序的編譯環(huán)境和運行環(huán)境不同,所以ARM嵌入式開發(fā)采用交叉編譯方法進行。首先,在通用計算機上對源程序進行編寫、編譯、匯編、連接形成可以在目標(biāo)系統(tǒng)上運行的目標(biāo)文件;接著,通過連接/調(diào)試裝置將目標(biāo)文件下載到目標(biāo)系統(tǒng)上運行;源程序在目標(biāo)系統(tǒng)上運行的情況連接裝置在計算機中反映出來,開發(fā)人員通過反映出的情況根據(jù)開發(fā)項目的需要進行相應(yīng)的修改并重復(fù)上述操作直至達到項目開發(fā)預(yù)期結(jié)果。因此,可以把ARM嵌入式開發(fā)工具分為上層裝在計算機中的開發(fā)工具、中間的連接裝置和下層的ARM芯片本身具有的支持嵌入式開發(fā)的工具。ARM嵌入式系統(tǒng)實時開發(fā)組織結(jié)構(gòu)圖9.1.1JTAG接口

JTAG接口標(biāo)準(zhǔn)是由測試聯(lián)合行動組(jointtestactiongroup)于1986~1988年推出的基于邊界掃描機制的標(biāo)準(zhǔn)化草案。1990年IEEE組織將這些草案標(biāo)準(zhǔn)化,并命名為IEEE1149.1標(biāo)準(zhǔn),俗稱JTAG調(diào)試標(biāo)準(zhǔn)。JTAG除了實現(xiàn)通常意義上的調(diào)試功能外,還可實現(xiàn)代碼下載或單步執(zhí)行程序等功能。

邊界掃描機制主要的思想是:通過在內(nèi)部邏輯之間,即在內(nèi)部邏輯的邊界上增加串行的可讀寫的邊界掃描單元,從而提供芯片級、板級、系統(tǒng)級的標(biāo)準(zhǔn)測試框架。邊界掃描機制可以實現(xiàn)下列目標(biāo):測試不同單元之間的連接。測試單個單元的功能。應(yīng)用邊界掃描寄存器完成其他測試功能,如偽隨機測試、特征分析和靜態(tài)測試等。JTAG接口的6個主要信號:1)TestClockInput(TCK)。TCK為TAP的操作提供了一個獨立的、基本的時鐘信號,TAP的所有操作都是通過這個時鐘信號來驅(qū)動的。TCK在IEEE1149.1標(biāo)準(zhǔn)里是強制要求的。2)TestModeSelectionInput(TMS)。TMS信號用來控制TAP狀態(tài)機的轉(zhuǎn)換,通過TMS信號,可以控制TAP在不同的狀態(tài)間相互轉(zhuǎn)換。TMS信號在TCK的上升沿有效。TMS在IEEE1149.1標(biāo)準(zhǔn)里是強制要求的。3)TestDataInput(TDI)。TDI是數(shù)據(jù)輸入接口。所有要輸入到特定寄存器的數(shù)據(jù)都是通過TDI接口一位一位串行輸入的(由TCK驅(qū)動)。TDI在IEEE1149.1標(biāo)準(zhǔn)里是強制要求的。4)TestDataOutput(TDO)。TDO是數(shù)據(jù)輸出的接口。所有要從特定邊界掃描鏈采樣的保存在寄存器中的數(shù)據(jù)都是通過TDO接口一位一位串行輸出的(由TCK驅(qū)動);在芯片串行測試時,將數(shù)據(jù)傳送給下一個芯片。TDO在IEEE1149.1標(biāo)準(zhǔn)里是強制要求的。5)TestResetInput(TRST/nTRST)。TRST可以用來對TAPController進行復(fù)位(初始化)即JTAG復(fù)位。該信號接口在IEEE1149.1標(biāo)準(zhǔn)里是可選的,因為通過TMS也可以對TAPController進行復(fù)位/初始化。為了防止誤觸發(fā),應(yīng)在該端加適當(dāng)上拉電阻。6)SystemReset(nSRST/SRST)。與目標(biāo)板上的系統(tǒng)復(fù)位信號相連??梢灾苯訉δ繕?biāo)系統(tǒng)復(fù)位,同時可以檢測目標(biāo)系統(tǒng)的復(fù)位情況。該信號接口在IEEE1149.1標(biāo)準(zhǔn)里是可選的,并不是強制要求的。20針JTAG接口信號

20針JTAG接口連接

9.1.2JTAGTAP

JTAG測試訪問端口JTAGTAP是一個通用端口,是外部JTAG接口連接芯片的通道,由JTAGTAP控制器和掃描鏈構(gòu)成。通過TAP可以訪問芯片提供的所有數(shù)據(jù)寄存器(DR,dataregister)和指令寄存器(IR,instructionregister)。對整個TAP的控制是通過TAPController完成的。TAP有5個接口信號:TCK、TMS、TDI、TDO和TRST,提供給JTAG接口。掃描鏈鏈?zhǔn)怯捎煽拷酒妮斴斎?輸出出管腳腳上各各增加加一個個用于于實現(xiàn)現(xiàn)對芯芯片輸輸入/輸出出信號號進行行觀察察和控控制的的移位位寄存存器單單元,,相互互連接接構(gòu)成成。即即在芯芯片/內(nèi)部部邏輯輯的周周圍形形成一一個邊邊界掃掃描鏈鏈(boundary-scanchain)。。如果需需要捕捕獲芯芯片某某個管管腳上上的輸輸出,,首先先需要要把該該管腳腳上的的輸出出裝載載到邊邊界掃掃描鏈鏈的寄寄存器器單元元里,,然后后通過過TDO輸輸出,,得到到相應(yīng)應(yīng)管腳腳的輸輸出信信號。。如果要要在芯芯片的的某個個管腳腳上加加載一一個特特定的的信號號,則則首先先通過過TDI把把期望望的信信號移移位到到與相相應(yīng)管管腳相相連的的邊界界掃描描鏈的的寄存存器單單元里里,然然后把把該寄寄存器器單元元的值值加載載到相相應(yīng)的的芯片片管腳腳。在IEEE1149.1標(biāo)標(biāo)準(zhǔn)里里面,,寄存存器分分為兩兩大類類:數(shù)數(shù)據(jù)寄寄存器器DR和指指令寄寄存器器IR。邊界掃掃描鏈鏈屬于于數(shù)據(jù)據(jù)寄存存器的的一種種,用用來實實現(xiàn)對對芯片片的輸輸入/輸出出的觀觀察和和控制制,而而指令令寄存存器用用來實實現(xiàn)對對數(shù)據(jù)據(jù)寄存存器的的控制制。如在芯芯片提提供的的所有有邊界界掃描描鏈中中選擇擇一條條指定定的邊邊界掃掃描鏈鏈作為為當(dāng)前前的目目標(biāo)掃掃描鏈鏈,并并作為為訪問問對象象就是是由相相應(yīng)指指令寄寄存器器完成成的。。通過TAP接口口,對對數(shù)據(jù)據(jù)寄存存器進進行訪訪問的的一般般過程程是::1)通通過指指令寄寄存器器,選選定一一個需需要訪訪問的的數(shù)據(jù)據(jù)寄存存器。。2)把把選定定的數(shù)數(shù)據(jù)寄寄存器器連接接到TDI和TDO之間間。3)由由TCK驅(qū)驅(qū)動,,通過過TDI,,把需需要的的數(shù)據(jù)據(jù)輸入入到選選定的的數(shù)據(jù)據(jù)寄存器中中,同同時把把選定定的數(shù)數(shù)據(jù)寄寄存器器中的的數(shù)據(jù)據(jù)通過過TDO讀讀出來來。JTAGTAP控控制制器狀狀態(tài)轉(zhuǎn)轉(zhuǎn)換圖圖指令寄寄存器器和數(shù)數(shù)據(jù)寄寄存器器工作作過程程:1)系系統(tǒng)上上電后后在TMS信號號驅(qū)動動下,,TAPController進入入Test-LogicReset狀態(tài)態(tài),然然后可可依次次進入入Run-Test/Idle→→Select-DR-Scan→Select-IR-Scan→→Capture-IR→Shift-IR→→Exit1-IR→→Pause-IR→Exit2-IR→→Update-IR,,最后后回到到Run-Test/Idle狀狀態(tài)。。在Capture-IR狀狀態(tài)中中,一一個特特定的的指令令加載載到指指令寄寄存器器中,,進入入到Shift-IR狀狀態(tài)。。在Shift-IR狀狀態(tài)下下,通通過TCK的驅(qū)驅(qū)動,,可以以將該該指令令送到到指令令寄存存器中中。每每條指指令都都將確確定一一個相相應(yīng)的的數(shù)據(jù)據(jù)寄存存器。。然后后可以以沿著著Shift-IR→Exit1-IR→→Pause-IR→Exit2-IR→→Update-IR路路徑進進行,,也可可以沿沿著其其他的的路徑徑到達達Update-IR狀狀態(tài)。。在Update-IR狀態(tài)態(tài),剛剛才輸輸入到到指令令寄存存器中中的指指令將將更新新指令令寄存存器成成為當(dāng)當(dāng)前指指令。。最后后,進進入到到Run-Test/Idle狀狀態(tài),,指令令生效效,完完成對對指令令寄存存器的的訪問問。2)對當(dāng)當(dāng)前數(shù)據(jù)據(jù)寄存器器的訪問問由指令令寄存器器中的當(dāng)當(dāng)前指令令決定。。要訪問問由指令令選定的的數(shù)據(jù)寄寄存器,,需要以以Run-Test/Idle為起起點在TMS信信號驅(qū)動動下,依依次進入入Select-DR-Scan→→Capture-DR→→Shift-DR→Exit1-DR→Pause-DR→Exit2-DR→Update-DR,最最后回到到Run-Test/Idle狀態(tài)態(tài)。在這這個過程程中,被被當(dāng)前指指令選定定的數(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外部測測試模式式下低電電平表示示將獲取取數(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宏宏接口。。基于JTAG接接口的在在主機和和內(nèi)核之之間的調(diào)調(diào)試通信信通道。。EmbeddedICE寄寄存器地址寬度功能地址寬度功能000006調(diào)試控制寄存器011009觀察點0控制值寄存器000015調(diào)試狀態(tài)寄存器011018觀察點0控制屏蔽寄存器000101中止?fàn)顟B(tài)寄存器1000032觀察點1地址值寄存器001006調(diào)試通信控制寄存器1000132觀察點1地址屏蔽寄存器0010132調(diào)試通信數(shù)據(jù)寄存器1001032觀察點1數(shù)據(jù)值寄存器0100032觀察點0地址值寄存器1001132觀察點1數(shù)據(jù)屏蔽寄存器0100132觀察點0地址屏蔽寄存器101009觀察點1控制值寄存器0101032觀察點0數(shù)據(jù)值寄存器101018觀察點1控制屏蔽寄存器0101132觀察點0數(shù)據(jù)屏蔽寄存器調(diào)試控制制寄存器器(debugcontrolregister))用來控控制EmbeddedICE,6位分別別對應(yīng)6種控制制信號,,從低到到高依次次是DBGACK、DBGRQ、INTDIS、、SBZ/RAZ、MonitorModeEnable和EmbeddedICE。DBGRQ調(diào)試試請求信信號,通通過將該該信號置置1,可可以強制制ARM7TDMI/ARM9TDMI暫暫停當(dāng)前前的指令令,進入入調(diào)試狀狀態(tài);INTDIS用用來控制制中斷;;SBZ/RAZ任何何時候都都必須被被置0;;MonitorModeEnable用來來控制是是否進入入Monitor模式式;EmbeddedICE-RTDisable用來來控制整整個EmbeddedICE-RT,是是啟用還還是禁用用,如果果禁用的的話,ARM7TDMI/ARM9TDMI將一一直保持持在正常常的運行行狀態(tài)。。通過調(diào)試試狀態(tài)寄寄存器((debugstatusregister)可以以查詢當(dāng)當(dāng)前系統(tǒng)統(tǒng)的狀態(tài)態(tài)。調(diào)試試狀態(tài)寄寄存器是是可讀可可寫的,,但一般般只進行行讀操作作。5位位信號從從低位到到高位分分別是::DBGACK、DBGRQ、IFEN、、CGENL和和TBIT,其其中DBGACK標(biāo)識識當(dāng)前系系統(tǒng)是否否處于調(diào)調(diào)試狀態(tài)態(tài),置1表示處處于調(diào)試試狀態(tài);;DBGRQ標(biāo)標(biāo)識DBGRQ信號的的當(dāng)前狀狀態(tài);IFEN標(biāo)識系系統(tǒng)的中中斷狀態(tài)態(tài)是啟用用還是禁禁用;CGENL標(biāo)識識調(diào)試狀狀態(tài)下對對存儲器器的訪問問是否完完成;TBIT用來判判斷是從從ARM還是Thumb模式式進入調(diào)調(diào)試狀態(tài)態(tài)。中止?fàn)顟B(tài)態(tài)寄存器器(abortstatusregister)用用來確定定異常的的產(chǎn)生原原因:斷斷點、觀觀察點還還是真的的異常。。調(diào)試通信信控制寄寄存器((debugcommscontrolregister)和和調(diào)試通通信數(shù)據(jù)據(jù)寄存器器(debugcommsdataregister))是用來來控制和和操作調(diào)調(diào)試通信信通道。。其他的的寄存器器都是關(guān)關(guān)于觀察察點WATCHPOINT的寄存存器,用用于設(shè)置置斷點和和觀察點點。剩下的12個寄寄存器可可以表示示成如下下形式::觀察點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í)行行,即相相當(dāng)于提提供了對對代碼的的壓縮功功能。ETM由由如下兩兩部分組組成:跟蹤端口口,用于于實時執(zhí)執(zhí)行的跟跟蹤。代代碼執(zhí)行行時,CPU發(fā)發(fā)送串行行、經(jīng)過過編碼、、壓縮的的分支目目標(biāo)地址址、管線線狀態(tài)、、讀寫數(shù)數(shù)據(jù)給ETM。。觸發(fā)裝置置,規(guī)范范已被開開發(fā)。該該規(guī)范允允許指定定特定應(yīng)應(yīng)用所需需的觸發(fā)發(fā)源的準(zhǔn)準(zhǔn)確集合合。資源源包括地地址和數(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)試,它它無需目目標(biāo)存儲儲器,不不占用目標(biāo)系統(tǒng)統(tǒng)的任何何端口,,而這些些是駐留留監(jiān)控軟軟件所必必需的。。另外,由于于JTAG調(diào)試試的目標(biāo)標(biāo)程序是是在目標(biāo)標(biāo)板上執(zhí)執(zhí)行,仿仿真更接接近于目標(biāo)標(biāo)硬件,,因此,,許多接接口問題題,如高高頻操作作限制、、AC和和DC參數(shù)數(shù)不匹配配與電線線長度的的限制等等均被最最小化了了。使用用集成開發(fā)環(huán)境境配合JTAG仿真器器進行開開發(fā)是目目前采用用最多的的一種調(diào)調(diào)試方式。。JTAG仿真器器通過ARM處處理器的的JTAG調(diào)試試接口與與目標(biāo)機機通信,,通過并口口或串口口、網(wǎng)口口、USB口與與宿主機機通信。。通過JTAG方式可以完完成:讀出/寫寫入CPU的寄寄存器,,訪問控控制ARM處理理器內(nèi)核核。讀出/寫寫入內(nèi)存存,訪問問系統(tǒng)中中的存儲儲器和系系統(tǒng)端口口。訪問ASIC系統(tǒng)。。訪問I/O系統(tǒng)統(tǒng)??刂瞥绦蛐蜻\行、、停止、、單步執(zhí)執(zhí)行和實實時執(zhí)行行程序、、設(shè)置程程序斷點點。復(fù)位目標(biāo)標(biāo)系統(tǒng)、、下載代代碼到目目標(biāo)ARM。實時的設(shè)設(shè)置基于于指令地地址值、、數(shù)據(jù)值值的斷點點。目前國內(nèi)內(nèi)最常用用的幾種種該類型型仿真器器:1.EmbestPowerICEforARMEmbestPowerICEforARM是英英蓓特公公司開發(fā)發(fā)的實時時在線仿仿真器。2.RealViewICERealViewICE是是ARM公司最最新仿真真器。3.TRACE32-ICDTRACE32-ICD是德德國Lauterbach公公司開發(fā)發(fā)的基于于BDM、JTAG和OCDS等調(diào)調(diào)試接口口的仿真真工具。。在在線仿仿真器ICE在線仿真真器ICE(in-circuitemulator)是一一種模擬擬CPU的設(shè)備,在線線仿真器器使用仿仿真頭完完全取代代目標(biāo)板板上的CPU,,可以完完全仿真ARM芯芯片的行行為,提提供更加加深入的的調(diào)試功功能。在在和宿主主機連接的的接口上上,在線線仿真器器也是通通過串行行端口或或并行端端口、網(wǎng)口和USB口口通信。。在線仿仿真器為為了能夠夠全速仿仿真時鐘鐘速度很很高的ARM處理理器,通通常必須須采用極極其復(fù)雜雜的設(shè)計計和工藝藝,因而而其價格比比較昂貴貴。在線線仿真器器通常用用在ARM硬件件開發(fā)中中,軟件件開發(fā)中使使用較少少。集集成開開發(fā)環(huán)境境本身帶帶的仿真真軟件以Embest為例,,編譯好好運行在在目標(biāo)系系統(tǒng)上的的文件后后,在ProjectSettings對話框框的Remote選項項卡上,,選擇Remotedevice下下拉列表表框的SimArm7選項,,即可通通過軟件件形式在在IDE中進行仿仿真。EmbestIDE軟件仿仿真設(shè)置置Multi2000模塊與與應(yīng)用系系統(tǒng)該IDE開發(fā)環(huán)環(huán)境主要要包括::工程生成成工具((projectbuiler))源代碼調(diào)調(diào)試器((source-leveldebugger)事件分析析器(eventanalyzer)性能剖析析器(performanceprofiler)實時運行行錯誤檢檢查工具具(run-timeerrorchecking)圖形化瀏瀏覽器((graphicalbrower)文本編輯輯器(texteditor)版本控制制工具((versioncontrolsystem)9.2.5RVDS集成成開發(fā)環(huán)環(huán)境RealViewDeveloperSuite工具是是ARM公司繼繼ADS之后推推出的新一代ARM集集成開發(fā)發(fā)環(huán)境,,是RealViewARM新一一代開發(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-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)試,并并采用了了MentorGraphics的嵌入入技術(shù)。支持持的操作作系統(tǒng)包包括Symbian、、ThreadX和Nucleus等。RVDS集成開開發(fā)環(huán)境境的主要要特性包包括編譯譯工具、、調(diào)試工工具和指指令集仿真真工具。。編譯工具具和調(diào)試試工具的的特點::(1)RealView編譯譯工具全面優(yōu)化化ISOC++編譯譯器。ARM、、Thumb、、C、C++編編譯,ARM、、Thumb匯匯編和宏宏匯編。。ARM連連接器。。庫的連接接和管理理。映像文件件轉(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(ARMextendeddebugger)替替換了SDT的的調(diào)試工工具ADW,可可以在Windows和RedHatLinux上運運行。CodeWarriorIDE為為用戶提提供下面面的功能能:源代碼編編輯器,,集成在在CodeWarriorIDE瀏覽器器中,能能夠根據(jù)據(jù)語法格格式,使使用不同同的顏色色顯示代代碼。源代碼瀏瀏覽器,,保存了了在源碼碼中定義義的所有有符號,,能夠使使用戶在在源碼中中快速方方便的跳跳轉(zhuǎn)。查找和替替換功能能,用戶戶可在多多個文件件中,利利用字符符串通配配符,進進行字符符串的搜搜索和替替換。文件比較較功能,,可以使使用戶比比較路徑徑中的不不同文本本文件內(nèi)內(nèi)容。ARMADS由6部部分組成成:1)代碼碼生成工工具。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í)行映映像文件件。ARMObjectLibrary::用于由由ARM指令的的代碼生生成一個個armar格格式的目目標(biāo)文件件庫。EmptyProject:用于于創(chuàng)建一一個不包包含任何何庫或源源文件的的工程。。MakefileImporterWizard::用于將將VisualC的的nmake或或GNUmake文文件轉(zhuǎn)入入到CodeWarriorIDE工工程文件件。ThumbARMInterworkingImage:用于于由ARM指令令和Thumb指令的的混和代代碼生成成一個可可執(zhí)行的的ELF格式的的映像文文件。ThumbExecutableimage:用于于由Thumb指令創(chuàng)創(chuàng)建一個個可執(zhí)行行的ELF格式式的映像像文件。。ThumbObjectLibrary:用用于由Thumb指令令的代碼碼生成一一個armar格式的的目標(biāo)文文件庫。。選擇ARMExecutableImage工程,,在Projectname文本本框中輸輸入工程程文件名名如Test,,單擊Set按按鈕,可可更改該該工程保保存的路路徑,將將這些設(shè)設(shè)置好后后,單擊擊“確定定”即可可建立一一個新的的名為Test.mcp的ADS工工程。*.mcp文件件是ARM的的工程文文件,當(dāng)當(dāng)建立一一個工程程文件后后,可以以通過打打開該工工程的*.mcp文件件在CodeWarrior中打開開該工程程。這時會出出現(xiàn)Test.mcp的窗口口??梢钥吹降剿J認的目標(biāo)標(biāo)調(diào)試環(huán)環(huán)境是DebugRel,單擊擊旁邊的的下三角按鈕鈕,可以以看到還還有另外外兩個可用用的目標(biāo)標(biāo)調(diào)試環(huán)環(huán)境,分分別為Release和和Debug。。工程窗口口這3個目目標(biāo)調(diào)試試系統(tǒng)的的含義::DebugRel:表表示在生生成目標(biāo)標(biāo)的時候候,會為為每一個個源文件件生成調(diào)調(diào)試信息息。Debug:表表示該目目標(biāo)為每每一個源源文件生生成最完完全的調(diào)調(diào)試信息息。Release:表示示該目標(biāo)標(biāo)不會生生成任何何調(diào)試信信息。有3個標(biāo)標(biāo)簽,分分別為Files、LinkOrder和Target,默默認的是是顯示第第一個Files選項項卡。通通過在該該空白的的選項卡卡上右擊擊,選擇擇AddFiles命令可可以把要要用到的的源程序序添加到到該工程程中。2)打開開ADS的MetrowerksCodeWarrior集集成開發(fā)發(fā)環(huán)境IDE,,單擊工具欄欄上的新新建文本本文件的的圖標(biāo),,可在在出現(xiàn)的的IDE下的空空白頁面上上輸入要要調(diào)試的的源文件件,并以以Test1.s為文文件名后后綴保存。3)將文文件保存存在剛才才所建工工程的文文件夾下下,文件件名為Test1.s。最小小化該頁頁面,也也可以在在Project菜單單中,選選擇AddFiles命令令,打開開文件對對話框,,用戶可可以把已已經(jīng)存在在的文件件添加到工程中中,也可可以在剛剛才所建建工程中中添加該該工程。。在工程中中添加文文件2.編編譯和鏈鏈接工程程(1)生生成目標(biāo)標(biāo)的配置置選擇Edit|DebugRelSettings命令令或直接接單擊工工具欄上上的DebugRelSettings圖標(biāo)標(biāo),可以以對生成成的目標(biāo)標(biāo)文件進進行配置置。這個選項會會因創(chuàng)建建工程時時選擇目目標(biāo)調(diào)試試系統(tǒng)不不同而不不同。DebugRel設(shè)置置對話框框1)Target設(shè)置置選項。。TargetName文本本框顯示示了當(dāng)前前的目標(biāo)標(biāo)設(shè)置。。Linker下下拉列表表框供用用戶選擇擇要使用用的鏈接接器。這這里默認認的是ARMLinker,使用用該鏈接接器,將將使用ARMLinker鏈接編編譯器和和匯編器器生成的的工程文文件作為為相應(yīng)目目標(biāo)文件件。另外兩個個可選項項,None表表示不用用任何鏈鏈接器即即工程中中的所有有文件都都不會被被編譯器器或匯編編器處理理。ARMLibrarian表表示將編編譯或匯匯編得到到的目標(biāo)標(biāo)文件轉(zhuǎn)轉(zhuǎn)換為ARM庫庫文件。。這里使使用默認認的鏈接接器ARMLinker。。Post-Linker下拉拉列表框框表示鏈鏈接后,,對輸出出文件進進行怎樣樣的操作作。2)LanguageSettings。ARMADS的匯編編器是armasm。。如圖所所示,這這里可以以進行很很多設(shè)置,包包括運行行的目標(biāo)標(biāo)處理器器的內(nèi)核核系列,,可根據(jù)據(jù)運行的的目標(biāo)板處理器器類型進進行選擇擇。命令行工工具選項項設(shè)置3)Linker設(shè)置置。選中ARMLinker,,打開對對話框。。對話框框的主要要標(biāo)簽選選項對最最終生成成的文件件有著直直接的影影響。在選項卡卡Output中,Linktype選項項中提供供了3種種鏈接方方式。Partial方式表表示鏈接接器只進進行部分分鏈接,,經(jīng)過部部分鏈接接生成的的目標(biāo)文文件,可可以作為為以后進進一步鏈鏈接時的的輸入文文件。Simple方方式是默默認的鏈鏈接方式式,它鏈鏈接生成成簡單的的ELF格式的的目標(biāo)文文件,使使用的是是鏈接器器選項中中指定的的地址映映射方式式。Scattered方式式使鏈接接器根據(jù)據(jù)scatter格式式文件指指定地址址映射,,生成復(fù)復(fù)雜的ELF格格式的映映像文件件,這個個選項一一般情況況下不用用。這里里選擇常常用默認認的Simple方式式。鏈接器設(shè)設(shè)置在選中Simple方方式后,,就會出出現(xiàn)Simpleimage,其其各項含含義:ROBase:即Read-only段段,段是是指描述述映像文文件的代代碼或數(shù)數(shù)據(jù)塊。。該段的的加載域域和運行行域為同同一個地地址,默默認是0x8000。。這里要要根據(jù)實實際的硬硬件SDRAM的地址址空間來來修改這這個地址址,保證證在這里里填寫的的地址,,是程序序運行時時SDRAM地地址空間間所能覆覆蓋的地地址。RWBase:即Read-write段,這這個文本本框設(shè)置置了包含含RW和和ZI((zero-initialized)輸輸出段的的運行域域地址。。如果選選中split選項,,鏈接器器生成的的映像文文件將包包含兩個個加載域域和兩個個運行域域。此時時,在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)。如果果它沒有有被選中中,域就就標(biāo)識為為絕對。。每一個個可寫的的輸入段段必須是是讀寫位位置無關(guān)關(guān)的。如如果被選選中,鏈鏈接器檢檢查可讀讀/可寫寫屬性的的運行域域的輸入入段是否否設(shè)置了了位置無無關(guān)屬性性,檢查查在各段段之間的的重地址址是否有有效。SplitImage:選中這個個復(fù)選框把包包含RO和RW輸出段的的加載域分成成兩個加載域域:一個是包包含RO輸出出段的域,一一個是包含RW輸出段的的域。Relocatable:選中這個個復(fù)選框保留留了映像文件件的重地址偏偏移量。這些些偏移量為程程序加載器提提供了有用信信息。Options選項卡,,用于指明存存儲器的替換換方法、調(diào)試試信息的設(shè)置置和映像文件件的初始入口口地址等信息息。鏈接器的操作作選項卡設(shè)置置(2)進行編編譯和鏈接選擇Project|make命令或單擊擊工具欄上的的Make圖圖標(biāo),就可以以對工程進行編編譯和鏈接了了。在工程Test所在在目錄下,會會生成一個名為“工程程名_data目錄”,,在本例中就就是“Test_data目錄”,,在這個目錄下不不同類別的目目標(biāo)對應(yīng)不同同目錄。本例例使用的是DebugRel目標(biāo),,所以生成的的最終文件都都應(yīng)該在該目目錄下。進入到DebugRel目目錄中,會看看到生成的映映像文件和二二進制文件,映像文件件用于調(diào)試,,二進制文件件可以燒寫到到開發(fā)板或?qū)崒嶒炏涞腇lash中運行。。編譯和鏈接過過程3.用AXD進行代碼碼調(diào)試AXD是ADS軟件中獨獨立于CodeWarriorIDE的代碼碼調(diào)試工具,,打開AXD軟件,默認認打開的目標(biāo)標(biāo)是ARMulator。ARMulator是在主系統(tǒng)統(tǒng)上用軟件模模擬各種ARM處理器核核行為的程序序。這是最常常用的一種調(diào)調(diào)試工具,要要使用AXD必須首先打打開已經(jīng)生成成的.axf文件,該文文件就是含有有調(diào)試信息的的可執(zhí)行ELF格式的映映像文件。在沒有添加其其他仿真驅(qū)動動程序前,Target項只有兩兩項分別為ADDP((JTAG硬硬件仿真)和和ARMUL(即ARMulator軟件仿真真)。如果使使用其他硬件件仿真器連接接到相應(yīng)的目目標(biāo)板或?qū)嶒烌炏渖?,可以以打開AXD工具欄的Options|ConfigureTarget命令進行行添加。在添添加之前首先先要進行相應(yīng)應(yīng)仿真器驅(qū)動動程序的安裝裝,將仿真器器的驅(qū)動文件件復(fù)制到ADS的BIN目錄下,如如C:\ProgramFiles\ARM\ADSv1_2\BIN。AXD的選擇擇目標(biāo)環(huán)境對對話框AXD調(diào)試環(huán)環(huán)境9.4EmbestIDE介介紹概概述1.EmbestIDE集集成開發(fā)環(huán)境境EmbestIDE的的英文全稱是是EmbestIntegratedDevelopmentEnvironment,是由深圳圳市英蓓特信信息技術(shù)有限限公司開發(fā),,應(yīng)用于嵌入式軟軟件開發(fā)的集集成開發(fā)環(huán)境境。提供嵌入入式應(yīng)用軟件件開發(fā)平臺,包括括一整套完備備的面向嵌入入式系統(tǒng)的開開發(fā)和調(diào)試工工具:有編輯輯器、編譯器器、鏈接器、、調(diào)試器、工工程管理器和和底層調(diào)試接口設(shè)設(shè)備(BDM/JTAG仿真器)等等。集成開發(fā)發(fā)環(huán)境IDE的界面同MicrosoftVisualStudio環(huán)境相似似,可以在EmbestIDE集成開開發(fā)環(huán)境中創(chuàng)創(chuàng)建工程、打打開工程,建建立、打開和和編輯文件,編譯、、鏈接、運行行、調(diào)試嵌入入式應(yīng)用程序序。EmbestIDE工工具集示意圖圖2.EmbestIDE主要特特征EmbestIDE可可運行于Windows系列操作系系統(tǒng),支持ARM7和ARM9系列列處理器、Motorola公司的的部分處理器器。與處理器器和調(diào)試設(shè)備相關(guān)關(guān)模塊采用即即插即用方式式,可以在同同一個工作區(qū)區(qū)中同時管理多個個應(yīng)用軟件和和庫工程,各各工程均可配配置不同的處處理器和仿真器,,用戶可以在在各工程中無無縫切換。EmbestIDEforARM的主要要特性:支持開發(fā)語言言:ANSIC、EmbeddedC++、匯編語言言。類似VisualStudio的的用戶界面,,支持打印功功能,支持文文件內(nèi)查找功功能和FindinFiles功能,支持持C語言程序序函數(shù)列表及及定位。工程管理器::以project為單單位管理用戶戶的應(yīng)用程序序,進行編譯譯鏈接選項定定制。源碼編輯器::支持標(biāo)準(zhǔn)的的文本編輯功功能、syntax-color、、用戶定義語語言模板、語語法關(guān)鍵字、、關(guān)鍵字色彩彩顯示和Hex文件編輯輯器。編譯工具:使使用自由軟件件GNU的GCC編譯鏈鏈接器,同時時兼容ARMSDT編編譯工具套件件,支持C語語言、匯編語語言等。調(diào)試器:源碼碼級調(diào)試,提提供了圖形和和命令行兩種種調(diào)試方式。??蛇M行斷點點設(shè)置、單步步執(zhí)行、異常常處理,可查查看修改存儲儲器、寄存器器、變量等,,可查看函數(shù)數(shù)棧、堆棧;;可進行反匯匯編、提供圖圖形界面操作作和命令行操操作方式,支支持源程序、、反匯編程序序和混合窗口口顯示,還提提供了程序下下載功能等。。3.EmbestIDE主框架架窗口EmbestIDE主主界面圖開發(fā)環(huán)境主框框架窗口由標(biāo)標(biāo)題欄、菜單單欄、工具欄欄、工作區(qū)、、客戶區(qū)、輸輸出窗口和狀狀態(tài)欄等組成成。主框架窗窗口的最上端端為標(biāo)題欄,,用于顯示當(dāng)當(dāng)前打開的文文件名。標(biāo)題題欄下面為菜菜單欄和工具具欄,工具欄欄的下面為工工作區(qū)和客戶戶區(qū)。工作區(qū)區(qū)用于顯示當(dāng)當(dāng)前打開工程程的有關(guān)信息息,包括工程程的文件組成成等內(nèi)容??涂蛻魠^(qū)用于文文本編輯器進進行C、匯編編等源文件的的編輯。輸出出窗口通常在在工作區(qū)和客客戶區(qū)的下面面,用于輸出出編譯信息、、調(diào)試信息、、命令行輸入入/輸出和輸輸出一些查詢詢結(jié)果信息等等。主框架窗窗口的最底端端為狀態(tài)欄,,用于顯示關(guān)關(guān)于菜單欄、、工具欄等的的簡單說明信信息以及文本本編輯器中當(dāng)當(dāng)前光標(biāo)所在在的行列號等等。各個欄、、區(qū)的功能和和VisualStudio中基基本相同,這這里不再贅述述。工工程示例例從一個簡單工工程的創(chuàng)建、、編譯、下載載到調(diào)試運行行來說明EmbestIDE的應(yīng)用。1.工程的創(chuàng)創(chuàng)建打開EmbestIDE軟件,選選擇File|NewWorkspace命命令建立一個新的的工程,在彈彈出的對話框框中輸入工程程的名稱,并并確定工程存放的的路徑。單擊擊OK按鈕保保存自己的設(shè)設(shè)置。工程對話框2.輸入源源文件并加到到工程中選擇File|New命令或單單擊工具欄上上的新建文本本文件圖標(biāo),,在客戶區(qū)中輸輸入自己的源源文件。該文文件完成將十十六進制的AA、56存儲到內(nèi)內(nèi)存中0x8000開始始的存儲單元元中。保存文件到工工程Test所在的目錄錄下,注意文文件名應(yīng)以.s為擴展名,這里保存存為Test.s。在工作區(qū)的ProjectSourceFiles中中右擊,在彈彈出的對話框框中選擇AddFilestoFolder命命令,添加Test.s到工程Test中。3.編譯工工程在編譯工程前前先要對工程程文件將要運運行的目標(biāo)環(huán)環(huán)境進行設(shè)置置。選擇Project|Settings命令,彈彈出對話框。。設(shè)置完CPU的類型和和所用的編譯譯工具后,單單擊OK按鈕鈕。單擊工具欄上上的Build圖標(biāo),,或按按F7快捷鍵鍵對工程進行行編譯。如果果文件有錯誤誤會在輸出窗窗口輸出錯誤誤信息,可根根據(jù)錯誤信息息進行修改。。如果沒錯誤誤將輸出Command(s)successfullyexecuted信息。處理器設(shè)置選選項卡4.連接的的設(shè)置這里指的是計計算機和目標(biāo)標(biāo)板之間連接接的仿真器設(shè)設(shè)置,可根據(jù)據(jù)實際的連接形式式進行設(shè)置。常規(guī)調(diào)試屬性性配置頁下載信息屬性性配置頁5.調(diào)試和和下載選項設(shè)設(shè)置選擇Project|Setting命令令中的Debug標(biāo)簽對對軟件調(diào)試進進行相關(guān)設(shè)置。調(diào)試設(shè)設(shè)置有3個類類別選擇頁,,分別為調(diào)試試常規(guī)(General)信息息配置頁、下下載(Download)信息配置置頁和內(nèi)存映像(MemoryMap)配配置頁。符號文件欄((Symbolfile)用于輸輸入待調(diào)試的的符號文件名名稱及其目錄錄。符號文件件含有調(diào)試信信息內(nèi)容,常常見的有Elf格式、Coff格式式,提供調(diào)試試所需要的調(diào)調(diào)試信息。本本文件空缺時時,用戶只能能進行匯編級級調(diào)試。下載載文文件件欄欄((Downloadfile))用用于于輸輸入入下下載載到到目目標(biāo)標(biāo)系系統(tǒng)統(tǒng)

溫馨提示

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

最新文檔

評論

0/150

提交評論