1. gzyueqian
      18529173453
      首頁 > 新聞中心 > > 正文

      ARM ads簡介

      更新時間: 2007-05-17 15:51:27來源: 粵嵌教育瀏覽量:1049

      ARM ADS 全稱為 ARM Developer Suite 。是 ARM 公司推出的新一代 ARM 集成開發(fā)工具。現(xiàn)在 ADS 的版本是 1.2 ,它取代了早期的 ADS1.1 和 ADS1.0 。它除了可以安裝在 Windows NT4 ,Windows 2000 , Windows 98 和 Windows 95 操作系統(tǒng)下,還支持 Windows XP 和 Windows Me 操作系統(tǒng)。


      ADS 由命令行開發(fā)工具, ARM 時實庫, GUI 開發(fā)環(huán)境 (Code Warrior 和 AXD) ,實用程序和支持軟件組成。 有了這些部件,用戶就可以為 ARM 系列的 RISC 處理器編寫和調(diào)試自己的開發(fā)應(yīng)用程序了。

      下面就詳細(xì)介紹一下 ADS 的各個組成部分。

      命令行開發(fā)工具

      這些工具完成將源代碼編譯,鏈接成可執(zhí)行代碼的功能。

      ADS 提供下面的命令行開發(fā)工具:

      armcc

      armcc 是 ARM C 編譯器。這個編譯器通過了 Plum Hall C Validation Suite 為 ANSI C 的一致性測試。 armcc 用于將用 ANSI C 編寫的程序編譯成 32 位 ARM 指令代碼。

      因為 armcc 是我們常用的編譯器,所以對此作一個詳細(xì)的介紹。

      在命令控制臺環(huán)境下,輸入命令:

      armcc – help

      可以查看 armcc 的語法格式以及常用的一些操作選項

      armcc 基本的用法為: armcc [options] file1 file2 ... filen

      這里的 option 是編譯器所需要的選項, fiel1,file2…filen 是相關(guān)的文件名。

      這里簡單介紹一些常用的操作選項。

      -c :表示只進行編譯不鏈接文件;

      -C : ( 注意:這是大寫的 C) 禁止預(yù)編譯器將注釋行移走;

      -D<symbol> :定義預(yù)處理宏,相當(dāng)于在源程序開頭使用了宏定義語句 #define symbol ,這里 symbol 默認(rèn)為 1 ;

      -E :僅僅是對 C 源代碼進行預(yù)處理就停止;

      -g<options> :指定是否在生成的目標(biāo)文件中包含調(diào)試信息表;

      -I<directory> :將 directory 所指的路徑添加到 #include 的搜索路徑列表中去; -J<directory> :用directory 所指的路徑代替默認(rèn)的對 #include 的搜索路徑;

      -o<file> :指定編譯器終生成的輸出文件名。

      -O0 :不優(yōu)化;

      -O1 :這是控制代碼優(yōu)化的編譯選項,大寫字母 O 后面跟的數(shù)字不同,表示的優(yōu)化級別就不同, -O1 關(guān)閉了影響調(diào)試結(jié)果的優(yōu)化功能;

      -O2 :該優(yōu)化級別提供了的優(yōu)化功能;

      -S :對源程序進行預(yù)處理和編譯,自動生成匯編文件而不是目標(biāo)文件;

      -U<symbol> :取消預(yù)處理宏名,相當(dāng)于在源文件開頭,使用語句 #undef symbol;

      -W<options> :關(guān)閉所有的或被選擇的警告信息;

      有關(guān)更詳細(xì)的選項說明,讀者可查看 ADS 軟件的在線幫助文件。

      armcpp

      armcpp 是 ARM C++ 編譯器。它將 ISO C++ 或 EC++ 編譯成 32 位 ARM 指令代碼。

      tcc

      tcc 是 Thumb C 編譯器。該編譯器通過了 Plum Hall C Validation Suite 為 ANSI 一致性的測試。

      tcc 將 ANSI C 源代碼編譯成 16 位的 Thumb 指令代碼。

      tcpp

      tcpp 是 Thumb C++ 編譯器。 它將 ISO C++ 和 EC++ 源碼編譯成 16 位 Thumb 指令代碼。

      armasm

      armasm 是 ARM 和 Thumb 的匯編器 . 它對用 ARM 匯編語言和 Thumb 匯編語言寫的源代碼進

      行匯編。

      armlink

      armlink 是 ARM 連接器。該命令既可以將編譯得到的一個或多個目標(biāo)文件和相關(guān)的一個或多個庫文件進行鏈接,生成一個可執(zhí)行文件,也可以將多個目標(biāo)文件部分鏈接成一個目標(biāo)文件,以供進一步的鏈接。 ARM 鏈接器生成的是 ELF 格式的可執(zhí)行映像文件。

      armsd

      armsd 是 ARM 和 Thumb 的符號調(diào)試器。它能夠進行源碼級的程序調(diào)試。用戶可以在用 C 或匯編語言寫的代碼中進行單步調(diào)試,設(shè)置斷點,查看變量值和內(nèi)存單元的內(nèi)容。

      GUI 開發(fā)環(huán)境 (Code Warrior 和 AXD)

      CodeWarrior 集成開發(fā)環(huán)境

      CodeWarrior for ARM 是一套完整的集成開發(fā)工具,充分發(fā)揮了 ARM RISC 的優(yōu)勢 , 使產(chǎn)品開發(fā)人員能夠很好的應(yīng)用的片上系統(tǒng)技術(shù) . 該工具是專為基于 ARM RISC 的處理器而設(shè)計的 , 它可加速并簡化嵌入式開發(fā)過程中的每一個環(huán)節(jié),使得開發(fā)人員只需通過一個集成軟件開發(fā)環(huán)境就能研制出 ARM 產(chǎn)品,在整個開發(fā)周期中 , 開發(fā)人員無需離開 CodeWarrior 開發(fā)環(huán)境 , 因此節(jié)省了在操做工具上花的時間 , 使得開發(fā)人員有更多的精力投入到代碼編寫上來, CodeWarrior 集成開發(fā)環(huán)境 (IDE) 為管理和開發(fā)項目提供了簡單多樣化的圖形用戶界面。用戶可以使用 ADS 的 CodeWarrior IDE 為 ARM 和 Thumb 處理器開發(fā)用 C , C++ ,或 ARM 匯編語言的程序代碼。通過提供下面的功能, CodeWarrior IDE 縮短了用戶開發(fā)項目代碼的周期。

      1. 全面的項目管理功能;

      2. 子函數(shù)的代碼導(dǎo)航功能,使得用戶迅速找到程序中的子函數(shù)。

      可以在 CodeWarrior IDE 為 ARM 配置在 8.1.1 中介紹的各種命令工具,實現(xiàn)對工程代碼的編譯, 匯編和鏈接。

      在 CodeWarrior IDE 中所涉及到的 target 有兩種不同的語義。

      目標(biāo)系統(tǒng) (Target system)

      是特指代碼要運行的環(huán)境,是基于 ARM 的硬件。比如,要為 ARM 開發(fā)板上編寫要運行在它上面的程序,這個開發(fā)板就是目標(biāo)系統(tǒng)。

      生成目標(biāo) (Build target)

      是指用于生成特定的目標(biāo)文件的選項設(shè)置 ( 包括匯編選項,編譯選項,鏈接選項以及鏈接后的處理選項 ) 和所用的文件的集合。

      CodeWarrior IDE 能夠讓用戶將源代碼文件,庫文件還有其他相關(guān)的文件以及配置設(shè)置等放在一個工程中。每個工程可以創(chuàng)建和管理生成目標(biāo)設(shè)置的多個配置。例如,要編譯一個包含調(diào)試信息的生成目標(biāo)和一個基于 ARM7TDMI 的硬件優(yōu)化生成目標(biāo),生成目標(biāo)可以在同一個工程中共享文件,同時使用各自的設(shè)置。

      CodeWarrior IDE 為用戶提供下面的功能:

      源代碼編輯器,它集成在 CodeWarrior IDE 的瀏覽器中,能夠根據(jù)語法格式,使用不同的顏色顯示代碼;

      源代碼瀏覽器,它保存了在源碼中定義的所有符號,能夠使用戶在源碼中快速方便的跳轉(zhuǎn);查找和替換功能,用戶可以在多個文件中,利用字符串通配符,進行字符串的搜索和替換;

      文件比較功能,可以使用戶比較路徑中的不同文本文件的內(nèi)容。

      ADS 的 CodeWarrior IDE 是基于 Metrowerks CodeWarrior IDE 4.2 版本的。它經(jīng)過適當(dāng)?shù)牟眉粢灾С?ADS 工具鏈。

      針對 ARM 的配置面板為用戶提供了在 CodeWarrior IDE 集成環(huán)境下配置各種 ARM 開發(fā)工具的能力,這樣用戶可以不用在命令控制臺下就能夠使用在 8.1.1 和將在 8.1.4 中介紹的各種命令。

      以 ARM 為目標(biāo)平臺的工程創(chuàng)建向?qū)В梢允褂脩粢源藶榛A(chǔ),快速創(chuàng)建 ARM 和 Thumb 工程。

      盡管大多數(shù)的 ARM 工具鏈已經(jīng)集成在 CodeWarrior IDE ,但是仍有許多功能在該集成環(huán)境中沒有實現(xiàn),這些功能大多數(shù)是和調(diào)試相關(guān)的,因為 ARM 的調(diào)試器沒有集成到 CodeWarrior IDE 中。

      由于 ARM 調(diào)試器 (AXD) 沒有集成在 CodeWarrior IDE 中,這就意味著,用戶不能在 CodeWarrior IDE 中進行斷點調(diào)試和查看變量。

      對于熟悉 CodeWarrior IDE 的用戶會發(fā)現(xiàn),有許多的功能已經(jīng)從 CodeWarrior IDE For ARM 中移走,比如快速應(yīng)用程序開發(fā)模板等。

      在 CodeWarrior IDE For ARM 中有很多的菜單或子菜單是不能使用的。下面介紹一下這些不能使用的選項。

      1. View 菜單下不能使用的菜單選項有:

      Processes , Expressions , Global Variable , Breakpoints , Registers 。

      2. Project 菜單不能使用的菜單選項:

      Precompile 子菜單。因為 ARM 編譯器不支持預(yù)編譯的頭文件。

      3. Debug 菜單

      該菜單中沒有一個子菜單是可以使用的。

      4. Browser 菜單中不能使用的菜單選項:

      New Property , New Method 和 New Event Set 。

      5. Help menu 中不能用于 ADS 的菜單選項有:

      CodeWarrior Help , Index , Search 和 Online Manuals 。

      有關(guān) CodeWarrior IDE 中一些常用菜單的使用,將在后面的舉例中具體說明的,在此,不在贅述。

      ADS 調(diào)試器

      調(diào)試器本身是一個軟件,用戶通過這個軟件使用 debug agent 可以對包含有調(diào)試信息的,正在運行的可執(zhí)行代碼進行比如變量的查看,斷點的控制等調(diào)試操作。

      ADS 中包含有 3 個調(diào)試器:

      AXD(ARM eXtended Debugger) : ARM 擴展調(diào)試器;

      armsd(ARM Symbolic Debugger) : ARM 符號調(diào)試器;

      與老版本兼容的 Windows 或 Unix 下的 ARM 調(diào)試工具, ADW/ADU(Application Debugger

      Windows/Unix) 。

      下面對在調(diào)試映像文件中所涉及到的一些術(shù)語做一個簡單的介紹。

      Debug target

      在軟件開發(fā)的初階段,可能還沒有具體的硬件設(shè)備。如果要測試所開發(fā)的軟件是否達到了預(yù)

      期的效果,這可以由軟件仿真來完成。即使調(diào)試器和要測試的軟件運行在同一臺 PC 上,也可以把目標(biāo)當(dāng)作一個獨立的硬件來看待。

      當(dāng)然,也可以搭建一個 PCB 板,這個板上可以包含一個或多個處理器,在這個板上可以運行和調(diào)試應(yīng)用軟件。

      只有當(dāng)通過硬件或者是軟件仿真所得到的結(jié)果達到了預(yù)期的效果,才算是完成了應(yīng)用程序的編寫工作。

      調(diào)試器能夠發(fā)送以下指令:

      1. 裝載映像文件到目標(biāo)內(nèi)存;

      2. 啟動或停止程序的執(zhí)行;

      3. 顯示內(nèi)存,寄存器或變量的值;

      4. 允許用戶改變存儲的變量值。

      Debug agent

      Debug agent 執(zhí)行調(diào)試器發(fā)出的命令動作,比如:設(shè)置斷點,從存儲器中讀數(shù)據(jù),把數(shù)據(jù)寫到存儲器等。

      Debug agent 既不是被調(diào)試的程序,也不是調(diào)試器。在 ARM 體系中,它有這幾種方式:

      Multi-ICE(Multi-processor in-circuit emulator) , ARMulator 和 Angel 。其中 Multi-ICE 是一個獨立的產(chǎn)品,是 ARM 公司自己的 JTAG 在線仿真器,不是由 ADS 提供的。

      AXD 可以在 Windows 和 UNIX 下,進行程序的調(diào)試。它為用 C , C++ ,和匯編語言編寫的源代碼提供了一個全面的 Windows 和 UNIX 環(huán)境。

      實用程序

      ADS 提供以下的實用工具來配合前面介紹的命令行開發(fā)工具的使用

      fromELF

      這是 ARM 映像文件轉(zhuǎn)換工具。該命令將 ELF 格式的文件作為輸入文件,將該格式轉(zhuǎn)換為各種輸出格式的文件,包括 plain binary(BIN 格式映像文件 ), Motorola 32-bit S-record format(Motorola 32位 S 格式映像文件 ), Intel Hex 32 format(Intel 32 位格式映像文件 ) ,和 Verilog-like hex format(Verilog 16 進制文件 ) 。 FromELF 命令也能夠為輸入映像文件產(chǎn)生文本信息,例如代碼和數(shù)據(jù)長度。

      armar

      ARM 庫函數(shù)生成器將一系列 ELF 格式的目標(biāo)文件以庫函數(shù)的形式集合在一起,用戶可以把一個庫傳遞給一個鏈接器以代替幾個 ELF 文件。

      Flash downloader

      用于把二進制映像文件下載到 ARM 開發(fā)板上的 Flash 存儲器的工具

      支持的軟件

      ADS 為用戶提供下面的軟件,使用戶可以在軟件仿真的環(huán)境下或者在基于 ARM 的硬件環(huán)境調(diào)試用戶應(yīng)用程序。

      ARMulator

      這是一個 ARM 指令集仿真器,集成在 ARM 的調(diào)試器 AXD 中,它提供對 ARM 處理器的指令集的仿真,為 ARM 和 Thumb 提供精確的模擬。用戶可以在硬件尚未做好的情況下,開發(fā)程序代碼。

      免費預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 午夜亚洲国产理论飘花中文 | 亚洲中文精品久久久久久直播 | 中文字幕日本久久2019 | 一区二区三区国产99 | 性深夜福利免费网站 | 中文字幕乱码视频网 |