基于ARM9的嵌入式系統(tǒng)設(shè)計第9章ADS介紹及ARM匯編語言程序設(shè)計基礎(chǔ)ppt課件_第1頁
基于ARM9的嵌入式系統(tǒng)設(shè)計第9章ADS介紹及ARM匯編語言程序設(shè)計基礎(chǔ)ppt課件_第2頁
基于ARM9的嵌入式系統(tǒng)設(shè)計第9章ADS介紹及ARM匯編語言程序設(shè)計基礎(chǔ)ppt課件_第3頁
基于ARM9的嵌入式系統(tǒng)設(shè)計第9章ADS介紹及ARM匯編語言程序設(shè)計基礎(chǔ)ppt課件_第4頁
基于ARM9的嵌入式系統(tǒng)設(shè)計第9章ADS介紹及ARM匯編語言程序設(shè)計基礎(chǔ)ppt課件_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 基于基于ARM9ARM9微處置器微處置器S3C2410AS3C2410A第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS引見及引見及ARMARM匯編言語程序設(shè)計匯編言語程序設(shè)計南陽師范學(xué)院南陽師范學(xué)院張帥張帥第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 9.1 9.1 裸機開發(fā)環(huán)境裸機開發(fā)環(huán)境n 何謂“裸機?n 裸機是指無操作系統(tǒng)

2、下的ARM系統(tǒng)開發(fā)n 其特點是一切硬件資源均開放n 可以把它了解為一個高級單片機的開發(fā)n 裸機開發(fā)的作用n 更能深化地從底層去了解ARM CPU的操作過程及系統(tǒng)設(shè)計n 為日后自行設(shè)計系統(tǒng)打下根底n 為bootloader的編寫打好根底第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 開發(fā)環(huán)境的作用開發(fā)環(huán)境的作用第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 9.2 ADS IDE9.2 ADS IDE集成開發(fā)環(huán)境集

3、成開發(fā)環(huán)境) ) ARM運用軟件的開發(fā)工具根據(jù)功能的不同,可以分為編輯軟件、編譯軟件、匯編軟件、鏈接軟件、調(diào)試軟件、嵌入式實時操作系統(tǒng)、函數(shù)庫、評價板,JTAG仿真器以及在線仿真器等。 目前有多家公司可以提供以上不同類型的開發(fā)工具,用戶采用ARM處置器進展嵌入式系統(tǒng)開發(fā)時,選擇適宜的開發(fā)工具可以加快開發(fā)進度,節(jié)省開發(fā)本錢。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 9.2.1 ADS 9.2.1 ADS工具包的組成工具包的組成 ADS是ARM公司推出的集成開發(fā)工具包,是專門用于ARM相關(guān)運用開發(fā)和調(diào)

4、試的綜合性軟件。目前常用的版本是1.2,在功能和易用性上比早期的SDT都有提高,是一款功能強大又易于運用的開發(fā)工具。 ARM ADS包含有編譯器、鏈接器、CodeWarrior IDE、調(diào)試器、指令集模擬器、ARM開發(fā)包和運用庫等部分,可以用ADS來開發(fā)、編譯、調(diào)試采用包括C、C+和ARM匯編言語編寫的程序。 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 9.2.2 ADS9.2.2 ADS開發(fā)工具集開發(fā)工具集 1.1.命令行開發(fā)工具命令行開發(fā)工具ANSI C ANSI C 編譯器編譯器 - armc

5、c and tcc - armcc and tccISO / Embedded C+ ISO / Embedded C+ 編譯器編譯器 - armcpp and tcpp - armcpp and tcppARM / Thumb ARM / Thumb 匯編器匯編器 arms armsLinker - armlink Linker - armlink 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 2.2.圖形開發(fā)工具:圖形開發(fā)工具:Windows Windows 集成開發(fā)環(huán)境集成開發(fā)環(huán)境 CodeWa

6、rrior CodeWarriorDebugger Debugger AXD (ARM eXtended Debugger) AXD (ARM eXtended Debugger)armsd ARM(armsd ARM(符號調(diào)試器符號調(diào)試器) )可向前兼容可向前兼容3.3.庫文件:庫文件:C and C+ C and C+ 庫庫4.4.輔助工具輔助工具/ /支持軟件:支持軟件:格式轉(zhuǎn)換器格式轉(zhuǎn)換器 - fromelf - fromelf 指令級仿真指令級仿真 ARMulator ARMulator庫管理器庫管理器 armar armar第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及

