版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
嵌入式系統(tǒng)設計與開發(fā)
第9章ARM嵌入式開發(fā)工具本章提要
9.1ARM下層開發(fā)工具
9.2ARM開發(fā)工具概述
9.3ARM的ADS
9.4EmbestIDE的介紹9.1ARM下層開發(fā)工具由于程序的編譯環(huán)境和運行環(huán)境不同,所以ARM嵌入式開發(fā)采用交叉編譯方法進行。首先,在通用計算機上對源程序進行編寫、編譯、匯編、連接形成可以在目標系統(tǒng)上運行的目標文件;接著,通過連接/調試裝置將目標文件下載到目標系統(tǒng)上運行;源程序在目標系統(tǒng)上運行的情況連接裝置在計算機中反映出來,開發(fā)人員通過反映出的情況根據(jù)開發(fā)項目的需要進行相應的修改并重復上述操作直至達到項目開發(fā)預期結果。因此,可以把ARM嵌入式開發(fā)工具分為上層裝在計算機中的開發(fā)工具、中間的連接裝置和下層的ARM芯片本身具有的支持嵌入式開發(fā)的工具。ARM嵌入式系統(tǒng)實時開發(fā)組織結構圖9.1.1JTAG接口
JTAG接口標準是由測試聯(lián)合行動組(jointtestactiongroup)于1986~1988年推出的基于邊界掃描機制的標準化草案。1990年IEEE組織將這些草案標準化,并命名為IEEE1149.1標準,俗稱JTAG調試標準。JTAG除了實現(xiàn)通常意義上的調試功能外,還可實現(xiàn)代碼下載或單步執(zhí)行程序等功能。
邊界掃描機制主要的思想是:通過在內部邏輯之間,即在內部邏輯的邊界上增加串行的可讀寫的邊界掃描單元,從而提供芯片級、板級、系統(tǒng)級的標準測試框架。邊界掃描機制可以實現(xiàn)下列目標:測試不同單元之間的連接。測試單個單元的功能。應用邊界掃描寄存器完成其他測試功能,如偽隨機測試、特征分析和靜態(tài)測試等。JTAG接口的6個主要信號:1)TestClockInput(TCK)。TCK為TAP的操作提供了一個獨立的、基本的時鐘信號,TAP的所有操作都是通過這個時鐘信號來驅動的。TCK在IEEE1149.1標準里是強制要求的。2)TestModeSelectionInput(TMS)。TMS信號用來控制TAP狀態(tài)機的轉換,通過TMS信號,可以控制TAP在不同的狀態(tài)間相互轉換。TMS信號在TCK的上升沿有效。TMS在IEEE1149.1標準里是強制要求的。3)TestDataInput(TDI)。TDI是數(shù)據(jù)輸入接口。所有要輸入到特定寄存器的數(shù)據(jù)都是通過TDI接口一位一位串行輸入的(由TCK驅動)。TDI在IEEE1149.1標準里是強制要求的。4)TestDataOutput(TDO)。TDO是數(shù)據(jù)輸出的接口。所有要從特定邊界掃描鏈采樣的保存在寄存器中的數(shù)據(jù)都是通過TDO接口一位一位串行輸出的(由TCK驅動);在芯片串行測試時,將數(shù)據(jù)傳送給下一個芯片。TDO在IEEE1149.1標準里是強制要求的。5)TestResetInput(TRST/nTRST)。TRST可以用來對TAPController進行復位(初始化)即JTAG復位。該信號接口在IEEE1149.1標準里是可選的,因為通過TMS也可以對TAPController進行復位/初始化。為了防止誤觸發(fā),應在該端加適當上拉電阻。6)SystemReset(nSRST/SRST)。與目標板上的系統(tǒng)復位信號相連??梢灾苯訉δ繕讼到y(tǒng)復位,同時可以檢測目標系統(tǒng)的復位情況。該信號接口在IEEE1149.1標準里是可選的,并不是強制要求的。20針JTAG接口信號
20針JTAG接口連接
9.1.2JTAGTAP
JTAG測試訪問端口JTAGTAP是一個通用端口,是外部JTAG接口連接芯片的通道,由JTAGTAP控制器和掃描鏈構成。通過TAP可以訪問芯片提供的所有數(shù)據(jù)寄存器(DR,dataregister)和指令寄存器(IR,instructionregister)。對整個TAP的控制是通過TAPController完成的。TAP有5個接口信號:TCK、TMS、TDI、TDO和TRST,提供給JTAG接口。掃描描鏈鏈是是由由靠靠近近芯芯片片的的輸輸入入/輸輸出出管管腳腳上上各各增增加加一一個個用用于于實實現(xiàn)現(xiàn)對對芯芯片片輸輸入入/輸輸出出信信號號進進行行觀觀察察和和控控制制的的移移位位寄寄存存器器單單元元,,相相互互連連接接構構成成。。即即在在芯芯片片/內內部部邏邏輯輯的的周周圍圍形形成成一一個個邊邊界界掃掃描描鏈鏈((boundary-scanchain))。。如果果需需要要捕捕獲獲芯芯片片某某個個管管腳腳上上的的輸輸出出,,首首先先需需要要把把該該管管腳腳上上的的輸輸出出裝裝載載到到邊邊界界掃掃描描鏈鏈的的寄寄存存器器單單元元里里,,然然后后通通過過TDO輸輸出出,,得得到到相相應應管管腳腳的的輸輸出出信信號號。。如果果要要在在芯芯片片的的某某個個管管腳腳上上加加載載一一個個特特定定的的信信號號,,則則首首先先通通過過TDI把把期期望望的的信信號號移移位位到到與與相相應應管管腳腳相相連連的的邊邊界界掃掃描描鏈鏈的的寄寄存存器器單單元元里里,,然然后后把把該該寄寄存存器器單單元元的的值值加加載載到到相相應應的的芯芯片片管管腳腳。。在IEEE1149.1標標準準里里面面,,寄寄存存器器分分為為兩兩大大類類::數(shù)數(shù)據(jù)據(jù)寄寄存存器器DR和和指指令令寄寄存存器器IR。。邊界界掃掃描描鏈鏈屬屬于于數(shù)數(shù)據(jù)據(jù)寄寄存存器器的的一一種種,,用用來來實實現(xiàn)現(xiàn)對對芯芯片片的的輸輸入入/輸輸出出的的觀觀察察和和控控制制,,而而指指令令寄寄存存器器用用來來實實現(xiàn)現(xiàn)對對數(shù)數(shù)據(jù)據(jù)寄寄存存器器的的控控制制。。如在在芯芯片片提提供供的的所所有有邊邊界界掃掃描描鏈鏈中中選選擇擇一一條條指指定定的的邊邊界界掃掃描描鏈鏈作作為為當當前前的的目目標標掃掃描描鏈鏈,,并并作作為為訪訪問問對對象象就就是是由由相相應應指指令令寄寄存存器器完完成成的的。。通過過TAP接接口口,,對對數(shù)數(shù)據(jù)據(jù)寄寄存存器器進進行行訪訪問問的的一一般般過過程程是是::1))通通過過指指令令寄寄存存器器,,選選定定一一個個需需要要訪訪問問的的數(shù)數(shù)據(jù)據(jù)寄寄存存器器。。2))把把選選定定的的數(shù)數(shù)據(jù)據(jù)寄寄存存器器連連接接到到TDI和和TDO之之間間。。3))由由TCK驅驅動動,,通通過過TDI,,把把需需要要的的數(shù)數(shù)據(jù)據(jù)輸輸入入到到選選定定的的數(shù)數(shù)據(jù)據(jù)寄寄存器器中中,,同同時時把把選選定定的的數(shù)數(shù)據(jù)據(jù)寄寄存存器器中中的的數(shù)數(shù)據(jù)據(jù)通通過過TDO讀讀出出來來。。JTAGTAP控控制制器器狀狀態(tài)態(tài)轉轉換換圖圖指令令寄寄存存器器和和數(shù)數(shù)據(jù)據(jù)寄寄存存器器工工作作過過程程::1))系系統(tǒng)統(tǒng)上上電電后后在在TMS信信號號驅驅動動下下,,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)態(tài)。。在在Capture-IR狀狀態(tài)態(tài)中中,,一一個個特特定定的的指指令令加加載載到到指指令令寄寄存存器器中中,,進進入入到到Shift-IR狀狀態(tài)態(tài)。。在在Shift-IR狀狀態(tài)態(tài)下下,,通通過過TCK的的驅驅動動,,可可以以將將該該指指令令送送到到指指令令寄寄存存器器中中。。每每條條指指令令都都將將確確定定一一個個相相應應的的數(shù)數(shù)據(jù)據(jù)寄寄存存器器。。然然后后可可以以沿沿著著Shift-IR→→Exit1-IR→→Pause-IR→→Exit2-IR→→Update-IR路路徑徑進進行行,,也也可可以以沿沿著著其其他他的的路路徑徑到到達達Update-IR狀狀態(tài)態(tài)。。在在Update-IR狀狀態(tài)態(tài),,剛剛才才輸輸入入到到指指令令寄寄存存器器中中的的指指令令將將更更新新指指令令寄寄存存器器成成為為當當前前指指令令。。最最后后,,進進入入到到Run-Test/Idle狀狀態(tài)態(tài),,指指令令生生效效,,完完成成對對指指令令寄寄存存器器的的訪訪問問。。2))對對當當前前數(shù)數(shù)據(jù)據(jù)寄寄存存器器的的訪訪問問由由指指令令寄寄存存器器中中的的當當前前指指令令決決定定。。要要訪訪問問由由指指令令選選定定的的數(shù)數(shù)據(jù)據(jù)寄寄存存器器,,需需要要以以Run-Test/Idle為為起起點點在在TMS信信號號驅驅動動下下,,依依次次進進入入Select-DR-Scan→→Capture-DR→→Shift-DR→→Exit1-DR→→Pause-DR→→Exit2-DR→→Update-DR,,最最后后回回到到Run-Test/Idle狀狀態(tài)態(tài)。。在在這這個個過過程程中中,,被被當當前前指指令令選選定定的的數(shù)數(shù)據(jù)據(jù)寄寄存存器器會會被被連連接接在在TDI和和TDO之之間間。。通通過過TDI和和TDO,,就就可可以以將將新新的的數(shù)數(shù)據(jù)據(jù)加加載載到到數(shù)數(shù)據(jù)據(jù)寄寄存存器器中中,,同同時時,,也也可可以以捕捕獲獲數(shù)數(shù)據(jù)據(jù)寄寄存存器器中中的的數(shù)數(shù)據(jù)據(jù)。?,F(xiàn)在在常常用用的的ARM7和和ARM9的的微微內內核核ARM7TDMI與與ARM9TDMI都提提供供了了4條條掃掃描描鏈鏈::1))ScanChain0測測試試鏈鏈2))ScanChain1調調試試鏈鏈3))ScanChain2編編程程鏈鏈4))ScanChain3外外圍圍測測試試鏈鏈ARM9TDMI邊邊界界掃掃描描鏈鏈1的的另另外外兩兩個個信信號號DDEN和和SYSSPEED的作作用用是是::DDEN在在ARM9TDMI內內部部測測試試模模式式下下,,是是可可獲獲取取、、可可測測試試的的。。在在ARM9TDMI外外部部測測試試模模式式下下低低電電平平表表示示將將獲獲取取數(shù)數(shù)據(jù)據(jù)總總線線上上輸輸入入的的數(shù)數(shù)據(jù)據(jù),,高高電電平平表表示示將將要要輸輸出出掃掃描描鏈鏈上上存存儲儲的的數(shù)數(shù)據(jù)據(jù)。。在ARM9TDMI進進入入調調試試狀狀態(tài)態(tài)時時,,SYSSPEED將將輸輸出出。。低低電電平平表表示示微微內內核核現(xiàn)現(xiàn)在在進進入入斷斷點點調調試試,,高高電電平平表表示示微微內內核核進進入入觀觀察點點調調試試狀狀態(tài)態(tài)。。嵌嵌入入式式在在線線仿仿真真器器系統(tǒng)統(tǒng)中中內內核核調調試試功功能能,,主主要要由由4部部分分組組成成::ARM核核內內的的一一組組調調試試擴擴展展。。EmbeddedICE宏宏。。EmbeddedICE宏宏接接口口。?;谟贘TAG接接口口的的在在主主機機和和內內核核之之間間的的調調試試通通信信通通道道。。EmbeddedICE寄寄存器器地址寬度功能地址寬度功能000006調試控制寄存器011009觀察點0控制值寄存器000015調試狀態(tài)寄存器011018觀察點0控制屏蔽寄存器000101中止狀態(tài)寄存器1000032觀察點1地址值寄存器001006調試通信控制寄存器1000132觀察點1地址屏蔽寄存器0010132調試通信數(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ù)屏蔽寄存器調試控控制寄寄存器器(debugcontrolregister))用來來控制制EmbeddedICE,6位分分別對對應6種控控制信信號,,從低低到高高依次次是DBGACK、、DBGRQ、、INTDIS、SBZ/RAZ、MonitorModeEnable和EmbeddedICE。。DBGRQ調調試請請求信信號,,通過過將該該信號號置1,可可以強強制ARM7TDMI/ARM9TDMI暫停停當前前的指指令,,進入入調試試狀態(tài)態(tài);INTDIS用用來控控制中中斷;;SBZ/RAZ任任何時時候都都必須須被置置0;;MonitorModeEnable用用來控控制是是否進進入Monitor模式式;EmbeddedICE-RTDisable用用來控控制整整個EmbeddedICE-RT,是是啟用用還是是禁用用,如如果禁禁用的的話,,ARM7TDMI/ARM9TDMI將將一直直保持持在正正常的的運行行狀態(tài)態(tài)。通過調調試狀狀態(tài)寄寄存器器(debugstatusregister)可可以查查詢當當前系系統(tǒng)的的狀態(tài)態(tài)。調調試狀狀態(tài)寄寄存器器是可可讀可可寫的的,但但一般般只進進行讀讀操作作。5位信信號從從低位位到高高位分分別是是:DBGACK、、DBGRQ、、IFEN、CGENL和TBIT,,其中中DBGACK標識識當前前系統(tǒng)統(tǒng)是否否處于于調試試狀態(tài)態(tài),置置1表表示處處于調調試狀狀態(tài);;DBGRQ標標識DBGRQ信號號的當當前狀狀態(tài);;IFEN標識識系統(tǒng)統(tǒng)的中中斷狀狀態(tài)是是啟用用還是是禁用用;CGENL標識識調試試狀態(tài)態(tài)下對對存儲儲器的的訪問問是否否完成成;TBIT用用來判判斷是是從ARM還是是Thumb模模式進進入調調試狀狀態(tài)。。中止狀狀態(tài)寄寄存器器(abortstatusregister)用用來確確定異異常的的產生生原因因:斷斷點、、觀察察點還還是真真的異異常。。調試通通信控控制寄寄存器器(debugcommscontrolregister))和調調試通通信數(shù)數(shù)據(jù)寄寄存器器(debugcommsdataregister)是是用來來控制制和操操作調調試通通信通通道。。其他他的寄寄存器器都是是關于于觀察察點WATCHPOINT的寄寄存器器,用用于設設置斷斷點和和觀察察點。。剩下的的12個寄寄存器器可以以表示示成如如下形形式::觀察點點0/1地地址值值/屏屏蔽寄寄存器器。觀察點點0/1數(shù)數(shù)據(jù)值值/屏屏蔽寄寄存器器。觀察點點0/1控控制值值/屏屏蔽寄寄存器器。嵌嵌入式式跟蹤蹤宏ETM能捕捕獲指指令和和數(shù)據(jù)據(jù)序列列,訪訪問并并把它它們的的記錄錄發(fā)送送給芯芯片上上或芯芯片外外的緩緩沖器器,ARM的ETM既可可設置置成允允許觸觸發(fā)器器工作作也可可設置置成允允許跟跟蹤結結果被被濾出出。使使用ETM的過過濾功功能,,可以以只捕捕獲特特別中中斷的的或特特殊文文件的的代碼碼執(zhí)行行,即即相當當于提提供了了對代代碼的的壓縮縮功能能。ETM由如如下兩兩部分分組成成:跟蹤端端口,,用于于實時時執(zhí)行行的跟跟蹤。。代碼碼執(zhí)行行時,,CPU發(fā)發(fā)送串串行、、經過過編碼碼、壓壓縮的的分支支目標標地址址、管管線狀狀態(tài)、、讀寫寫數(shù)據(jù)據(jù)給ETM。觸發(fā)裝裝置,,規(guī)范范已被被開發(fā)發(fā)。該該規(guī)范范允許許指定定特定定應用用所需需的觸觸發(fā)源源的準準確集集合。。資源源包括括地址址和數(shù)數(shù)據(jù)比比較器器、計計數(shù)器器和定定序器器。9.2ARM開開發(fā)工工具概概述9.2.1JTAG仿真真器JTAG仿仿真器器也稱稱為JTAG調調試器器,是是通過過ARM芯芯片的的JTAG邊界掃描描口進進行調調試的的設備備。JTAG仿仿真器器連接接比較較方便便,通通過現(xiàn)有的的JTAG邊界界掃描描口與與ARMCPU核核通信信,屬屬于完完全非非插入式((即不不使用用片上上資源源)調調試,,它無無需目目標存存儲器器,不不占用用目標系系統(tǒng)的的任何何端口口,而而這些些是駐駐留監(jiān)監(jiān)控軟軟件所所必需需的。。另外,由由于JTAG調調試的的目標標程序序是在在目標標板上上執(zhí)行行,仿仿真更更接近于目目標硬硬件,,因此此,許許多接接口問問題,,如高高頻操操作限限制、、AC和DC參參數(shù)不不匹配配與電電線長長度的的限制制等均均被最最小化化了。。使用用集成成開發(fā)環(huán)環(huán)境配配合JTAG仿仿真器器進行行開發(fā)發(fā)是目目前采采用最最多的的一種種調試方式式。JTAG仿仿真器器通過過ARM處處理器器的JTAG調調試接接口與與目標標機通通信,,通過并并口或或串口口、網網口、、USB口口與宿宿主機機通信信。通通過JTAG方方式可以以完成成:讀出/寫入入CPU的的寄存存器,,訪問問控制制ARM處處理器器內核核。讀出/寫入入內存存,訪訪問系系統(tǒng)中中的存存儲器器和系系統(tǒng)端端口。。訪問ASIC系統(tǒng)統(tǒng)。訪問I/O系統(tǒng)統(tǒng)??刂瞥坛绦蜻\運行、、停止止、單單步執(zhí)執(zhí)行和和實時時執(zhí)行行程序序、設設置程程序斷斷點。。復位目目標系系統(tǒng)、、下載載代碼碼到目目標ARM。實時的的設置置基于于指令令地址址值、、數(shù)據(jù)據(jù)值的的斷點點。目前國國內最最常用用的幾幾種該該類型型仿真真器::1.EmbestPowerICEforARMEmbestPowerICEforARM是英英蓓特特公司司開發(fā)發(fā)的實實時在在線仿仿真器。2.RealViewICERealViewICE是是ARM公公司最最新仿仿真器器。3.TRACE32-ICDTRACE32-ICD是德德國Lauterbach公公司開開發(fā)的的基于于BDM、、JTAG和OCDS等調調試接接口的的仿真真工具具。在在線線仿真真器ICE在線仿仿真器器ICE((in-circuitemulator))是一一種模模擬CPU的設設備,在在線仿仿真器器使用用仿真真頭完完全取取代目目標板板上的的CPU,,可以以完全仿真真ARM芯芯片的的行為為,提提供更更加深深入的的調試試功能能。在在和宿宿主機連接接的接接口上上,在在線仿仿真器器也是是通過過串行行端口口或并并行端端口、、網口和和USB口口通信信。在在線仿仿真器器為了了能夠夠全速速仿真真時鐘鐘速度度很高的ARM處理理器,,通常常必須須采用用極其其復雜雜的設設計和和工藝藝,因因而其價格格比較較昂貴貴。在在線仿仿真器器通常常用在在ARM硬硬件開開發(fā)中中,軟軟件開發(fā)中中使用用較少少。集集成成開發(fā)發(fā)環(huán)境境本身身帶的的仿真真軟件件以Embest為例例,編編譯好好運行行在目目標系系統(tǒng)上上的文文件后后,在在ProjectSettings對對話框框的Remote選選項卡卡上,,選擇擇Remotedevice下下拉列列表框框的SimArm7選項項,即即可通通過軟軟件形形式在在IDE中進行行仿真真。EmbestIDE軟軟件仿仿真設設置Multi2000模模塊與與應用用系統(tǒng)統(tǒng)該IDE開開發(fā)環(huán)環(huán)境主主要包包括::工程生生成工工具((projectbuiler)源代碼碼調試試器((source-leveldebugger))事件分分析器器(eventanalyzer))性能剖剖析器器(performanceprofiler))實時運運行錯錯誤檢檢查工工具((run-timeerrorchecking))圖形化化瀏覽覽器((graphicalbrower)文本編編輯器器(texteditor)版本控控制工工具((versioncontrolsystem)9.2.5RVDS集成成開發(fā)發(fā)環(huán)境境RealViewDeveloperSuite工具具是ARM公司司繼ADS之后后推出出的新一代代ARM集集成開開發(fā)環(huán)環(huán)境,,是RealViewARM新新一代代開發(fā)發(fā)工具具集中的的集成成開發(fā)發(fā)環(huán)境境部分分,目目前的的最新新版本本是2.2。RealViewARM完完整的開發(fā)發(fā)工具,包包括集成開開發(fā)環(huán)境、、在線調試工具仿真真器等。適適用于采用用多ARM內核結構構或ARM內核加DSP內核核混合結構構的系統(tǒng),,為開發(fā)人人員提供一一個“認識識操作系統(tǒng)統(tǒng)(OS-aware)”的多多內核調試試器。新產產品是第一一個能對多多ARM和DSP內內核真正同同步進行高高集成度調調試的調試試器。它通通過單一內核程序進進行多內核核調試,并并采用了MentorGraphics的嵌嵌入技術。支持的的操作系統(tǒng)統(tǒng)包括Symbian、ThreadX和Nucleus等。RVDS集集成開發(fā)環(huán)環(huán)境的主要要特性包括括編譯工具具、調試工工具和指令集仿真工工具。編譯工具和和調試工具具的特點::(1)RealView編譯譯工具全面優(yōu)化ISOC++編譯譯器。ARM、Thumb、C、C++編譯譯,ARM、Thumb匯編編和宏匯編編。ARM連接接器。庫的連接和和管理。映像文件轉轉化功能。。(2)RVD調試工工具支持多核((ARM+DSP))調試和單單核ARM/DSP調試。自動識別Symbian、ThreadX和Nucleus等操操作系統(tǒng)。。具有跟蹤、、分析程序序功能。9.3ARM的的ADSADS即ARMDeveloperSuite,,是ARM公司推出出的新一代代ARM集成開發(fā)工工具,用來來取代ARM公司在在此前推出出的開發(fā)工工具ARMSDT(ARMsoftwaredevelopmenttoolkit))。9.3.1ADS介紹ARMADS使用用CodeWarriorIDE集集成開發(fā)環(huán)環(huán)境替代了了SDT的的工程管理器APM,使使用AXD(ARMextendeddebugger)替替換了SDT的調調試工具ADW,可可以在Windows和RedHatLinux上運運行。CodeWarriorIDE為用用戶提供下下面的功能能:源代碼編輯輯器,集成成在CodeWarriorIDE瀏覽器中中,能夠根根據(jù)語法格格式,使用用不同的顏顏色顯示代代碼。源代碼瀏覽覽器,保存存了在源碼碼中定義的的所有符號號,能夠使使用戶在源源碼中快速速方便的跳跳轉。查找和替換換功能,用用戶可在多多個文件中中,利用字字符串通配配符,進行行字符串的的搜索和替替換。文件比較功功能,可以以使用戶比比較路徑中中的不同文文本文件內內容。ARMADS由6部分組成成:1)代碼生生成工具。。2)集成開開發(fā)環(huán)境。。3)調試器器。4)指令集集模擬器。。5)ARM開發(fā)包。。6)ARM應用庫。。9.3.2ADS應用1.建建立一個工工程工程將所有有的源碼文文件組織在在一起,并并能夠決定定最終生成成文件存放路徑,,輸出文件件格式等。。1)首先在在CodeWarrior中中新建一個個工程的方方法有兩種種,可以在在工具欄中單單擊New按鈕,也也可以在File菜菜單中選擇擇New命命令。CodeWarrior初始始工程對話話框對話框中為為用戶提供供了7種可可選擇的工工程類型::ARMExecutableImage::用于由ARM指令令的代碼生生成一個ELF格式式的可執(zhí)行行映像文件件。ARMObjectLibrary:用于于由ARM指令的代代碼生成一一個armar格式式的目標文文件庫。EmptyProject:用于創(chuàng)創(chuàng)建一個不不包含任何何庫或源文文件的工程程。MakefileImporterWizard::用于將VisualC的的nmake或GNUmake文件件轉入到CodeWarriorIDE工工程文件。。ThumbARMInterworkingImage::用于由ARM指令令和Thumb指令令的混和代代碼生成一一個可執(zhí)行行的ELF格式的映映像文件。。ThumbExecutableimage:用于于由Thumb指令令創(chuàng)建一個個可執(zhí)行的的ELF格格式的映像像文件。ThumbObjectLibrary::用于由Thumb指令的代代碼生成一一個armar格式式的目標文文件庫。選擇ARMExecutableImage工程,,在Projectname文本框框中輸入工工程文件名名如Test,單擊擊Set按按鈕,可更更改該工程程保存的路路徑,將這這些設置好好后,單擊擊“確定””即可建立立一個新的的名為Test.mcp的ADS工程程。*.mcp文件件是ARM的工程程文件,當當建立一個個工程文件件后,可以以通過打開開該工程的的*.mcp文件在在CodeWarrior中中打開該工工程。這時會出現(xiàn)現(xiàn)Test.mcp的窗口。??梢钥吹剿J的目目標調試環(huán)環(huán)境是DebugRel,單擊擊旁邊的下下三角按鈕,,可以看到到還有另外外兩個可用的的目標調試試環(huán)境,分分別為Release和Debug。工程窗口這3個目標標調試系統(tǒng)統(tǒng)的含義::DebugRel::表示在生生成目標的的時候,會會為每一個個源文件生生成調試信信息。Debug:表示該該目標為每每一個源文文件生成最最完全的調調試信息。。Release:表表示該目標標不會生成成任何調試試信息。有3個標簽簽,分別為為Files、LinkOrder和Target,,默認的是是顯示第一一個Files選項項卡。通過過在該空白白的選項卡卡上右擊,,選擇AddFiles命命令可以把把要用到的的源程序添添加到該工工程中。2)打開開ADS的MetrowerksCodeWarrior集集成開發(fā)發(fā)環(huán)境IDE,,單擊工具欄欄上的新新建文本本文件的的圖標,,可在在出現(xiàn)的的IDE下的空空白頁面上上輸入要要調試的的源文件件,并以以Test1.s為文文件名后后綴保存。3)將文文件保存存在剛才才所建工工程的文文件夾下下,文件件名為Test1.s。最小小化該頁頁面,也也可以在在Project菜單單中,選選擇AddFiles命令令,打開開文件對對話框,,用戶可可以把已已經存在在的文件件添加到工程中中,也可可以在剛剛才所建建工程中中添加該該工程。。在工程中中添加文文件2.編編譯和鏈鏈接工程程(1)生生成目標標的配置置選擇Edit|DebugRelSettings命令令或直接接單擊工工具欄上上的DebugRelSettings圖標標,可以以對生成成的目標標文件進進行配置置。這個選項會會因創(chuàng)建建工程時時選擇目目標調試試系統(tǒng)不不同而不不同。DebugRel設置置對話框框1)Target設置置選項。。TargetName文本本框顯示示了當前前的目標標設置。。Linker下下拉列表表框供用用戶選擇擇要使用用的鏈接接器。這這里默認認的是ARMLinker,使用用該鏈接接器,將將使用ARMLinker鏈接編編譯器和和匯編器器生成的的工程文文件作為為相應目目標文件件。另外兩個個可選項項,None表表示不用用任何鏈鏈接器即即工程中中的所有有文件都都不會被被編譯器器或匯編編器處理理。ARMLibrarian表表示將編編譯或匯匯編得到到的目標標文件轉轉換為ARM庫庫文件。。這里使使用默認認的鏈接接器ARMLinker。。Post-Linker下拉拉列表框框表示鏈鏈接后,,對輸出出文件進進行怎樣樣的操作作。2)LanguageSettings。ARMADS的匯編編器是armasm。。如圖所所示,這這里可以以進行很很多設置,包包括運行行的目標標處理器器的內核核系列,,可根據(jù)據(jù)運行的的目標板處理器器類型進進行選擇擇。命令行工工具選項項設置3)Linker設置置。選中ARMLinker,,打開對對話框。。對話框框的主要要標簽選選項對最最終生成成的文件件有著直直接的影影響。在選項卡卡Output中,Linktype選項項中提供供了3種種鏈接方方式。Partial方式表表示鏈接接器只進進行部分分鏈接,,經過部部分鏈接接生成的的目標文文件,可可以作為為以后進進一步鏈鏈接時的的輸入文文件。Simple方方式是默默認的鏈鏈接方式式,它鏈鏈接生成成簡單的的ELF格式的的目標文文件,使使用的是是鏈接器器選項中中指定的的地址映映射方式式。Scattered方式式使鏈接接器根據(jù)據(jù)scatter格式式文件指指定地址址映射,,生成復復雜的ELF格格式的映映像文件件,這個個選項一一般情況況下不用用。這里里選擇常常用默認認的Simple方式式。鏈接器設設置在選中Simple方方式后,,就會出出現(xiàn)Simpleimage,其其各項含含義:ROBase:即Read-only段段,段是是指描述述映像文文件的代代碼或數(shù)數(shù)據(jù)塊。。該段的的加載域域和運行行域為同同一個地地址,默默認是0x8000。。這里要要根據(jù)實實際的硬硬件SDRAM的地址址空間來來修改這這個地址址,保證證在這里里填寫的的地址,,是程序序運行時時SDRAM地地址空間間所能覆覆蓋的地地址。RWBase:即Read-write段,這這個文本本框設置置了包含含RW和和ZI((zero-initialized)輸輸出段的的運行域域地址。。如果選選中split選項,,鏈接器器生成的的映像文文件將包包含兩個個加載域域和兩個個運行域域。此時時,在RWBase中所輸輸入的地地址為包包含RW和ZI輸出段段的域設設置了加加載域和和運行域域地址。。Ropi:選中中這個復復選框將將告訴鏈鏈接器使使包含有有RO輸輸出段的的運行域域位置無無關。使使用這個個選項,,鏈接器器將保證證:首先先檢查各各段之間間的重地地址是否否有效,,其次確確保任何何由ARM鏈接接器armlink自自身生成成的代碼碼是只讀讀位置無無關的。。Rwpi:選中中該復選選框將會會告訴鏈鏈接器使使包含RW和ZI輸出出段的運運行域位位置無關關。如果果它沒有有被選中中,域就就標識為為絕對。。每一個個可寫的的輸入段段必須是是讀寫位位置無關關的。如如果被選選中,鏈鏈接器檢檢查可讀讀/可寫寫屬性的的運行域域的輸入入段是否否設置了了位置無無關屬性性,檢查查在各段段之間的的重地址址是否有有效。SplitImage:選選中這個個復選框框把包含含RO和和RW輸輸出段的的加載域域分成兩兩個加載載域:一一個是包包含RO輸出段段的域,,一個是是包含RW輸出出段的域域。Relocatable:選選中這個個復選框框保留了了映像文文件的重重地址偏偏移量。。這些偏偏移量為為程序加加載器提提供了有有用信息息。Options選項卡卡,用于于指明存存儲器的的替換方方法、調調試信息息的設置置和映像像文件的的初始入入口地址址等信息息。鏈接器的的操作選選項卡設設置(2)進進行編譯譯和鏈接接選擇Project|make命令或或單擊工工具欄上上的Make圖圖標,就就可以對工程進行編編譯和鏈接了了。在工程Test所在在目錄下,會會生成一個名為“工程程名_data目錄”,,在本例中就就是“Test_data目錄”,,在這個目錄下不不同類別的目目標對應不同同目錄。本例例使用的是DebugRel目標,,所以生成的的最終文件都都應該在該目目錄下。進入到DebugRel目目錄中,會看看到生成的映映像文件和二二進制文件,映像文件件用于調試,,二進制文件件可以燒寫到到開發(fā)板或實實驗箱的Flash中運行。。編譯和鏈接過過程3.用AXD進行代碼碼調試AXD是ADS軟件中獨獨立于CodeWarriorIDE的代碼碼調試工具,,打開AXD軟件,默認認打開的目標標是ARMulator。ARMulator是在主系統(tǒng)統(tǒng)上用軟件模模擬各種ARM處理器核核行為的程序序。這是最常常用的一種調調試工具,要要使用AXD必須首先打打開已經生成成的.axf文件,該文文件就是含有有調試信息的的可執(zhí)行ELF格式的映映像文件。在沒有添加其其他仿真驅動動程序前,Target項只有兩兩項分別為ADDP((JTAG硬硬件仿真)和和ARMUL(即ARMulator軟件仿真真)。如果使使用其他硬件件仿真器連接接到相應的目目標板或實驗驗箱上,可以以打開AXD工具欄的Options|ConfigureTarget命令進行行添加。在添添加之前首先先要進行相應應仿真器驅動動程序的安裝裝,將仿真器器的驅動文件件復制到ADS的BIN目錄下,如如C:\ProgramFiles\ARM\ADSv1_2\BIN。AXD的選擇擇目標環(huán)境對對話框AXD調試環(huán)環(huán)境9.4EmbestIDE介介紹概概述1.EmbestIDE集集成開發(fā)環(huán)境境EmbestIDE的的英文全稱是是EmbestIntegratedDevelopmentEnvironment,是由深圳圳市英蓓特信信息技術有限限公司開發(fā),,應用于嵌入式軟軟件開發(fā)的集集成開發(fā)環(huán)境境。提供嵌入入式應用軟件件開發(fā)平臺,包括括一整套完備備的面向嵌入入式系統(tǒng)的開開發(fā)和調試工工具:有編輯輯器、編譯器器、鏈接器、、調試器、工工程管理器和和底層調試接口設設備(BDM/JTAG仿真器)等等。集成開發(fā)發(fā)環(huán)境IDE的界面同MicrosoftVisualStudio環(huán)境相似似,可以在EmbestIDE集成開開發(fā)環(huán)境中創(chuàng)創(chuàng)建工程、打打開工程,建建立、打開和和編輯文件,編譯、、鏈接、運行行、調試嵌入入式應用程序序。EmbestIDE工工具集示意圖圖2.EmbestIDE主要特特征EmbestIDE可可運行于Windows系列操作系系統(tǒng),支持ARM7和ARM9系列列處理器、Motorola公司的的部分處理器器。與處理器器和調試設備相關關模塊采用即即插即用方式式,可以在同同一個工作區(qū)區(qū)中同時管理多個個應用軟件和和庫工程,各各工程均可配配置不同的處處理器和仿真器,,用戶可以在在各工程中無無縫切換。EmbestIDEforARM的主要要特性:支持開發(fā)語言言:ANSIC、EmbeddedC++、匯編語言言。類似VisualStudio的的用戶界面,,支持打印功功能,支持文文件內查找功功能和FindinFiles功能,支持持C語言程序序函數(shù)列表及及定位。工程管理器::以project為單單位管理用戶戶的應用程序序,進行編譯譯鏈接選項定定制。源碼編輯器::支持標準的的文本編輯功功能、syntax-color、、用戶定義語語言模板、語語法關鍵字、、關鍵字色彩彩顯示和Hex文件編輯輯器。編譯工具:使使用自由軟件件GNU的GCC編譯鏈鏈接器,同時時兼容ARMSDT編編譯工具套件件,支持C語語言、匯編語語言等。調試器:源碼碼級調試,提提供了圖形和和命令行兩種種調試方式。??蛇M行斷點點設置、單步步執(zhí)行、異常常處理,可查查看修改存儲儲器、寄存器器、變量等,,可查看函數(shù)數(shù)棧、堆棧;;可進行反匯匯編、提供圖圖形界面操作作和命令行操操作方式,支支持源程序、、反匯編程序序和混合窗口口顯示,還提提供了程序下下載功能等。。3.EmbestIDE主框架架窗口EmbestIDE主主界面圖開發(fā)環(huán)境主框框架窗口由標標題欄、菜單單欄、工具欄欄、工作區(qū)、、客戶區(qū)、輸輸出窗口和狀狀態(tài)欄等組成成。主框架窗窗口的最上端端為標題欄,,用于顯示當當前打開的文文件名。標題題欄下面為菜菜單欄和工具具欄,工具欄欄的下面為工工作區(qū)和客戶戶區(qū)。工作區(qū)區(qū)用于顯示當當前打開工程程的有關信息息,包括工程程的文件組成成等內容??涂蛻魠^(qū)用于文文本編輯器進進行C、匯編編等源文件的的編輯。輸出出窗口通常在在工作區(qū)和客客戶區(qū)的下面面,用于輸出出編譯信息、、調試信息、、命令行輸入入/輸出和輸輸出一些查詢詢結果信息等等。主框架窗窗口的最底端端為狀態(tài)欄,,用于顯示關關于菜單欄、、工具欄等的的簡單說明信信息以及文本本編輯器中當當前光標所在在的行列號等等。各個欄、、區(qū)的功能和和VisualStudio中基基本相同,這這里不再贅述述。工工程示例例從一個簡單工工程的創(chuàng)建、、編譯、下載載到調試運行行來說明EmbestIDE的應用。1.工程的創(chuàng)創(chuàng)建打開EmbestIDE軟件,選選擇File|NewWorkspace命命令建立一個新的的工程,在彈彈出的對話框框中輸入工程程的名稱,并并確定工程存放的的路徑。單擊擊OK按鈕保保存自己的設設置。工程對話框2.輸入源源文件并加到到工程中選擇File|New命令或單單擊工具欄上上的新建文本本文件圖標,,在客戶區(qū)中輸輸入自己的源源文件。該文文件完成將十十六進制的AA、56存儲到內內存中0x8000開始始的存儲單元元中。保存文件到工工程Te
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年暑期工勞動合同標準文本集3篇
- 番禺2025版租賃市場房源代理服務合同
- 2024結款協(xié)議合同范本
- 二零二四年國際貨物銷售合同:FOB條款與運輸2篇
- 二零二五版高校畢業(yè)生就業(yè)指導與職業(yè)規(guī)劃服務合同6篇
- 二零二五版電影劇本改編與制作投資合同范本3篇
- 2024物聯(lián)網應用項目建設的合同標的
- 年度健腹椅競爭策略分析報告
- 年度全自動板框污泥脫水機產業(yè)分析報告
- 2025年度教育領域臨時工招聘及教學質量合同4篇
- 第7課《中華民族一家親》(第一課時)(說課稿)2024-2025學年統(tǒng)編版道德與法治五年級上冊
- 2024年醫(yī)銷售藥銷售工作總結
- 急診科十大護理課件
- 山東省濟寧市2023-2024學年高一上學期1月期末物理試題(解析版)
- GB/T 44888-2024政務服務大廳智能化建設指南
- 2025年上半年河南鄭州滎陽市招聘第二批政務輔助人員211人筆試重點基礎提升(共500題)附帶答案詳解
- 山東省濟南市歷城區(qū)2024-2025學年七年級上學期期末數(shù)學模擬試題(無答案)
- 國家重點風景名勝區(qū)登山健身步道建設項目可行性研究報告
- 投資計劃書模板計劃方案
- 《接觸網施工》課件 3.4.2 隧道內腕臂安裝
- 2024-2025學年九年級語文上學期第三次月考模擬卷(統(tǒng)編版)
評論
0/150
提交評論