IDETCO-L3.0-ADS1.2開(kāi)發(fā)環(huán)境_第1頁(yè)
IDETCO-L3.0-ADS1.2開(kāi)發(fā)環(huán)境_第2頁(yè)
IDETCO-L3.0-ADS1.2開(kāi)發(fā)環(huán)境_第3頁(yè)
IDETCO-L3.0-ADS1.2開(kāi)發(fā)環(huán)境_第4頁(yè)
IDETCO-L3.0-ADS1.2開(kāi)發(fā)環(huán)境_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 1Metrowerks CodeWarrior集成開(kāi)發(fā)環(huán)境介紹集成開(kāi)發(fā)環(huán)境介紹IDETCO-國(guó)際數(shù)碼嵌入式系統(tǒng)培訓(xùn)講義 2006.8 2 ADS集成開(kāi)發(fā)環(huán)境是集成開(kāi)發(fā)環(huán)境是ARM公司推出的公司推出的ARM核微控制器集成開(kāi)發(fā)工核微控制器集成開(kāi)發(fā)工具,英文全稱具,英文全稱“ARM Developer Suite”,ADS1.2是成熟版本。是成熟版本。 ADS1.2支持支持ARM10之前之前的所有的所有ARM系列微控制器系列微控制器,支持,支持軟件調(diào)試軟件調(diào)試及及JTAG硬件仿真調(diào)試硬件仿真調(diào)試,支持,支持匯編、匯編、C、C+源程序,可在源程序,可在Windows98、Windows2000、Wi

2、ndowsXP以及以及RedHat Linux上運(yùn)行。上運(yùn)行。ADS集成開(kāi)發(fā)環(huán)境介紹集成開(kāi)發(fā)環(huán)境介紹 3名稱名稱描述描述使用方式使用方式代碼生成工具ARM匯編器,ARM的C、C+編譯器,Thumb的C、C+編譯器,ARM的連接器由Code Warrior調(diào)用集成開(kāi)發(fā)工具Code Warrior IDE工程管理編譯連接調(diào)試器AXD,ADW/ADU,armsd仿真調(diào)試指令模擬器ARMulator由AXD調(diào)用ARM開(kāi)發(fā)包一些底層的例程,實(shí)用程序(fromELF)由Code Warrior IDE調(diào)用ARM應(yīng)用庫(kù)C、C+函數(shù)庫(kù)等用戶程序使用ADS的組成的組成 4 有了以上部件,用戶就可以為有了以上部件

3、,用戶就可以為ARM系列的系列的RISC處理器編寫(xiě)和調(diào)試處理器編寫(xiě)和調(diào)試自己的應(yīng)用程序了。自己的應(yīng)用程序了。 ADS提供下面的提供下面的命令行開(kāi)發(fā)工具命令行開(kāi)發(fā)工具:armcc是是ARM C編譯器編譯器,用于將,用于將ANSI C編寫(xiě)的程序編譯成編寫(xiě)的程序編譯成32位位ARM指令指令代碼。代碼。armcpp是是ARM C+編譯器編譯器。它將。它將ISO C+或或EC+編譯成編譯成32位位ARM指令指令代碼。代碼。ADS介紹介紹1 5tcc是是Thumb C編譯器編譯器,用于將,用于將ANSI C源代碼編譯成源代碼編譯成16位的位的Thumb指令指令代碼。代碼。tcpp是是Thumb C+編譯器

4、編譯器。它將。它將ISO C+和和EC+源碼編譯成源碼編譯成16位位Thumb指令代碼。指令代碼。armasm是是ARM和和Thumb的匯編器的匯編器。它對(duì)用。它對(duì)用ARM匯編語(yǔ)言和匯編語(yǔ)言和Thumb匯編匯編語(yǔ)言寫(xiě)的源代碼進(jìn)行匯編。語(yǔ)言寫(xiě)的源代碼進(jìn)行匯編。ADS介紹介紹2 6armlink是是ARM連接器連接器。該命令既可以將編譯得到的一個(gè)或多個(gè)目標(biāo)文件。該命令既可以將編譯得到的一個(gè)或多個(gè)目標(biāo)文件和相關(guān)的一個(gè)或多個(gè)庫(kù)文件進(jìn)行鏈接,生成一個(gè)可執(zhí)行文件,也可以將和相關(guān)的一個(gè)或多個(gè)庫(kù)文件進(jìn)行鏈接,生成一個(gè)可執(zhí)行文件,也可以將多個(gè)目標(biāo)文件部分鏈接成一個(gè)目標(biāo)文件,以供進(jìn)一步的鏈接。多個(gè)目標(biāo)文件部分鏈接