7、介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 fromELFfromELF:ARMARM映像文件轉(zhuǎn)換工具映像文件轉(zhuǎn)換工具該命令將該命令將ELFELF格式的文件作為輸入文件,將該格式轉(zhuǎn)換為各種輸出格式的格式的文件作為輸入文件,將該格式轉(zhuǎn)換為各種輸出格式的文件,包括文件,包括plain binary(BINplain binary(BIN格式映像文件格式映像文件), Motorola 32-bit S-), Motorola 32-bit S-record format(Motorola 32record format(Motorola 32位位S S格式映像文

8、件格式映像文件), Intel Hex 32 ), Intel Hex 32 format(Intel 32format(Intel 32位格式映像文件位格式映像文件) ),和,和 Verilog-like hex Verilog-like hex format(Verilog 16format(Verilog 16進制文件進制文件) ) ArmarArmar:ARMARM庫函數(shù)生成器將一系列庫函數(shù)生成器將一系列ELFELF格式的目的文件以庫函數(shù)的方式集合在一格式的目的文件以庫函數(shù)的方式集合在一同,用戶可以把一個庫傳送給一個鏈接器以替代幾個同,用戶可以把一個庫傳送給一個鏈接器以替代幾個ELFE

9、LF文件。文件。Flash downloaderFlash downloader:用于把二進制映像文件下載到用于把二進制映像文件下載到ARMARM開發(fā)板上的開發(fā)板上的FlashFlash存儲器的工具存儲器的工具ARMulatorARMulator: ARMARM指令集仿真器,集成在指令集仿真器,集成在ARMARM的調(diào)試器的調(diào)試器AXDAXD中,它提供對中,它提供對ARMARM處置器的處置器的指令集的仿真,為指令集的仿真,為ARMARM和和ThumbThumb提供準(zhǔn)確的模擬,用戶可以在硬件尚未提供準(zhǔn)確的模擬,用戶可以在硬件尚未做好的情況下,開發(fā)程序代碼。做好的情況下,開發(fā)程序代碼。第第9 9章章

10、 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 稱號描畫運用方式代碼生成工具ARM匯編器ARM C/C+編譯器Thumb C/C+編譯器ARM 鏈接器由Code Warrior調(diào)用 集成開發(fā)環(huán)境Code Warrior工程管理,編譯鏈接調(diào)試器AXD/ADW/ADU/armsd仿真調(diào)試指令模擬器ARMulator由AXD調(diào)用ARM開發(fā)包一些底層的例程,適用程序(如fromELF)由Code Warrior調(diào)用ARM運用庫C/C+等函數(shù)庫用戶程序調(diào)用工具調(diào)用及流程第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及

11、介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 9.2.3 9.2.3 集成開發(fā)環(huán)境集成開發(fā)環(huán)境CodeWarriorCodeWarrior運用運用 CodeWarrior集成開發(fā)環(huán)境為管理和開發(fā)工程提供了簡單、多樣化的圖形用戶界面。 用戶可以運用ADS的CodeWarrior IDE為ARM處置器開發(fā)用C,C+,或ARM匯編言語的程序代碼 。 全面的工程管理功能。 可以在CodeWarrior IDE為ARM配置以上所引見的各種命令工具,實現(xiàn)對工程代碼的編譯,匯編和鏈接。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序

12、設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 C/C+Browser C/C+SensitiveEditorProjectManager第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 建立工程第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 uARM Executable

13、 Image:用于由ARM指令的代碼生成一個 ELF格式的可執(zhí)行映像文件。uARM Object Library:用于由ARM指令的代碼生成一個 armar 格式的目的文件庫。uEmpty Project:用于創(chuàng)建一個不包含任何庫或源文件的工程。uMakefile Importer Wizard: 用于將 Visual C 的 nmake 或 GNU make 文件轉(zhuǎn)入到CodeWarrior IDE 工程文件。 uThumb ARM Interworking Image:用于由 ARM指令和 Thumb 指令的混和代碼生成一個可執(zhí)行的ELF格式的映像文件。 uThumb Executable

14、 image:用于由 Thumb指令創(chuàng)建一個可執(zhí)行的ELF格式的映像文件。 uThumb Object Library:用于由Thumb指令的代碼生成一個 armar 格式的目的文件庫。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 新建文件第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 添加文件到工程第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌

