




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 基于基于ARM9ARM9微處理器微處理器S3C2410AS3C2410A第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計南陽師范學院南陽師范學院張帥張帥第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 9.1 9.1 裸機開發(fā)環(huán)境裸機開發(fā)環(huán)境n 何謂“裸機”? 裸機是指無操作系統(tǒng)
2、下的ARM系統(tǒng)開發(fā) 其特點是所有硬件資源均開放 可以把它理解為一個高級單片機的開發(fā)n 裸機開發(fā)的作用 更能深入地從底層去理解ARM CPU的操作過程及系統(tǒng)設計 為日后自行設計系統(tǒng)打下基礎 為bootloader的編寫打好基礎第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 開發(fā)環(huán)境的作用開發(fā)環(huán)境的作用第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 9.2 ADS IDE9.2 ADS IDE(集成開發(fā)環(huán)境(集成開發(fā)
3、環(huán)境) ) ARM應用軟件的開發(fā)工具根據(jù)功能的不同,可以分為編輯軟件、編譯軟件、匯編軟件、鏈接軟件、調試軟件、嵌入式實時操作系統(tǒng)、函數(shù)庫、評估板,JTAG仿真器以及在線仿真器等。 目前有多家公司可以提供以上不同類型的開發(fā)工具,用戶采用ARM處理器進行嵌入式系統(tǒng)開發(fā)時,選擇合適的開發(fā)工具可以加快開發(fā)進度,節(jié)省開發(fā)成本。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 9.2.19.2.1 ADSADS工具包的組成工具包的組成 ADS是ARM公司推出的集成開發(fā)工具包,是專門用于ARM相關應用開發(fā)和調試的綜合性
4、軟件。目前常用的版本是1.2,是一款功能強大又易于使用的開發(fā)工具,不過ARM公司不再升級ADS,以后ARM公司推出的集成開發(fā)工具是RealView MDK。 ARM ADS包含有編譯器、鏈接器、CodeWarrior IDE、調試器、指令集模擬器、ARM開發(fā)包和應用庫等部分,可以用ADS來開發(fā)、編譯、調試采用包括C、C+和ARM匯編語言編寫的程序。 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 9.2.2 ADS9.2.2 ADS開發(fā)工具集開發(fā)工具集 1.1.命令行開發(fā)工具命令行開發(fā)工具 ANSI C
5、 編譯器 - armcc and tcc ISO / Embedded C+ 編譯器 - armcpp and tcpp ARM / Thumb 匯編器 arms Linker - armlink 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 2.2.圖形開發(fā)工具:圖形開發(fā)工具: Windows 集成開發(fā)環(huán)境 CodeWarrior Debugger AXD (ARM eXtended Debugger) armsd ARM(符號調試器)可向前兼容3.3.庫文件:庫文件: C and C+ 庫4.4.
6、輔助工具輔助工具/ /支持軟件:支持軟件: 格式轉換器 - fromelf 指令級仿真 ARMulator 庫管理器 armar第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 fromELFfromELF: ARM映像文件轉換工具 該命令將ELF格式的文件作為輸入文件,將該格式轉換為各種輸出格式的文件,包括plain binary(BIN格式映像文件), Motorola 32-bit S-record format(Motorola 32位S格式映像文件), Intel Hex 32 format(I
7、ntel 32位格式映像文件),和 Verilog-like hex format(Verilog 16進制文件) ArmarArmar: ARM庫函數(shù)生成器將一系列ELF格式的目標文件以庫函數(shù)的形式集合在一起,用戶可以把一個庫傳遞給一個鏈接器以代替幾個ELF文件。Flash downloaderFlash downloader: 用于把二進制映像文件下載到ARM開發(fā)板上的Flash存儲器的工具ARMulatorARMulator: ARM指令集仿真器,集成在ARM的調試器AXD中,它提供對ARM處理器的指令集的仿真,為ARM和Thumb提供精確的模擬,用戶可以在硬件尚未做好的情況下,開發(fā)程序
8、代碼第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 名稱描述使用方式代碼生成工具ARM匯編器ARM C/C+編譯器Thumb C/C+編譯器ARM 鏈接器由Code Warrior調用 集成開發(fā)環(huán)境Code Warrior工程管理,編譯鏈接調試器AXD/ADW/ADU/armsd仿真調試指令模擬器ARMulator由AXD調用ARM開發(fā)包一些底層的例程,實用程序(如fromELF)由Code Warrior調用ARM應用庫C/C+等函數(shù)庫用戶程序調用工具調用及流程第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境
9、ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 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介紹及介紹及ARM
10、ARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 C/C+Browser C/C+SensitiveEditorProjectManager第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 建立工程第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 uARM E
11、xecutable Image:用于由ARM指令的代碼生成一個 ELF格式的可執(zhí)行映像文件。uARM Object Library:用于由ARM指令的代碼生成一個 armar 格式的目標文件庫。uEmpty Project:用于創(chuàng)建一個不包含任何庫或源文件的工程。uMakefile Importer Wizard: 用于將 Visual C 的 nmake 或 GNU make 文件轉入到CodeWarrior IDE 工程文件。 uThumb ARM Interworking Image:用于由 ARM指令和 Thumb 指令的混和代碼生成一個可執(zhí)行的ELF格式的映像文件。 uThumb E
12、xecutable image:用于由 Thumb指令創(chuàng)建一個可執(zhí)行的ELF格式的映像文件。 uThumb Object Library:用于由Thumb指令的代碼生成一個 armar 格式的目標文件庫。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 新建文件第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 添加文件到工程第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯
13、編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 生成目標設置第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 每個工程項目都有下面3種生成目標:uDebug:包含所有調試信息uDebugRel:包含部分調試信息uRelease:不包含調試信息注:若項目編譯只是為了調試使用,則選擇Debug或者DebugRel;若要生成最后可以運行的文件,則最好選擇Release。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 編譯鏈
14、接進入編譯鏈接設置:第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 設置窗口:第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 目標設置:第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 在Targets Settings選項組中,Post-Linker用于選擇鏈接器輸出文件的處理方式。用戶可以選擇的值如下: None:不進行
15、連接的處理。 ARM fromELF:使用ARM工具fromELF處理鏈接器輸出的ELF格式文件,它可以將ELF格式的文件轉換為各種二進制文件格式。 Batch File Runner:在連接完成后運行一個DOS格式的批處理文件。 若用戶在編譯完成后只是用AXD來調試程序,建議選擇None;若要生成最后的編程文件,建議選擇ARM fromELF,該選項與Linker面板中的ARM fromELF選項結合來產(chǎn)生最終的編程文件。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 CPU設置:第第9 9章章 集成
16、開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 Linker設置:第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 在 Output format 下拉框中,為用戶提供了多種可以轉換的目標格式,這里選擇 Plain binary,這是一個二進制格式的可執(zhí)行文件,可以被燒寫在目標板的 Flash中。 在 Output file name 文本域輸入期望生成的輸出文件存放的路徑,或通過點擊 Choose.按鈕從文件對話框中選擇輸出文件路徑
17、。如果在這個文本域不輸入路徑名,則生成的二進制文件存放在工程所在的目錄下。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 在標簽頁 Output 中,Linktype 中提供了 3 種鏈接方式: Partia :表示鏈接器只進行部分鏈接,經(jīng)過部分鏈接生成的目標文件,可以作為以后進一步鏈接時的輸入文件。 Simple :默認的鏈接方式,也是使用最為頻繁的鏈接方式,它鏈
18、接生成簡單的 ELF 格式的目標文件,使用的是鏈接器選項中指定的地址映射方式。 Scattered :使得鏈接器要根據(jù) scatter 格式文件中指定的地址映射,生成復雜的 ELF 格式的映像文件。一般情況下這個選項使用不太多。 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 在選中 Simple 方式后,就會出現(xiàn) Simple image。 R0 Base:這個文本框設置包含有 R0 段的加載域和運行域為同一個地址,默認是 0 x8000。這里用戶要根據(jù)硬件的實際 SDRAM 的地址空間來修改這個地址
19、,保證在這里填寫的地址是程序運行時 SDRAM 地址空間所能覆蓋的地址。 RW Base:這個文本框設置包含 RW 和 ZI 輸出段的運行域地址。如果選中 split 選項,鏈接器生成的映像文件將包含 2 個加載域和 2 個運行域,此時,在 RW Base 中所輸入的地址為包含 RW 和 ZI 輸出段的域設置了加載域和運行域地址。 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌
20、入式系統(tǒng)設計 在 Options 選項中,需要注意的是 Image entry point 文本框。它指定映像文件的初始入口點地址值,當映像文件被加載程序加載時,加載程序會跳轉到該地址處執(zhí)行。如果需要,用戶可以在這個文本框中輸入下面格式的入口點。 入口點地址:這是一個數(shù)值,例如-entry 0 x0。 符號:該選項指定映像文件的入口點為該符號所代表的地址處。比如:-entry int_handler。 在此處指定的入口點用于設置 ELF 映像文件的入口地址。 需要注意的是,這 里不可以用符號 main 作為入口點地址符號,否則將會出現(xiàn)“Image dose not have an entry
21、point(Not specified or not set due to multiple choice)”的出錯信息。 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 Layout選項在連接方式為Simple時有效,用來安排一些輸入段在映像文件中的位置。在上圖中,Place at Beginning of Image選項用于指定某個輸入段放置在它所在的運行時域的開頭。 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系
22、統(tǒng)設計 編譯鏈接:第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 文件輸出文件輸出第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 9.2.4 AXD9.2.4 AXD調試工具的使用調試工具的使用 在軟件開發(fā)的最初階段,可能還沒有具體的硬件設備。如果要測試所開發(fā)的軟件是否達到了
23、預期的效果,這可以由軟件仿真來完成。 當然,也可以搭建一個PCB板,這個板上可以包含一個或多個處理器,在這個板上可以運行和調試應用軟件。 只有當通過硬件或者是軟件仿真所得到的結果達到了預期的效果,才算是完成了應用程序的編寫工作。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 調試器能夠發(fā)送以下指令:調試器能夠發(fā)送以下指令: 裝載映像文件到目標內存; 啟動或停止程序的執(zhí)行; 顯示內存,寄存器或變量的值; 允許用戶改變存儲的變量值。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM
24、匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 進入進入AXDAXD調試工具調試工具第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 在菜單File中選擇“Load image”選項,打開 Load Image對話框,找到要裝載的.axf映像文件,點擊“打開”按鈕,就把映像文件裝載到目標內存中了。 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 Docking windowsDocking tool
25、barsRegistersSource/Disassembly Memory 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 選擇調試目標:選擇調試目標: 點擊ADX窗口菜單【Options】選擇【Configure Target】,即彈出Choose Target 窗口,在沒有添加其它仿真驅動程序前,Target 項中只有兩項,分別為ADP(JTAG 硬件仿真)和ARMUL(軟件仿真)。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式
26、系統(tǒng)設計嵌入式系統(tǒng)設計 調試工具條,從左到右依次為:調試工具條,從左到右依次為: 全速運行(Go) 停止運行(Stop) 單步運行(Step In),與Step 命令不同之處在于對函數(shù)調用語句,Step In 命令將進入該函數(shù)。 單步運行(Step),每次執(zhí)行一條語句,這時函數(shù)調用將被作為一條語句執(zhí)行。 單步運行(Step Out),執(zhí)行完當前被調用的函數(shù),停止在函數(shù)調用的下一條語句。 運行到光標(Run To Cursor),運行程序直到當前光標所在行時停止。 設置斷點(Toggle BreakPoint)第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程
27、序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 調試觀察窗口工具條,從左到右依次為:打開寄存器窗口(Processor Registers)打開觀察窗口(Processor Watch)打開變量觀察窗口(Context Variable)打開堆棧觀察窗口(Back Trace)打開存儲器觀察窗口(Memory)打開反匯編窗口(Disassembly)第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 處理器狀態(tài)觀察:處理器狀態(tài)觀察:包括: 寄存器 變量 存儲器第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境A
28、DSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 存儲器窗口:存儲器窗口:包括: 顯示格式 修改操作第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 單步執(zhí)行、斷點:單步執(zhí)行、斷點:第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 添加變量進行觀察:添加變量進行觀察:第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序
29、設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 9.2.5 Wiggler JTAG 仿真器的安裝與應用簡介H-JTAG調試代理使用Wiggler JTAG Wiggler JTAG 仿真器第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 簡介 MagicARM2410 實驗箱配套的Wiggler JTAG 仿真器,支持ADS1.2 集成開發(fā)環(huán)境,支持單步、全速及斷點等調試功能。仿真器采用ARM 公司提出的標準20 腳JTAG 仿真調試接口,與計算機連接采用標準25 針并口(即打印機口)。第第9 9章章 集成開發(fā)環(huán)境
30、集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 要使用Wiggler JTAG 仿真器來調試ARM 處理器,除了ADS1.2 集成開發(fā)環(huán)境外,還需要安裝一個ARM 調試代理軟件; 推薦使用H-JTAG 軟件,H-JTAG 軟件的特點如下:支持ARM7/ARM9,支持自動檢測和手動指定內核;使用RDI 接口,支持SDT2.51、ADS1.2、REALVIEW 和IAR 集成開發(fā)環(huán)境;支持ARM/Thumb 模式;支持Little Endian & BIG Endian 模式;支持Wiggler、SDT JTAG 和自定義接口
31、;H-JTAG調試代理第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 使用Wiggler JTAG 仿真器雙擊桌面“H-JTAG”快捷方式啟動H-JTAG 會自動檢測ARM 內核,如果JTAG 連接正確將會在H-JTAG 主窗口中顯示S3C2410A 處理器的內核ARM920T在進行JTAG 仿真調試時,不要關閉H-JTAG 軟件第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 將計算機并口與Wiggler JTA
32、G 仿真器連接; 將仿真器JTAG口接頭插入MagicARM2410實驗箱主板的J29上; 通過AXD 軟件的設置即可進行JTAG仿真調試;第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 程序固化 在JTAG 仿真調試通過后,要將程序調試生成十六進制文件并下載到外部的NOR Flash(即固化程序),才可脫機運行。 生成HEX HEX 文件。 使用Flash Programmer Flash Programmer 燒寫FlashFlash。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及
33、ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 生成HEX 文件 在當前工程窗口中選用Release 生成目標,打開工程的DebugRel Settings 窗口,在TargetSettings 項中設置Post-linker 選取ARM fromELF。 在ARM formELF 項中設置輸出文件類型,如設置為Intel 32 bit Hex,然后設置輸出文件名。生成文件默認存放在當前工程的xxx_DataRelease”目錄中。 重新編譯連接工程即可生成 十六進制文件。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯
34、編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 使用Flash Programmer 燒寫Flash 將MagicARM2410 MagicARM2410 實驗箱主板上的JP8 JP8 跳線器斷開,選用NOR Flash NOR Flash 啟動方式,按RST RST 鍵復位系統(tǒng) 將Wiggler JTAG 仿真器的25 針接口通過并口延長線與PC 機的并口LPT1 連接,將Wiggler JTAG 仿真器的20 針接口通過20 PIN 連接電纜接到MagicARM2410 實驗箱主板的J29 上 將配置文件DeviceARM2410.ocd 復制D:目錄下。啟動Flash Programmer
35、 點擊Program按鈕,下載程序至目標板的Flash 中 脫機運行第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 9.3 ARM9.3 ARM匯編偽指令匯編偽指令 在 ARM 匯編語言程序里,有一些特殊指令助記符,這些助記符與指令系統(tǒng)的助記符不同,沒有相對應的操作碼,也就是不會生成機器碼,僅僅是在編譯器軟件中起著格式化的作用,通常稱這些特殊指令助記符為偽指令。偽指令在源程序中的作用是為完成匯編程序作各種準備工作的,這些偽指令僅在匯編過程中起作用,一旦匯編結束,偽指令的使命就完成。 在 ARM 的匯編程
36、序中,有如下幾種偽指令:數(shù)據(jù)常量定義偽指令、數(shù)據(jù)變量定義偽指令、內存分配偽指令及其他偽指令。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 9.3.1 數(shù)據(jù)常量定義偽指令 數(shù)據(jù)常量定義偽指令EQU用于為程序中的常量、標號等定義一個等效的字符名稱,類似于C語言中的#define 。 EQU語法格式 : 名稱 EQU 表達式 ,類型 ; 其中 EQU 可用 “ * ” 代替。 名稱為EQU偽指令定義的字符名稱,當表達式為32 位的常量時,可以指定表達式的數(shù)據(jù)類型,可以有以下三種類型: CODE16、CODE
37、32和DATA 。 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 9.3.4 匯編控制偽指令 匯編控制偽指令用于控制匯編程序的執(zhí)行流程,常用的匯編控制偽指令包括以下幾條: (1 1) IFIF、ELSEELSE、ENDIFENDIF 語法格式: IF 邏輯表達式 指令序列 1 ELSE 指令序列 2 ENDIF (2 2) WHILEWHILE、WENDWEND 語法格式: WHILE 邏輯表達式 指令序列 WEND 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言
38、程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 9.3.5 其他常用的偽指令 還有一些其他的偽指令,在匯編程序中經(jīng)常會被使用,主要包括AREA、ALIGN、CODE16、CODE32、ENTRY、END、EXPORT(或 GLOBAL)、IMPORT、EXTERN、GET(或 INCLUDE )、INCBIN、RN、ROUT等。 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 (1 1)AREAAREA 語法格式: AREA 段名 屬性 1 ,屬性 2 , AREA 偽指令用于定義一個代碼段或數(shù)
39、據(jù)段。其中,段名若以數(shù)字開頭,則該段名需用 “ | ” 括起來,如 |1_test| 。屬性字段表示該代碼段(或數(shù)據(jù)段)的相關屬性,多個屬性用逗號分隔。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 (2 2) ALIGNALIGN 語法格式: ALIGN 表達式 , 偏移量 (3 3) CODE16CODE16、CODE32CODE32 語法格式: CODE16 (或 CODE32 )(4 4) ENTRYENTRY 語法格式: ENTRY (5 5) ENDEND 語法格式: END (6 6) E
40、XPORTEXPORT(或(或GLOBALGLOBAL) 語法格式: EXPORT 標號 WEAK 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 ( 7 ( 7) IMPORTIMPORT 語法格式: IMPORT 標號 WEAK (8 8) EXTERNEXTERN 語法格式: EXTERN 標號 WEAK(9 9) GETGET(或(或INCLUDEINCLUDE) 語法格式: GET 文件名 (1010) INCBININCBIN 語法格式:INCBIN 文件名 (1111) RNRN 語法格式
41、: 名稱 RN 表達式 第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 9.4 ARM9.4 ARM的匯編語言結構的匯編語言結構 在ARM(Thumb)匯編語言程序中,以相對獨立的指令或數(shù)據(jù)序列的程序段為單位組織程序代碼。 段可以分為代碼段和數(shù)據(jù)段,代碼段的內容為執(zhí)行代碼,數(shù)據(jù)段存放代碼運行時需要用到的數(shù)據(jù)。 一個匯編程序至少應該有一個代碼段,也可以分割為多個代碼段和數(shù)據(jù)段,多個段在程序編譯鏈接時最終形成一個可執(zhí)行的映象文件。 可執(zhí)行映象文件通常由以下幾部分構成: 一個或多個代碼段,代碼段的屬性為只讀。
42、 零個或多個包含初始化數(shù)據(jù)的數(shù)據(jù)段,數(shù)據(jù)段的屬性為可讀寫。 零個或多個不包含初始化數(shù)據(jù)的數(shù)據(jù)段,數(shù)據(jù)段的屬性為可讀寫。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 9.4.1 ARM匯編語言的語句格式 1.1. 基本語句格式基本語句格式ARM(Thumb)匯編語言的語句格式為: 標號 指令或偽指令;注釋規(guī)則: 如果一條語句太長,可將其分為若干行來書寫,在行的末用續(xù)行符“”來標識下一行與本行為同一條語句。 每一條指令的助記符可以全部用大寫、或全部用小寫,但不能在一條指令中大、小寫混用。第第9 9章章 集
43、成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 2. 2. 匯編語言程序中常用的符號匯編語言程序中常用的符號 在匯編語言程序設計中,可以使用各種符號代替地址、變量和常量等,以增加程序的可讀性。以下為符號命名的約定: 符號名不應與指令或偽指令同名 符號在其作用范圍內必須唯一。 符號區(qū)分大小寫,同名的大、小寫符號被視為兩個不同的符號。 自定義的符號名不能與系統(tǒng)保留字相同。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 3.3. 程序中
44、的常量程序中的常量 程序中的常量是指其值在程序的運行過程中不能被改變的量。ARM(Thumb)匯編程序所支持的常量有邏輯常量、數(shù)字常量和字符串常量。 數(shù)字常量一般為32位的整數(shù),無符號常量取值范圍為0232-1,有符號常量取值范圍為-231231-1。 邏輯常量只有兩種取值:真或假。 字符串常量為一個固定的字符串,一般用來提示程序運行時的信息。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 4. 4. 匯編語言程序中的變量匯編語言程序中的變量 程序中的變量是指其值在程序的運行過程中可以改變的量。 邏輯變
45、量用于在程序的運行中保存邏輯值(真/假)。 數(shù)字變量用于在程序的運行中保存數(shù)字值,但數(shù)字值的大小不應超出數(shù)字變量所能表示的范圍。 字符串變量用于在程序的運行中保存一個字符串,但字符串的長度不應超出字符串變量所能表示的范圍。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 5. 5. 程序中的變量代換程序中的變量代換 程序中的變量可通過代換操作取得一個常量。代換操作符為“$”。如果“$”在數(shù)字變量前面,編譯器會將該數(shù)字變量的值轉換為十六進制的字符串,并將該十六進制的字符串代換“$”后的數(shù)字變量。第第9 9章
46、章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 9.4.2 基于Windows下ADS的匯編語言程序結構 ADS環(huán)境下的ARM匯編語言程序結構與其它環(huán)境下的匯編語言程序結構大體相同,整個程序也是以段為單元來組織代碼。其語法規(guī)則總結如下: 所有標號必須在一行的頂格書寫,其后不要添加“:”號; 所有的指令均不能頂格寫; 大小寫敏感(可以全部大寫或全部小寫,但不能大小寫混合使用); 注釋使用分號“;” 。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系
47、統(tǒng)設計嵌入式系統(tǒng)設計 9.5 ARM9.5 ARM匯編語言程序調試匯編語言程序調試 無論進行嵌入式系統(tǒng)軟件開發(fā)還是硬件電路設計,調試永遠是不可缺少的、非常重要的一個環(huán)節(jié)。通常嵌入式系統(tǒng)的調試方法和類型有很多種,最為常見的包括軟件模擬調試、硬件仿真器在線調試、Wiggler線纜調試和Linux環(huán)境下的gdb程序調試。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 9.5.1 ADS軟件模擬環(huán)境下的程序調試 ADS軟件模擬調試是利用ARMUL.dll提供的一個軟ARM內核,調試工具和待調試的嵌入式軟件都在主
48、機上運行,由主機提供一個模擬的目標運行環(huán)境,可以進行語法和邏輯上的調試。它的優(yōu)點是簡單方便,不需要嵌入式目標板,軟件的調試功能較強;功能有限,不能進行實時聯(lián)機調試。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 9.5.2 ADS硬件仿真器環(huán)境下的程序調試 在ADS環(huán)境下利用JTAG硬件仿真器可以實現(xiàn)聯(lián)機調試,即在線調試嵌入式設備的Flash中的程序或者SDRAM中的程序。由于仿真器自成體系,調試時既可以連接目標板,也可以不連接目標板,當然仿真器的價格也相對比較貴。一般在程序的前期開發(fā),通常讓程序只在S
49、DRAM中調試運行,最后才下載到Flash中進行調試運行。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 ARM仿真器是通過內部硬件實現(xiàn)PC并口協(xié)議到串行JTAG(Jiont Test Action Gruop)協(xié)議的轉換。利用高速JTAG串行掃描鏈,通過調試通信通道(Debug Communications Channel,DCC)連接ARM核心內嵌的名為“Embedded-ICE”的調試邏輯,調試邏輯實時監(jiān)測ARM核心的寄存器、數(shù)據(jù)總線和地址總線。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS
50、介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 配置配置ADSADS以支持以支持JTAGJTAG仿真器仿真器 啟動ADS的調試器AXD后,從菜單“Option”中選擇“Configure Target”,在彈出的窗口中,添加或選擇H-JTAG.dll(如圖所示)。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 9.6 ARM9.6 ARM匯編語言與匯編語言與C C語言混合編程語言混合編程 ARM體系結構支持C/C+以及匯編語言的混合編程,在一個完整的程序設計中,除
51、了初始化部分用匯編完成以外,其主要的編程任務一般都用C/C+完成。 匯編語言和C/C+的混合編程通常有以下幾種方式: 匯編程序中調用C程序 C程序中調用匯編程序 C程序中內嵌匯編語句 從匯編程序中訪問C程序變量第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹及ARMARM匯編語言程序設計匯編語言程序設計 嵌入式系統(tǒng)設計嵌入式系統(tǒng)設計 規(guī)定了在混合編程時子程序調用的一些基本規(guī)則,主要包括寄存器的使用、堆棧的使用、參數(shù)傳遞和子程序結果的返回等方面的規(guī)則。1. 寄存器的使用規(guī)則 程序通過寄存器R0-R3來傳遞參數(shù),這時這些寄存器可以記作A0-A3,被調用的子程序在返回前無需恢復寄存器R0-R3的內容。第第9 9章章 集成開發(fā)環(huán)境集成開發(fā)環(huán)境ADSADS介紹及介紹
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 3-3編碼器1電子課件教學版
- 糧食倉儲企業(yè)綠色稅收政策考核試卷
- 玻璃管道生產(chǎn)考核試卷
- 油氣倉儲與能源安全風險管理體系構建策略研究考核試卷
- 殘疾人座車內飾設計與材料選擇考核試卷
- 游樂設施施工電氣安全知識考核試卷
- 電氣設備數(shù)字化設計與制造考核試卷
- 電機專利技術考核試卷
- 竹漿在紙品印刷適應性改進的技術研究考核試卷
- 紗線國際貿易的風險防范考核試卷
- 電力建設項目工程結算編制講義
- 【MOOC】中國近現(xiàn)代史綱要-浙江大學 中國大學慕課MOOC答案
- GB/T 21477-2024船舶與海上技術非金屬軟管組件和非金屬補償器的耐火性能試驗方法
- 設備運輸包裝方案
- 高中信息技術《走近人工智能》教學設計
- 第八章 堅持以促進國際安全為依托-國家安全教育大學生讀本教案
- 建設工程施工合同糾紛起訴狀范本6篇
- 中華人民共和國保守國家秘密法實施條例培訓課件
- 2024年飲料供應鏈銷售與分銷協(xié)議
- 翼狀胬肉患者護理查房
- 2025高考數(shù)學專項復習:指對同構問題 講義
評論
0/150
提交評論