5、成一個(gè)目標(biāo)文件,以供進(jìn)一步的鏈接。ARM鏈鏈接器生成的是接器生成的是ELF格式的可執(zhí)行映像文件。格式的可執(zhí)行映像文件。armsd是是ARM和和Thumb的符號(hào)調(diào)試器的符號(hào)調(diào)試器。它能夠進(jìn)行源碼級(jí)的程序調(diào)試。用。它能夠進(jìn)行源碼級(jí)的程序調(diào)試。用戶可以在用戶可以在用C或匯編語(yǔ)言寫(xiě)的代碼中進(jìn)行單步調(diào)試,設(shè)置斷點(diǎn),查看變或匯編語(yǔ)言寫(xiě)的代碼中進(jìn)行單步調(diào)試,設(shè)置斷點(diǎn),查看變量值和內(nèi)存單元的內(nèi)容。量值和內(nèi)存單元的內(nèi)容。ADS介紹介紹2 7 8新建用戶的工程新建用戶的工程 9ARM Executable Image:用于由:用于由ARM指令的代碼生成一個(gè)可執(zhí)行的指令的代碼生成一個(gè)可執(zhí)行的ELF格式的映像文件格式

6、的映像文件。ARM Object Library:用于由:用于由ARM指令的代碼生成一個(gè)指令的代碼生成一個(gè)armar格式的目格式的目標(biāo)文件庫(kù)。標(biāo)文件庫(kù)。Empty Project:用于生成一個(gè)不包含任何源文件和庫(kù)文件的空的工程項(xiàng):用于生成一個(gè)不包含任何源文件和庫(kù)文件的空的工程項(xiàng)目。目。Make Importer Wizard:用于將一個(gè):用于將一個(gè)Visual C的的nmake文件轉(zhuǎn)換成文件轉(zhuǎn)換成CodeWarrior的工程項(xiàng)目文件。的工程項(xiàng)目文件。自帶工程模板簡(jiǎn)介自帶工程模板簡(jiǎn)介 10Thumb ARM Interworking Image:用于由:用于由ARM指令和指令和Thumb指令的混

7、指令的混合代碼生成一個(gè)可執(zhí)行的合代碼生成一個(gè)可執(zhí)行的ELF格式的映像文件格式的映像文件。Thumb Executable Image:用于由:用于由Thumb指令的代碼生成一個(gè)可執(zhí)行的指令的代碼生成一個(gè)可執(zhí)行的ELF格式的映像文件格式的映像文件。Thumb Object Library:用于由:用于由Thumb指令的代碼生成一個(gè)指令的代碼生成一個(gè)armar格式格式的目標(biāo)文件庫(kù)。的目標(biāo)文件庫(kù)。自帶工程模板簡(jiǎn)介自帶工程模板簡(jiǎn)介 11ARM7 Executable Image for lpc2210:無(wú)操作系統(tǒng)時(shí),所有:無(wú)操作系統(tǒng)時(shí),所有C代碼均編譯成代碼均編譯成ARM指令,由指令,由ARM指令的代

8、碼生成一個(gè)可執(zhí)行的指令的代碼生成一個(gè)可執(zhí)行的ELF格式的映像文件格式的映像文件,針對(duì),針對(duì)LPC2210芯片。芯片。ARM7 Executable Image for UCOSII( for lpc2210 ):有:有UCOSII操作系統(tǒng)時(shí),所操作系統(tǒng)時(shí),所有有C代碼均編譯成代碼均編譯成ARM指令,由指令,由ARM指令的代碼以及指令的代碼以及UCOSII代碼生成一個(gè)代碼生成一個(gè)可執(zhí)行的可執(zhí)行的ELF格式的映像文件格式的映像文件,針對(duì),針對(duì)LPC2210芯片。芯片。Project Module for SeaARM5.0:無(wú)操作系統(tǒng)時(shí),所有:無(wú)操作系統(tǒng)時(shí),所有C代碼均編譯成代碼均編譯成ARM指令