15、入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 生成目的設(shè)置第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 每個工程工程都有下面3種生成目的:Debug:包含一切調(diào)試信息DebugRel:包含部分調(diào)試信息Release:不包含調(diào)試信息注:假設(shè)工程編譯只是為了調(diào)試運用,那么選擇Debug或者DebugRel;假設(shè)要生成最后可以運轉(zhuǎn)的文件,那么最好選擇Release。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 編譯鏈接進入編譯鏈接設(shè)

16、置:第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 設(shè)置窗口:第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 目的設(shè)置:第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 在Targets Settings選項組中,Post-Linker用于選擇鏈接器輸出文件的處置方式。用戶可以選擇的值如下:None:不進展銜接的處置。ARM

17、 fromELF:運用ARM工具fromELF處置鏈接器輸出的ELF格式文件,它可以將ELF格式的文件轉(zhuǎn)換為各種二進制文件格式。Batch File Runner:在銜接完成后運轉(zhuǎn)一個DOS格式的批處置文件。 假設(shè)用戶在編譯完成后只是用AXD來調(diào)試程序,建議選擇None;假設(shè)要生成最后的編程文件,建議選擇ARM fromELF,該選項與Linker面板中的ARM fromELF選項結(jié)合來產(chǎn)生最終的編程文件。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 CPU設(shè)置:第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)

18、境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 Linker設(shè)置:第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 在 Output format 下拉框中,為用戶提供了多種可以轉(zhuǎn)換的目的格式,這里選擇 Plain binary,這是一個二進制格式的可執(zhí)行文件,可以被燒寫在目的板的 Flash中。 在 Output file name 文本域輸入期望生成的輸出文件存放的途徑,或經(jīng)過點擊 Choose.按鈕從文件對話框中選擇輸出文件途徑。假設(shè)在這個文本域

19、不輸入途徑名,那么生成的二進制文件存放在工程所在的目錄下。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 在標(biāo)簽頁 Output 中,Linktype 中提供了 3 種鏈接方式:Partia :表示鏈接器只進展部分鏈接,經(jīng)過部分鏈接生成的目的文件,可以作為以后進一步鏈接時的輸入文件。Simple :默許的鏈接方式,也是運用最為頻繁的鏈接方式,它鏈接生成簡單的 ELF

20、 格式的目的文件,運用的是鏈接器選項中指定的地址映射方式。Scattered :使得鏈接器要根據(jù) scatter 格式文件中指定的地址映射,生成復(fù)雜的 ELF 格式的映像文件。普通情況下這個選項運用不太多。 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 在選中 Simple 方式后,就會出現(xiàn) Simple image。 R0 Base:這個文本框設(shè)置包含有 R0 段的加載域和運轉(zhuǎn)域為同一個地址,默許是 0 x8000。這里用戶要根據(jù)硬件的實踐 SDRAM 的地址空間來修正這個地址,保證在這里填寫的地址

21、是程序運轉(zhuǎn)時 SDRAM 地址空間所能覆蓋的地址。RW Base:這個文本框設(shè)置包含 RW 和 ZI 輸出段的運轉(zhuǎn)域地址。假設(shè)選中 split 選項,鏈接器生成的映像文件將包含 2 個加載域和 2 個運轉(zhuǎn)域,此時,在 RW Base 中所輸入的地址為包含 RW 和 ZI 輸出段的域設(shè)置了加載域和運轉(zhuǎn)域地址。 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 在 Opt

22、ions 選項中,需求留意的是 Image entry point 文本框。它指定映像文件的初始入口點地址值,當(dāng)映像文件被加載程序加載時,加載程序會跳轉(zhuǎn)到該地址處執(zhí)行。假設(shè)需求,用戶可以在這個文本框中輸入下面格式的入口點。 入口點地址:這是一個數(shù)值,例如-entry 0 x0。 符號:該選項指定映像文件的入口點為該符號所代表的地址處。比如:-entry int_handler。 在此處指定的入口點用于設(shè)置 ELF 映像文件的入口地址。 需求留意的是,這 里不可以用符號 main 作為入口點地址符號,否那么將會出現(xiàn)“Image dose not have an entry point(Not s

23、pecified or not set due to multiple choice)的出錯信息。 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 Layout選項在銜接方式為Simple時有效,用來安排一些輸入段在映像文件中的位置。在上圖中,Place at Beginning of Image選項用于指定某個輸入段放置在它所在的運轉(zhuǎn)時域的開頭。 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 編譯鏈接:第第9

