第09講arm嵌入式開發(fā)工具介紹_第1頁
第09講arm嵌入式開發(fā)工具介紹_第2頁
第09講arm嵌入式開發(fā)工具介紹_第3頁
第09講arm嵌入式開發(fā)工具介紹_第4頁
第09講arm嵌入式開發(fā)工具介紹_第5頁
已閱讀5頁,還剩93頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第6章ARM開發(fā)工本章主要介紹以下內(nèi)容ARM開發(fā)工具概ARM映像文件格ADS基本工ADS生成應(yīng)用程序及調(diào)試的實RealViewDevelopmentSuite(RVDS)介Linux環(huán)境下GNUARM工具鏈ARM開發(fā)工具概 點ARM嵌入式開發(fā)工具分單一工具與套操作系統(tǒng)IDE工具/開源操作系統(tǒng)IED工ARM+VxWorks和ARM+Linux和Windows平臺和Linux平通用工具和公 工ADS、SDT和ARM公司的SDT(SoftwareDevelopment合,通常又稱作GNU/LinuxARM工具(GUN/LinuxARMtoolchain)或者GNU/LinuxARM交叉工具鏈(GUN/LinuxARMcrosstoolchain)ARM映像文件格什么是映像文 ELF目標文ELF目標文件的文件名后綴是.oARM映像文件目標文件.o和相應(yīng)的C/C++運行時庫.a經(jīng)ARM連接器連接后,生成.axf映像件。.axf映像文件也是ELF格式的,只是不含調(diào)試信息的映像ELF文件格式簡ELF(ExecutableandLinkingFormat)格件)接口(ABIApplicationBinary(TIS)選擇了正在發(fā)展中的ELF準作為工作在32位 體系結(jié)構(gòu)上不同操系統(tǒng)之間可移植的二進制文件格三種ELF文件類ELF文件是x86Linux下的一種常用目標文件格共享目標文件(sedjectle),xx環(huán)境下的后綴為.s,D環(huán)境下的后綴為.。ELF文件結(jié)ELF文件具有雙重特性ARM連接器把ELF文件當作由節(jié)頭部表(sectionheader表(programheadertable)描述的一組代在一個代碼段通常幾個節(jié)組成ELF文件格式的兩種視圖(圖6-連接視圖和執(zhí)行視由于F文件既可以是可重定位的目標文從兩個視圖來觀察F文件的主體數(shù)據(jù)結(jié)構(gòu)。參看上一幅幻燈片視圖(圖1)。出的視圖是執(zhí)行視圖。ELF文件中的結(jié)構(gòu)信息(圖6-ELF文件頭部結(jié)構(gòu)14個字段說明-字節(jié);位于ELFheader結(jié)構(gòu)的最前面;該數(shù)或者魔幻數(shù)(magicnumber),其內(nèi)容ELF文件頭部結(jié)構(gòu)14個字段說明-接下來的字節(jié)是las+ata+erio+。如果是M的LF文件,設(shè)定_dt[I_S]為FCLAS3;并且設(shè)定_t[IT]為FCL2L(小端序),或者ELFCLASS2MSB(大ELF文件頭部結(jié)構(gòu)14個字段說明-80386處理器,8表示MIPSRS3000處理器; 累計ELF文件頭部結(jié)構(gòu)14個字段說明- 累計ELF文件頭部結(jié)構(gòu)14個字段說明-累計ELF文件頭部結(jié)構(gòu)14個字段說明-累計節(jié)頭部表和程序頭部表的數(shù)據(jù)結(jié)程序頭部表的作程序頭部表(ProgramHeaderTable),如節(jié)區(qū)頭部表的作節(jié)區(qū)頭部表(SectionHeadeTable)包含了 ARM映像文件的組ARM處理器的映像文件是.axf文件或者文件 .axf文件是什么樣的映像文件.axf文件是一種滿足DWARFV2.0調(diào)試文件DWARF即DebugWithArbitraryRecordELF映像格DWARFV2.0調(diào)試規(guī)范的ELF映像格式,也是符合DWARFV2.0調(diào)試規(guī)范的ELF映像ARM可執(zhí)行ELF文ELF文件所有其余部分的位置由ELF頭信息程序程序頭部表和節(jié)頭部表定義念結(jié)構(gòu)(表6-1)ELF頭信程序頭部代碼數(shù)據(jù)未初始化全局變量調(diào)試節(jié)頭部ARM的ELF文件的段(Segment)結(jié)ARM的ELF文件有三種段結(jié)構(gòu):TextData和BSSBSS段(bsssegment)通常是指用來存放程域,它是英文BlockStartedbySymbol的簡ARM的ELF文件的節(jié)(Section)結(jié)所有的可執(zhí)行代碼至少具有兩個節(jié),除非連接器激活時附帶了“oeu”參數(shù)。這兩個節(jié)分別是:SymbolTableSection(符號表節(jié)StringTableSection(字符串表節(jié)目標文件和映像文件的內(nèi)部結(jié)構(gòu)(outputsection)和輸入段(input光考慮了視圖,還考慮了加載視圖和執(zhí)行域、輸出段和輸入段之間的關(guān)ARM映像文件的生輸入段的內(nèi) 段會產(chǎn)生映像文件的RO輸入段,目標文件輸出段的內(nèi)每個輸出段是由具有相同屬性(R、或者I)的若干個輸入段組成。這就是說輸出段的屬性與其中包含的輸入段屬性相同。在一個輸出段內(nèi)部,各輸入段是按照一定的規(guī)則排序的。域的結(jié) 器上,如ROM、RAM和外部設(shè)備等映像文件的加載視圖和執(zhí)行視映像文件域在加載時被映射存放到系統(tǒng)存儲區(qū)。在執(zhí)行映像時,往往需要移動一些域到執(zhí)行地址并且產(chǎn)生Z初始化的RW數(shù)據(jù)也許要被迫從RO區(qū)的加載地址拷貝到RAM區(qū)的執(zhí)行地址。加載視圖:根據(jù)映像文件裝載到器時加載視圖與執(zhí)行視圖的比(圖6-圖6-5中帶有“$$”符號的說明如 三個段RO段大小Image$$RO$$limitImage$$RO$$baseImage$$RW$$limitImage$$RW$$baseImage$$ZI$$limit-段大小計算小結(jié),段大小的設(shè)加載時,RO+RW=整個程序大小運行時,RO+RW大注意:ZI段被包含在RW段中-ro-base選項對應(yīng)設(shè)置-rw-base選項對應(yīng)設(shè)置Image$$RW$$base

分組信息定如何將各個輸入段組織 地址映射方行命令的參數(shù)選 行命令的配置文件選-scatter地址配置文件的映像(.SCF格式文件)生成的映像文件,它有個加載時域和個運行時域。隨后出該配置文件(xaml_s)的全部代碼。圖6-6的地址映射圖 (3)用于UART的I/O地址映射 ROM_DOWNLOAD{ROM_EXEC{Vector.o(Vect,*}RAM{*(+RW,}MP3{mp3.o(+RO,+RW,}HEAP+0{heap.o}STACKS0xBFFFFFF{stack.o}UART {uart.o}}部成分統(tǒng)計表例(圖6-7)Imagecomponent

RO

RW0

ZI

ObjectTotalsLibraryTotals

RO

RW

ZI

GrandTotalROSize(Code+ROData)TotalRWSize(RWData+ZIData)TotalROMSize(Code+ROData+RWData)Translationto inbinaryformatsuccessful.

映像文件統(tǒng)計報課后練1、ARM的可執(zhí)行映像文件的擴展名是什3、ARM映像文件中的TEXT、DATA、分別是什么段結(jié)ARM主流開發(fā)工ARMADS/SDTGNUCygwinARMSDT+GNU+ADS/SDT+調(diào)試器)ADS與Multi-ARMADS全稱為ARMDeveloperSuite,是ARM公司 成開發(fā)環(huán)境(CodeWarrior和AXD),實用程序和支ADS命令行開發(fā)工ARM匯編器 器符號調(diào)試器ARM運行ANSIC函數(shù)庫C++函數(shù)庫圖形化集成開發(fā)環(huán)境(CodeWarrior和CodeWarriorforADS調(diào)試實用程Flash支持的ADTforARM集成開發(fā)系A(chǔ)DT1000EmulatorforADT1000EmulatorforADTEmulatorforARM是連接主機核目標機之間硬件設(shè)備,它實現(xiàn)ADTIDEforARM與目標機之間的連接它具有如下特征支持ARM核 2.5V/3.3V/5V兼容電平接支持標準的14/20針JTAG接運行狀態(tài)指與主機之間通過并口連速度達到ADTIDEforADTIDEforARM可視化編程環(huán)支持ARM7、ARM9、SecurCore等運行于Windows98、NT、2000、XP等平臺中文、英文版本支可視化的源碼編輯和工程管理功界面友好,使用方便:類似MSVisualStudio的用戶界面,支持打印功能,支持文件內(nèi)查找功能和FindinADTIDEforARM可視化編程環(huán)工程管理器:ADTIDE提供圖形化的工程管理工具, 源碼編輯器:支持標準的文本編輯功能,支持C匯編語言語法高亮顯示輔助編輯工具:提供一系列輔助編輯工具,方便開種輔助編輯工具。ADTIDEforARM交叉編譯支持開發(fā)語言:ANSIC;EmbeddedC++;匯編語編譯工具:使用著名優(yōu)秀自由軟件GNU的GCC交叉編譯工具,并經(jīng)過優(yōu)化和嚴格測試,支持C等編譯參數(shù)設(shè)置:完全圖形界面方式的編譯參數(shù) ADTIDEforARM調(diào)試功同時提供了圖形和命令行兩種調(diào)試方程序的單步執(zhí)程 和上載功能工程級調(diào)試參數(shù)管具有與MSVisualStudio類似的調(diào)試菜單功能:Go,Stop,Reset,Restart,Stepinto,Stepover,Stepout,RuntoCursor等豐富的示例程ADTIDEforARM調(diào)試功置、斷點、斷點取消、斷點列表等功能變量監(jiān)視功能:隨程序運行同步更新變量,即時修制顯示ARM示,寄存器值修改時紅色突顯節(jié)/雙字節(jié)/四字節(jié)顯示、大/小端方式顯示,器值修ADTIDEforARM調(diào)試功函數(shù)堆棧顯示,可設(shè)置自動/手動刷新方式、十進/十六進制顯示、參數(shù)值顯示,參數(shù)類型顯板上寄存器(OnBoardRegister)的查看和修改,可以查看支持CPU各個位的意義,可設(shè)置自動/手動刷新方式、二進制/十六進制方式修改寄存器值,寄存器值修改時紅色突顯。flash 編程器,支持對多種flash 的空白檢查、擦除、編程、校驗等操作,支持單一操作和自動操作兩種操作方式,支持8/16/32位flash 寬度,支持多片flash同時編程,編程速度達15Kbytes/s。提供統(tǒng)的flash編程接口,可以方便地添加flash編程方案。ADTIDEfor豐富例

ADT多版本軟件仿真版 ARM7版 ARM9版本簡易仿真版多工程工當前活動工可視化編輯編輯菜 語法高亮編輯輔助編輯工具書GCC交叉編編譯菜編譯工編譯器

多參數(shù)多配置多工程設(shè)管匯編器

多參數(shù)多配置多工程設(shè)管連接器

多參數(shù)多配置多工程設(shè)管調(diào)試功調(diào)試菜 調(diào)試工具命令行調(diào)試窗多種調(diào)試?;旌夏T创a模匯編模斷 斷點列斷

半字模

修改凸顯標字節(jié)模區(qū)上 功區(qū)上 寄存器多模式寄存器修改凸顯標函數(shù)調(diào)用棧窗口函數(shù)調(diào)變量觀察窗局部變 全局變 多個觀察窗命令窗單步調(diào)試STEP單步調(diào)試STEP單步調(diào)試STEP單步調(diào)試RUNTO板上寄寄存器 寄存器寄存器位 熱點描述信修改凸顯標板

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論