9、,指令,由由ARM指令的代碼生成一個(gè)可執(zhí)行的指令的代碼生成一個(gè)可執(zhí)行的ELF格式的映像文件格式的映像文件,針對(duì),針對(duì)SeaARM5.0系統(tǒng),針對(duì)系統(tǒng),針對(duì)lpc2210芯片。芯片。用戶工程模板簡(jiǎn)介用戶工程模板簡(jiǎn)介 12在自帶的工程模版下建立文件在自帶的工程模版下建立文件 13 注意:注意:新建新建*.c,*.s等文件時(shí),必須將等文件時(shí),必須將后綴名后綴名寫(xiě)上。寫(xiě)上。生成目標(biāo):生成目標(biāo): Debug:包含了所有調(diào)試信息。:包含了所有調(diào)試信息。 DebugRel:包含了部分調(diào)試信息。:包含了部分調(diào)試信息。 Release:不包含調(diào)試信息。:不包含調(diào)試信息。 如果當(dāng)前生成目標(biāo)為如果當(dāng)前生成目標(biāo)為De

10、bug,通過(guò),通過(guò)Debug Settings對(duì)話框設(shè)對(duì)話框設(shè) 置的各種選項(xiàng)對(duì)于其他兩個(gè)生成目標(biāo)是無(wú)效的。置的各種選項(xiàng)對(duì)于其他兩個(gè)生成目標(biāo)是無(wú)效的。 14在用戶的工程模板下建立文件在用戶的工程模板下建立文件 15 注意:注意:生成目標(biāo)生成目標(biāo): DebugInExram:用戶系統(tǒng)在調(diào)試時(shí),:用戶系統(tǒng)在調(diào)試時(shí),片外片外RAM使用使用BANK0(起始地址起始地址為為0 x8000 0000),所以選用此生成目標(biāo)。,所以選用此生成目標(biāo)。 RelOutChip:用戶系統(tǒng)調(diào)試時(shí),:用戶系統(tǒng)調(diào)試時(shí),片外片外Flash使用使用BANK0(起始地址為起始地址為0 x8000 0000),所以選用此生成目標(biāo)。,

11、所以選用此生成目標(biāo)。 如果當(dāng)前生成目標(biāo)為如果當(dāng)前生成目標(biāo)為DebugInExram ,通過(guò),通過(guò)Debug Settings 對(duì)話框設(shè)置的各種選項(xiàng)對(duì)于另一個(gè)生成目標(biāo)是無(wú)效的。對(duì)話框設(shè)置的各種選項(xiàng)對(duì)于另一個(gè)生成目標(biāo)是無(wú)效的。用戶的工程模板已經(jīng)將編譯的參數(shù)設(shè)置好了,可以直接使用。用戶的工程模板已經(jīng)將編譯的參數(shù)設(shè)置好了,可以直接使用。 16用戶用戶工程環(huán)境介紹工程環(huán)境介紹 17(1) Files視圖:包含了當(dāng)前工程項(xiàng)目中所有輸入文件的列表,而不論這些文件是否包含在當(dāng)前生成目標(biāo)中。(2) Link Order視圖:包含了當(dāng)前生成目標(biāo)中的所有輸入文件。(3) target視圖:列舉出一個(gè)工程項(xiàng)目中的生成

12、目標(biāo)以及它們之間的相互依存關(guān)系。用戶工程環(huán)境介紹用戶工程環(huán)境介紹1 18(4) DebugRel Setting:工程設(shè)置,如地址設(shè)置、輸出文件設(shè)置、編譯選項(xiàng)等。(5) Synchronize Modefication Date:同步修改日期,若發(fā)現(xiàn)有更新,則在Touch欄標(biāo)記“”。(6) Make:編譯連接(F7為快捷鍵)。 (7) Debug:?jiǎn)?dòng)AXD進(jìn)行調(diào)試(F5為快捷鍵)。用戶工程環(huán)境介紹用戶工程環(huán)境介紹2 19(8) Run:?jiǎn)?dòng)AXD進(jìn)行調(diào)試,并直接運(yùn)行程序。(9) Project Inspector:工程檢查,查看和配置工程項(xiàng)目中源文件的信息。(10) code欄:顯示某個(gè)文件