24、 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 文件輸出文件輸出第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 9.2.4 AXD9.2.4 AXD調(diào)試工具的運用調(diào)試工具的運用 在軟件開發(fā)的最初階段,能夠還沒有詳細(xì)的硬件設(shè)備。假設(shè)要測試所開發(fā)的軟件能否到達了預(yù)期的效果,這可以由軟件

25、仿真來完成。 當(dāng)然,也可以搭建一個PCB板,這個板上可以包含一個或多個處置器,在這個板上可以運轉(zhuǎn)和調(diào)試運用軟件。 只需當(dāng)經(jīng)過硬件或者是軟件仿真所得到的結(jié)果到達了預(yù)期的效果,才算是完成了運用程序的編寫任務(wù)。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 調(diào)試器可以發(fā)送以下指令:調(diào)試器可以發(fā)送以下指令:裝載映像文件到目的內(nèi)存;裝載映像文件到目的內(nèi)存;啟動或停頓程序的執(zhí)行;啟動或停頓程序的執(zhí)行;顯示內(nèi)存,存放器或變量的值;顯示內(nèi)存,存放器或變量的值;允許用戶改動存儲的變量值。允許用戶改動存儲的變量值。第第9

26、9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 進入進入AXDAXD調(diào)試工具調(diào)試工具第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 在菜單在菜單FileFile中選擇中選擇“Load image“Load image選項,翻開選項,翻開 Load Image Load Image對話框,找到要裝載對話框,找到要裝載的的.axf.axf映像文件,點擊映像文件,點擊“翻開按鈕,就把映像文件裝載到目的內(nèi)存中了。翻開按鈕,就把映

27、像文件裝載到目的內(nèi)存中了。 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 Docking windowsDocking toolbarsRegistersSource/Disassembly Memory 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 選擇調(diào)試目的:選擇調(diào)試目的: 點擊點擊ADXADX窗口菜單【窗口菜單【OptionsOptions】選擇【】選擇【Configure Configure Tar

28、getTarget】,即彈出】,即彈出Choose Target Choose Target 窗口,在沒有添加窗口,在沒有添加其它仿真驅(qū)動程序前,其它仿真驅(qū)動程序前,Target Target 項中只需兩項,分別為項中只需兩項,分別為ADP(JTAG ADP(JTAG 硬件仿真硬件仿真) )和和ARMUL(ARMUL(軟件仿真軟件仿真) )。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 調(diào)試工具條,從左到右依次為:調(diào)試工具條,從左到右依次為:全速運轉(zhuǎn)全速運轉(zhuǎn)(Go)(Go)停頓運轉(zhuǎn)停頓運轉(zhuǎn)(Stop)

29、(Stop)單步運轉(zhuǎn)單步運轉(zhuǎn)(Step In)(Step In),與,與Step Step 命令不同之處在于對函數(shù)調(diào)用語句,命令不同之處在于對函數(shù)調(diào)用語句,Step In Step In 命令將進入該函數(shù)。命令將進入該函數(shù)。單步運轉(zhuǎn)單步運轉(zhuǎn)(Step)(Step),每次執(zhí)行一條語句,這時函數(shù)調(diào)用將被作為一條語句執(zhí)行。,每次執(zhí)行一條語句,這時函數(shù)調(diào)用將被作為一條語句執(zhí)行。單步運轉(zhuǎn)單步運轉(zhuǎn)(Step Out)(Step Out),執(zhí)行完當(dāng)前被調(diào)用的函數(shù),停頓在函數(shù)調(diào)用的下一條,執(zhí)行完當(dāng)前被調(diào)用的函數(shù),停頓在函數(shù)調(diào)用的下一條語句。語句。運轉(zhuǎn)到光標(biāo)運轉(zhuǎn)到光標(biāo)(Run To Cursor)(Run To

30、 Cursor),運轉(zhuǎn)程序直到當(dāng)前光標(biāo)所在行時停頓。,運轉(zhuǎn)程序直到當(dāng)前光標(biāo)所在行時停頓。設(shè)置斷點設(shè)置斷點(Toggle BreakPoint)(Toggle BreakPoint)第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 調(diào)試察看窗口工具條,從左到右依次為:翻開存放器窗口(Processor Registers)翻開察看窗口(Processor Watch)翻開變量察看窗口(Context Variable)翻開堆棧察看窗口Back Trace翻開存儲器察看窗口(Memory)翻開反匯編窗口(Di

31、sassembly)第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 處置器形狀察看:處置器形狀察看:包括:存放器變量存儲器第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 存儲器窗口:存儲器窗口:包括:顯示格式修正操作第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 單步執(zhí)行、斷點:單步執(zhí)行、斷點:第第9 9章章 集成開發(fā)環(huán)境

32、集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 添加變量進展察看:添加變量進展察看:第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 9.2.5 Wiggler JTAG 仿真器的安裝與運用簡介H-JTAG調(diào)試代理運用Wiggler JTAG 仿真器第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 簡介 MagicARM2410 實驗箱配套的Wiggle

33、r JTAG 仿真器,支持ADS1.2 集成開發(fā)環(huán)境,支持單步、全速及斷點等調(diào)試功能。仿真器采用ARM 公司提出的規(guī)范20 腳JTAG 仿真調(diào)試接口,與計算機銜接采用規(guī)范25 針并口(即打印機口)。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 要運用Wiggler JTAG 仿真器來調(diào)試ARM 處置器,除了ADS1.2 集成開發(fā)環(huán)境外,還需求安裝一個ARM 調(diào)試代理軟件; 引薦運用H-JTAG 軟件,H-JTAG 軟件的特點如下:支持ARM7/ARM9,支持自動檢測和手動指定內(nèi)核;運用RDI 接口,支

34、持SDT2.51、ADS1.2、REALVIEW 和IAR 集成開發(fā)環(huán)境;支持ARM/Thumb 方式;支持Little Endian & BIG Endian 方式;支持Wiggler、SDT JTAG 和自定義接口;H-JTAG調(diào)試代理第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 運用Wiggler JTAG 仿真器雙擊桌面“H-JTAG快捷方式啟動H-JTAG 會自動檢測ARM 內(nèi)核,假設(shè)JTAG 銜接正確將會在H-JTAG 主窗口中顯示S3C2410A 處置器的內(nèi)核ARM920T在進展

35、JTAG 仿真調(diào)試時,不要封鎖H-JTAG 軟件第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 將計算機并口與Wiggler JTAG 仿真器銜接; 將仿真器JTAG口接頭插入MagicARM2410實驗箱主板的J29上; 經(jīng)過AXD 軟件的設(shè)置即可進展JTAG仿真調(diào)試;第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 程序固化 在JTAG 仿真調(diào)試經(jīng)過后,要將程序調(diào)試生成十六進制文件并下載到外部的NOR Flas

36、h(即固化程序),才可脫機運轉(zhuǎn)。生成HEX 文件。運用Flash Programmer 燒寫Flash。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 生成HEX 文件 在當(dāng)前工程窗口中選用Release 生成目的,翻開工程的DebugRel Settings 窗口,在TargetSettings 項中設(shè)置Post-linker 選取ARM fromELF。 在ARM formELF 項中設(shè)置輸出文件類型,如設(shè)置為Intel 32 bit Hex,然后設(shè)置輸出文件名。生成文件默許存放在當(dāng)前工程的xxx_

37、DataRelease目錄中。 重新編譯銜接工程即可生成 十六進制文件。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 運用Flash Programmer 燒寫Flash 將MagicARM2410 實驗箱主板上的JP8 跳線器斷開,選用NOR Flash 啟動方式,按RST 鍵復(fù)位系統(tǒng) 將Wiggler JTAG 仿真器的25 針接口經(jīng)過并口延伸線與PC 機的并口LPT1 銜接,將Wiggler JTAG 仿真器的20 針接口經(jīng)過20 PIN 銜接電纜接到MagicARM2410 實驗箱主板的J29

38、 上 將配置文件DeviceARM2410.ocd 復(fù)制D:目錄下。啟動Flash Programmer 點擊Program按鈕,下載程序至目的板的Flash 中 脫機運轉(zhuǎn)第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 9.3 ARM9.3 ARM匯編偽指令匯編偽指令 在 ARM 匯編言語程序里,有一些特殊指令助記符,這些助記符與指令系統(tǒng)的助記符不同,沒有相對應(yīng)的操作碼,也就是不會生成機器碼,僅僅是在編譯器軟件中起著格式化的作用,通常稱這些特殊指令助記符為偽指令。偽指令在源程序中的作用是為完成匯編程序作