13、生成的可執(zhí)行目標(biāo)文件的大小,單位為Byte或KByte。對(duì)于組來(lái)說(shuō),顯示的是該組中所有文件對(duì)應(yīng)的目標(biāo)文件的總大小。 “0”:表示該文件還沒(méi)有被編譯或者匯編; “n/a”:表示該文件不包含在當(dāng)前生成目標(biāo)中。用戶工程環(huán)境介紹用戶工程環(huán)境介紹3 20(11) Data欄:顯示某個(gè)文件生成的可執(zhí)行目標(biāo)文件中數(shù)據(jù)的大小,單位為Byte,KByte,MByte。 “0”:表示該文件還沒(méi)有被編譯或者匯編; “n/a”:表示該文件不包含在當(dāng)前生成目標(biāo)中。 由于連接器在連接時(shí),可能刪除沒(méi)有被使用的段,所以這里顯示的數(shù)據(jù)大小與包含在最終的映像文件中的數(shù)據(jù)大小可能并不相同。(12) target欄:表示某個(gè)文件是否

14、包含在當(dāng)前生成目標(biāo)中。 “”:標(biāo)識(shí)對(duì)應(yīng)的文件或組被包含在當(dāng)前生成目標(biāo)中; “”: 如果顯示灰色,表示對(duì)應(yīng)的子組中只有部分文件被包含在當(dāng)前生成目標(biāo)中。 用戶工程環(huán)境介紹用戶工程環(huán)境介紹4 21(13) Debug欄:為單個(gè)文件指定是否生成調(diào)試信息。 如果該欄為“”,標(biāo)識(shí)編譯器/匯編器將為對(duì)應(yīng)的文件或者組生成調(diào)試信息。 如果該欄為“”灰色,標(biāo)識(shí)編譯器/匯編器將為對(duì)應(yīng)的組中部分文件生成調(diào)試信息。(14)Touch欄:用于標(biāo)識(shí)對(duì)應(yīng)的文件或子工程項(xiàng)目是否將會(huì)被匯編、編譯或引入。如果該欄為“”,表示對(duì)應(yīng)文件或子工程項(xiàng)目在下一次執(zhí)行命令make、run、debug時(shí)將會(huì)被匯編、編譯或引入。用戶工程環(huán)境介紹用

15、戶工程環(huán)境介紹5 22生成目標(biāo)設(shè)置生成目標(biāo)設(shè)置1 23 在DebugInExram Settings對(duì)話框中包含六個(gè)面板,用戶可以選擇某個(gè)面板設(shè)置相關(guān)的生成選項(xiàng)。這些選項(xiàng)作用于工程項(xiàng)目中當(dāng)前生成目標(biāo)。(1) 生成目標(biāo)基本選項(xiàng)設(shè)置面板(2) 編程語(yǔ)言選項(xiàng)設(shè)置面板(3) 連接器選項(xiàng)設(shè)置面板(4) 編輯器選項(xiàng)設(shè)置面板(5) 調(diào)試器選項(xiàng)設(shè)置面板(6) 其他選項(xiàng)設(shè)置面板生成目標(biāo)設(shè)置生成目標(biāo)設(shè)置2 24 設(shè)置Target Settings選項(xiàng)組:(7) Target Name:用于設(shè)置當(dāng)前生成目標(biāo)的名稱。(8) Linker:用于選擇使用的連接器。它決定了Target Settings對(duì)話框中其他選項(xiàng)的設(shè)

16、置。 ARM Linker:選擇ARM連接器armlink連接編譯器和匯編器生成的目標(biāo)文件。 ARM Librarian:選擇ARM的librarian工具,將編譯器和連接器生成的文件轉(zhuǎn)化成ARM庫(kù)文件。 None:不使用任何連接器,此時(shí)項(xiàng)目中的文件不會(huì)被匯編器和編譯器處理。生成目標(biāo)設(shè)置生成目標(biāo)設(shè)置3 25 設(shè)置Target Settings選項(xiàng)組:(9) Pre-Linker:Code Warrior IDE for ARM當(dāng)前沒(méi)有使用本選項(xiàng)。(10) Post-Linker:用于選擇對(duì)連接器輸出的文件的處理方式:None:不進(jìn)行連接后的處理。 ARM fromELF:使用ARM工具from