39、各種預(yù)備任務(wù)的,這些偽指令僅在匯編過程中起作用,一旦匯編終了,偽指令的使命就完成。 在 ARM 的匯編程序中,有如下幾種偽指令:數(shù)據(jù)常量定義偽指令、數(shù)據(jù)變量定義偽指令、內(nèi)存分配偽指令及其他偽指令。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 9.3.1 數(shù)據(jù)常量定義偽指令 數(shù)據(jù)常量定義偽指令EQU用于為程序中的常量、標(biāo)號等定義一個等效的字符稱號,類似于C言語中的#define 。 EQU語法格式 : 稱號 EQU 表達式 ,類型 ; 其中 EQU 可用 “ * 替代。 稱號為EQU偽指令定義的字符稱號

40、,當(dāng)表達式為32 位的常量時,可以指定表達式的數(shù)據(jù)類型,可以有以下三種類型: CODE16、CODE32和DATA 。 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 9.3.4 匯編控制偽指令 匯編控制偽指令用于控制匯編程序的執(zhí)行流程,常用的匯編控制偽指令包括以下幾條: 1 IF、ELSE、ENDIF 語法格式: IF 邏輯表達式 指令序列 1 ELSE 指令序列 2 ENDIF 2 WHILE、WEND 語法格式: WHILE 邏輯表達式 指令序列 WEND 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境

41、ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 9.3.5 其他常用的偽指令 還有一些其他的偽指令,在匯編程序中經(jīng)常會被運用,主要包括AREA、ALIGN、CODE16、CODE32、ENTRY、END、EXPOR或 GLOBALIMPORT、EXTERN、GET或 INCLUDE INCBIN、RN、ROUT等。 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 1 1AREAAREA 語法格式:語法格式: AREA AREA 段名段名 屬性屬性 1

42、1 ,屬性,屬性 2 2 , AREA AREA 偽指令用于定義一個代碼段或數(shù)據(jù)段。其中,段偽指令用于定義一個代碼段或數(shù)據(jù)段。其中,段名假設(shè)以數(shù)字開頭,那么該段名需用名假設(shè)以數(shù)字開頭,那么該段名需用 “ | | 括起來,如括起來,如 |1_test| |1_test| 。屬性字段表示該代碼段或數(shù)據(jù)段的相關(guān)屬。屬性字段表示該代碼段或數(shù)據(jù)段的相關(guān)屬性,多個屬性用逗號分隔。性,多個屬性用逗號分隔。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 2 2 ALIGN ALIGN 語法格式:語法格式: ALIGN