17、ELF處理連接器輸出的ELF格式的文件,它可以將ELF格式的文件轉(zhuǎn)換成各種二進(jìn)制文件格式。 FTP Post-Linker:Code Warrior IDE for ARM當(dāng)前沒(méi)有使用本選項(xiàng)值。 Batch File Runner:在連接完成后運(yùn)行一個(gè)DOS格式的批處理文件。生成目標(biāo)設(shè)置生成目標(biāo)設(shè)置4 26匯編器選項(xiàng)設(shè)置匯編器選項(xiàng)設(shè)置1 27 ARM Assembler選項(xiàng),Target選項(xiàng)卡下設(shè)置舉例:(1) ARM Assembler:匯編器選項(xiàng)設(shè)置。 (2) Architecture or Processor:下拉列表框用于選擇目標(biāo)系統(tǒng)中的ARM體系結(jié)構(gòu)版本號(hào)或處理器編號(hào)。(3) Byt

18、e Order:用于決定使用big-endian大端內(nèi)存模式,還是使用little-endian小端內(nèi)存模式。匯編器選項(xiàng)設(shè)置匯編器選項(xiàng)設(shè)置2 28 (4) Initial State:運(yùn)行用戶程序時(shí),系統(tǒng)的狀態(tài)是ARM狀態(tài)還是Thumb狀態(tài)。但不能切換系統(tǒng)狀態(tài)。(5) Floating Point:用于選擇系統(tǒng)中浮點(diǎn)部件的體系結(jié)構(gòu)。 Pure-Endian softfp:使用軟件的浮點(diǎn)運(yùn)算庫(kù),這種運(yùn)算庫(kù)支持單一的內(nèi)存模式,要么為大端格式,要么為小端格式。(6) Equivalent Command Line:列出了當(dāng)前匯編器選項(xiàng)設(shè)置的命令行格式。匯編器選項(xiàng)設(shè)置匯編器選項(xiàng)設(shè)置3 29匯編器選項(xiàng)設(shè)

19、置匯編器選項(xiàng)設(shè)置4 30 Options選項(xiàng)卡下設(shè)置:(1)Source Line Debug:選中復(fù)選框,則ARMASM產(chǎn)生DRAWF2格式的調(diào)試信息表。(2) Keep Symbols:選中該復(fù)選框,則ARMASM將局部符號(hào)保留在目標(biāo)文件的符號(hào)表中,供調(diào)試器進(jìn)行調(diào)試時(shí)使用。匯編器選項(xiàng)設(shè)置匯編器選項(xiàng)設(shè)置5 31編譯器選項(xiàng)設(shè)置編譯器選項(xiàng)設(shè)置1 32 Code Warrior IDE中內(nèi)嵌的編譯器選項(xiàng)設(shè)置,包括8個(gè)選項(xiàng)卡。針對(duì)Target and Source選項(xiàng)卡:(1)ARM C Compiler:可設(shè)置ARM C語(yǔ)言編譯器的armcc的選項(xiàng)(2)Architecture and Proce

20、ssor:選擇目標(biāo)系統(tǒng)中的ARM體系結(jié)構(gòu)版本或者處理器的編號(hào)。(3)Byte Order:確定使用小端格式還是大端格式。(4) Source Language:確定源文件的類(lèi)型。選擇ANSI/ISO Standard C,指定源程序滿足比較嚴(yán)格的ANSI C標(biāo)準(zhǔn)。編譯器選項(xiàng)設(shè)置編譯器選項(xiàng)設(shè)置2 33連接器選項(xiàng)設(shè)置連接器選項(xiàng)設(shè)置1 34 Code Warrior IDE中內(nèi)嵌的連接器選項(xiàng)設(shè)置,包括5個(gè)選項(xiàng)卡。針對(duì)Output選項(xiàng)卡: (1) ARM Linker:可設(shè)置ARM 連接器的選項(xiàng) (2) Linktype Simple :選擇該按鈕,連接器根據(jù)Simple image項(xiàng)目中指定的地址映射方式,生成簡(jiǎn)單的ELF格式的映像文件。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論