43、ALIGN 表達式表達式 , , 偏移量偏移量 3 3 CODE16 CODE16、CODE32CODE32 語法格式:語法格式: CODE16 CODE16 或或 CODE32 CODE32 4 4 ENTRY ENTRY 語法格式:語法格式: ENTRYENTRY 5 5 END END 語法格式:語法格式: END END 6 6 EXPORT EXPORT或或GLOBALGLOBAL 語法格式:語法格式: EXPORT EXPORT 標(biāo)號標(biāo)號 WEAK WEAK (7 (7 IMPORT IMPORT 語法格式:語法格式: IMPORT IMPORT 標(biāo)號標(biāo)號 WEAK WEAK 第第

44、9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 5 5 END END 語法格式:語法格式: END END 6 6 EXPORT EXPORT或或GLOBALGLOBAL 語法格式:語法格式: EXPORT EXPORT 標(biāo)號標(biāo)號 WEAK WEAK (7(7 IMPORT IMPORT 語法格式:語法格式: IMPORT IMPORT 標(biāo)號標(biāo)號 WEAK WEAK 8 8 EXTERN EXTERN 語法格式:語法格式: EXTERN EXTERN 標(biāo)號標(biāo)號 WEAK WEAK9 9 GET GET或或

45、INCLUDEINCLUDE 語法格式:語法格式: GET GET 文件名文件名 1010 INCBIN INCBIN 語法格式:語法格式:INCBIN INCBIN 文件名文件名 1111 RN RN 語法格式:語法格式: 稱號稱號 RN RN 表達式表達式 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 9.4 ARM9.4 ARM的匯編言語構(gòu)造的匯編言語構(gòu)造 在ARMThumb匯編言語程序中,以相對獨立的指令或數(shù)據(jù)序列的程序段為單位組織程序代碼。 段可以分為代碼段和數(shù)據(jù)段,代碼段的內(nèi)容為執(zhí)行代碼,

46、數(shù)據(jù)段存放代碼運轉(zhuǎn)時需求用到的數(shù)據(jù)。 一個匯編程序至少應(yīng)該有一個代碼段,也可以分割為多個代碼段和數(shù)據(jù)段,多個段在程序編譯鏈接時最終構(gòu)成一個可執(zhí)行的映象文件。 可執(zhí)行映象文件通常由以下幾部分構(gòu)成: 一個或多個代碼段,代碼段的屬性為只讀。 零個或多個包含初始化數(shù)據(jù)的數(shù)據(jù)段,數(shù)據(jù)段的屬性為可讀寫。 零個或多個不包含初始化數(shù)據(jù)的數(shù)據(jù)段,數(shù)據(jù)段的屬性為可讀寫。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 9.4.1 ARM匯編言語的語句格式 根本語句格式根本語句格式ARMARMThumbThumb匯編言語的語句

47、格式為:匯編言語的語句格式為: 標(biāo)號標(biāo)號 指令或偽指令指令或偽指令 ;注釋;注釋 規(guī)那么規(guī)那么: : 假設(shè)一條語句太長,可將其分為假設(shè)干行來書寫,假設(shè)一條語句太長,可將其分為假設(shè)干行來書寫,在行的末用續(xù)行符在行的末用續(xù)行符“ 來標(biāo)識下一行與本行為同一條來標(biāo)識下一行與本行為同一條語句。語句。 每一條指令的助記符可以全部用大寫、或全部用小每一條指令的助記符可以全部用大寫、或全部用小寫,但不能在一條指令中大、小寫混用。寫,但不能在一條指令中大、小寫混用。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 2. 2

48、. 匯編言語程序中常用的符號匯編言語程序中常用的符號 在匯編言語程序設(shè)計中,可以運用各種符號替代地在匯編言語程序設(shè)計中,可以運用各種符號替代地址、變量和常量等,以添加程序的可讀性。以下為符號址、變量和常量等,以添加程序的可讀性。以下為符號命名的商定:命名的商定: 符號名不應(yīng)與指令或偽指令同名符號名不應(yīng)與指令或偽指令同名 符號在其作用范圍內(nèi)必需獨一。符號在其作用范圍內(nèi)必需獨一。 符號區(qū)分大小寫,同名的大、小寫符號被視為兩個不符號區(qū)分大小寫,同名的大、小寫符號被視為兩個不同的符號。同的符號。 自定義的符號名不能與系統(tǒng)保管字一樣。自定義的符號名不能與系統(tǒng)保管字一樣。第第9 9章章 集成開發(fā)環(huán)境集成開

49、發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 程序中的常量程序中的常量 程序中的常量是指其值在程序的運轉(zhuǎn)過程中不能程序中的常量是指其值在程序的運轉(zhuǎn)過程中不能被改動的量。被改動的量。ARMARMThumbThumb匯編程序所支持的常量有邏匯編程序所支持的常量有邏輯常量、數(shù)字常量和字符串常量。輯常量、數(shù)字常量和字符串常量。 數(shù)字常量普通為數(shù)字常量普通為3232位的整數(shù),無符號常量取值范圍位的整數(shù),無符號常量取值范圍為為0 0232-1232-1,有符號常量取值范圍為,有符號常量取值范圍為-231-231231-1231-1。 邏輯常量只需

50、兩種取值:真或假。邏輯常量只需兩種取值:真或假。 字符串常量為一個固定的字符串,普通用來提示程字符串常量為一個固定的字符串,普通用來提示程序運轉(zhuǎn)時的信息。序運轉(zhuǎn)時的信息。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 4. 4. 匯編言語程序中的變量匯編言語程序中的變量 程序中的變量是指其值在程序的運轉(zhuǎn)過程中可以改程序中的變量是指其值在程序的運轉(zhuǎn)過程中可以改動的量。動的量。 邏輯變量用于在程序的運轉(zhuǎn)中保管邏輯值真邏輯變量用于在程序的運轉(zhuǎn)中保管邏輯值真/ /假。假。 數(shù)字變量用于在程序的運轉(zhuǎn)中保管數(shù)字值,

51、但數(shù)字值數(shù)字變量用于在程序的運轉(zhuǎn)中保管數(shù)字值,但數(shù)字值的大小不應(yīng)超出數(shù)字變量所能表示的范圍。的大小不應(yīng)超出數(shù)字變量所能表示的范圍。 字符串變量用于在程序的運轉(zhuǎn)中保管一個字符串,但字符串變量用于在程序的運轉(zhuǎn)中保管一個字符串,但字符串的長度不應(yīng)超出字符串變量所能表示的范圍。字符串的長度不應(yīng)超出字符串變量所能表示的范圍。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 5. 5. 程序中的變量代換程序中的變量代換 程序中的變量可經(jīng)過代換操作獲得一個常量。代程序中的變量可經(jīng)過代換操作獲得一個常量。代換操作符為換操

52、作符為“$ $。假設(shè)。假設(shè)“$ $在數(shù)字變量前面,編譯在數(shù)字變量前面,編譯器會將該數(shù)字變量的值轉(zhuǎn)換為十六進制的字符串,并器會將該數(shù)字變量的值轉(zhuǎn)換為十六進制的字符串,并將該十六進制的字符串代換將該十六進制的字符串代換“$ $后的數(shù)字變量。后的數(shù)字變量。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 9.4.2 基于Windows下ADS的匯編言語程序構(gòu)造 ADS環(huán)境下的ARM匯編言語程序構(gòu)造與其它環(huán)境下的匯編言語程序構(gòu)造大體一樣,整個程序也是以段為單元來組織代碼。其語法規(guī)那么總結(jié)如下: 一切標(biāo)號必需在一行

53、的頂格書寫,其后不要添加“:號; 一切的指令均不能頂格寫; 大小寫敏感可以全部大寫或全部小寫,但不能大小寫混合運用; 注釋運用分號“; 。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 9.5 ARM9.5 ARM匯編言語程序調(diào)試匯編言語程序調(diào)試 無論進展嵌入式系統(tǒng)軟件開發(fā)還是硬件電路設(shè)計,調(diào)試永遠是不可短少的、非常重要的一個環(huán)節(jié)。通常嵌入式系統(tǒng)的調(diào)試方法和類型有很多種,最為常見的包括軟件模擬調(diào)試、硬件仿真器在線調(diào)試、Wiggler線纜調(diào)試和Linux環(huán)境下的gdb程序調(diào)試。第第9 9章章 集成開發(fā)環(huán)境

54、集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 9.5.1 ADS軟件模擬環(huán)境下的程序調(diào)試 ADS軟件模擬調(diào)試是利用ARMUL.dll提供的一個軟ARM內(nèi)核,調(diào)試工具和待調(diào)試的嵌入式軟件都在主機上運轉(zhuǎn),由主機提供一個模擬的目的運轉(zhuǎn)環(huán)境,可以進展語法和邏輯上的調(diào)試。它的優(yōu)點是簡一方便,不需求嵌入式目的板,軟件的調(diào)試功能較強;功能有限,不能進展實時聯(lián)機調(diào)試。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 9.5.2 ADS硬件仿真器環(huán)境下的程序

55、調(diào)試 在ADS環(huán)境下利用JTAG硬件仿真器可以實現(xiàn)聯(lián)機調(diào)試,即在線調(diào)試嵌入式設(shè)備的Flash中的程序或者SDRAM中的程序。由于仿真器自成體系,調(diào)試時既可以銜接目的板,也可以不銜接目的板,當(dāng)然仿真器的價錢也相對比較貴。普通在程序的前期開發(fā),通常讓程序只在SDRAM中調(diào)試運轉(zhuǎn),最后才下載到Flash中進展調(diào)試運轉(zhuǎn)。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 ARM仿真器是經(jīng)過內(nèi)部硬件實現(xiàn)PC并口協(xié)議到串行JTAGJiont Test Action Gruop協(xié)議的轉(zhuǎn)換。利用高速JTAG串行掃描鏈,經(jīng)過調(diào)試通訊通道Debug Communications Channel,DCC銜接ARM中心內(nèi)嵌的名為“Embedded-ICE的調(diào)試邏輯,調(diào)試邏輯實時監(jiān)測ARM中心的存放器、數(shù)據(jù)總線和地址總線。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設(shè)計匯編語言程序設(shè)計 嵌入式系統(tǒng)設(shè)計嵌入式系統(tǒng)設(shè)計 配置配置ADSADS以支持以支持JTAGJTAG仿真器仿真器啟動啟動ADSADS的調(diào)試器的調(diào)試器AXDAXD后,從菜單后,從菜單“OptionOption中選擇中選擇“Configure Configure TargetTarget, ,在彈出的窗

溫馨提示

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