Ads 1 2
Download
1 / 43

ADS 1.2 整合開發環境的使用 - PowerPoint PPT Presentation


  • 134 Views
  • Uploaded on

ADS 1.2 整合開發環境的使用. 大綱. 1 使用 ADS 創建工程 1.1 建立一個工程 1.2 編譯和鏈結工程 1.3 ASM 的參考程式 2 用 AXD 進行程式除錯 2.1 安裝並執行 ARM-JTAG 模擬軟體 ARM9 2.2 為 ARM-JTAG 模擬軟體正確配置 AXD DEBUGGER 2.3 使用 SUPERJTAG 在 ADS1.2 環境下進行模擬除錯 . ADS 1.2 整合開發環境的使用.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' ADS 1.2 整合開發環境的使用' - sherri


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Ads 1 2

ADS 1.2整合開發環境的使用


大綱

  • 1 使用ADS創建工程

    • 1.1 建立一個工程

    • 1.2 編譯和鏈結工程

    • 1.3 ASM的參考程式

  • 2 用AXD進行程式除錯

    • 2.1 安裝並執行ARM-JTAG模擬軟體ARM9

    • 2.2 為ARM-JTAG模擬軟體正確配置AXD DEBUGGER

    • 2.3 使用SUPERJTAG 在ADS1.2 環境下進行模擬除錯


Ads 1 21
ADS 1.2整合開發環境的使用

ARM ADS全名稱為ARM Developer Suite。是ARM公司推出的新一代ARM整合開發工具。現在ADS的最新版本是1.2,它取代了早期的ADS1.1和ADS1.0。它除了可以安裝在Windows NT4,Windows 2000,Windows 98和Windows 95作業系統下,還支援Windows XP和Windows Me作業系統。


1 ads
1 使用ADS創建工程

  • 本節透過一個具體實例,為讀者介紹如何使用該整合開發環境,利用CodeWarrior提供的建立工程的範本建立自己的工程,並學會如何進行編譯鏈結,產生成包含除錯資訊的映射檔和可以直接燒寫FLASH中的.bin格式的二進位可執行檔。


1.1建立一個工程

  • 工程將所有的源碼檔組織在一起,並能夠決定最終所生成檔存放的路徑,輸出的格式等。在CodeWarrior中新建一個工程的方法有兩種,可以在工具欄中點擊“New”按鈕,也可以在“File”功能表中選擇“New…”功能表。會打開一個如圖1.1所示的對話方塊。


1.1建立一個工程

圖1.1 新建工程對話方塊


1.1建立一個工程

  • 在這個對話方塊中為用戶提供了7種可選擇的工程類型。

    • ARM Executabl Image:用於由ARM指令的程式生成一個ELF格式的可執行映射檔。

    • ARM Object Library:用於由ARM指令的程式生成一個armar格式的資料庫。

    • Empty Project:用於創建一個不包含任何資料庫或原始檔案的工程。

    • Makefile Importer Wizard:用於將Visual C的nmake或GNU make檔案轉入CodeWarrior IDE 工程檔案。

    • Thumb ARM Executable Image:用於由ARM指令和Thumb指令的混和程式生成一個可執行的ELF格式的映射檔。

    • Thumb Executable image:用於由Thumb指令創建一個可執行的ELF格式的映射檔。

    • Thumb Object Library:用於由Thumb指令的程式生成一個armar格式的資料庫。


1.1建立一個工程

在這裏選擇ARM Executable Image,在“Project name:”中輸入工程檔案名稱,本例為“ledcircle”,點選“Location:”欄位的“Set…”按鈕,瀏覽選擇想要將該工程保存的路徑,將這些設置好後,點選 “確定”,即可建立一個新的名為ledcircle的工程。

這個時候會出現ASM.mcp的窗口,如圖1.2所示,有三個標籤頁,分別為files, link order, target預設的是顯示第一個標籤頁files。透過在該標籤頁點選滑鼠右鍵,選中“Add Files…”可以把要用到的源程式新增到工程中。


1.1建立一個工程

圖1.2 新建工程打開視窗


1.1建立一個工程

  • 對於本例,將已準備好的原始檔案(.s和.c檔)新增進去,新增過程如下圖(圖1.3):

圖 1.3

點選“開啟”按鈕確定。


1.1建立一個工程

在這裏還有一個細節,希望讀者注意。在建立好一個工程時,預設的target是DebugRel,還有另外兩個可用的target,分別為Realse和Debug,這三個target的含義分別為:

  • DebugRel:使用該目標,在產生目標的時候,會為每一個原始檔案生成除錯資訊。

  • Debug: 使用該目標為每一個原始檔案生成最完全的除錯資訊。

  • Release: 使用該目標不會生成任何除錯資訊。

  • 在本例中,使用預設的DebugRel目標。

  • 現在已經新建了兩個原始檔案,要把這兩個原始檔案新增到工程中去。


1.1建立一個工程

  • 為工程新增程式常用的方法有兩種,可以使用如圖1.3所示方法,也可以在“Project”功能表選項中,選擇“Add Files…”,這兩種方法都會打開檔案瀏覽對話框,用戶可以把已經存在的檔案新增到工程中來。當選好要新增的檔案時,會出現一個對話方塊,如圖1.4所示,詢問用戶把檔案新增到何類目標中,在這裏,我們選擇DebugRel目標,把剛才新建的兩個檔案新增到工程中來。


1.1建立一個工程

圖1.4 選擇新增檔案到指定目標

  • 到目前為止,一個完整的工程已經建立。

  • 下面對該工程進行編譯和鏈結工作。


1.2 編譯和鏈結工程

  • 在進行編譯和鏈結前,首先講述一下如何進行生成目標的配置。

  • 點選Edit功能表,選擇“DebugRel Settings…”(注意,這個選項會因用戶選擇的目標不同而有所不同),出現如圖1.5所示的對話方塊。

  • 這個對話方塊中的設置很多,在這裏只介紹一些較為常用的設置選項,讀者若對其他未涉及到的選項感興趣,可以查看相對應的說明檔。


1.2 編譯和鏈結工程

  • arget設置選項

    Target Name欄位顯示了當前的目標設置。

    Linker選項供用戶選擇要使用的鏈結器。在這裏預設選擇的是ARM Linker,使用該鏈結器,將使用armlink鏈結編譯和組譯生成的工程中的相對應檔案。


1.2 編譯和鏈結工程

  • 圖1.5 DebugRel設置對話方塊


1.2 編譯和鏈結工程

這個設置中還有兩個選項,None是不用任何鏈結器,如果選擇此項,則工程中的所有檔案都不會被編譯器或組譯器處理。ARM Librarian表示將編譯或組譯得到的目標檔轉換為ARM LIB檔案。對於本例,使用預設的鏈結器ARM Linker。

Pre-linker:目前CodeWarrior IDE不支援該選項。

Post-Linker:選擇在鏈結完成後,還要對輸出檔進行的操作。因為在本例中,希望生成一個可以燒寫到Flash中去的二進位碼,所以在這裏選擇ARM fromELF,表示在鏈結生成映射檔後,再呼叫FromELF命令將含有除錯資訊的ELF格式的映射檔轉換成其他格式的檔案。


1.2 編譯和鏈結工程

  • Language Settings

    因為本例中包含有組譯原始程式,所以要用到組譯器。首先看ARM組譯器,預設的ARM體系結構是ARM7TDMI,不符合目標板S3C2440A,需設定為ARM920T。位元元組順序預設就是小端模式。其他設置,就用預設值即可。

    還有一個需要注意的就是ARM C編譯器,它實際就是使用了命令行工具arm cc,使用預設的設置就可以了。

    細心的讀者可能會注意到,在設置框的右下角,當對某項設置進行了修改,該行中的某個選項就會發生相對應的更動,由於有了CodeWarrior,開發人員可以不用再去查看繁複的命令行選項,只要在介面中選取或取消某個選項,軟體就會自動生成相對應的程式,為不習慣在DOS下鍵入命令行的用戶提供了非常方便的方式。


1.2 編譯和鏈結工程

  • Linker設置

    滑鼠選中ARM Linker,出現如圖1.6所示對話方塊。這裏詳細介紹該對話方塊的主要的標籤頁選項,因為這些選項對最終生成的檔案有著直接的影響。

    在標籤頁Output中,Linktype中提供了三種鏈結方式。Partial方式表示鏈結器只進行部分鏈結,經過部分鏈結生成的目標檔,可以作為以後進一步鏈結時的輸入檔案。Simple方式是預設的鏈結方式,也是使用最為頻繁的鏈結方式,它鏈結生成簡單的ELF格式的目標檔案,使用的是鏈結器選項中指定的位元元址映射方式。Scat tered方式使得鏈結器要依據scatter格式檔中指定的位址映射,生成複雜的ELF格式的映射檔案。這個選項一般情況下,使用不太多。


1.2 編譯和鏈結工程

圖1.6 命令行工具選項設置


1.2 編譯和鏈結工程

圖1.7 鏈結器設置1


1.2 編譯和鏈結工程

圖1.8 設置映射檔的入口點


1.2 編譯和鏈結工程

因為所舉的例子比較簡單,選擇Simple方式就可以了。在選中Simple方式後,就會出現Simple image。

RO Base:這個欄位設置包含有RO段的載入區域和執行區域為同一個位址。預設是0x8000。這裏用戶要依據自己硬體的實際SDRAM的位址空間來修改這個位址,保證在這裏填寫的位址,是程式執行時,SDRAM位址空間所能覆蓋的位址。針對本書所介紹的目標板,建議改為0x30100000。

RW Base:這個欄位設置了包含RW和ZI輸出段的執行域位址。如果選中split選項,鏈結器生成的映射檔將包含兩個載入域和兩個執行域,此時,在RW Base中所輸入的位址為包含RW和ZI輸出段的域設置了載入域和執行域位址。

Ropi:選中這個設置將告訴鏈結器使包含有RO輸出段的執行位置無關。使用這個選項,鏈結器將保證下麵的操作:

檢查各段之間的重置位址是否有效。

確保任何由armlink自身生成的程式是和唯讀位置無關的。Rwpi:選中該選項將會告訴鏈結器使包含RW和ZI輸出段的執行域位置無關。如果這個選項沒有被選中,區域就會標識為絕對。每一個可寫的輸入段必須是讀寫位置無關的。


1.2 編譯和鏈結工程

  • 如果這個選項被選中,鏈結器將進行下麵的操作:

    檢查可讀/可寫屬性的執行區域的輸入段是否設置了位置無關屬性。

    檢查在各段之間的位址是否有效。

    在Region$$Table和ZISection$$Table中新增基於靜態記憶體sb的選項。該選項要求RW Base有值,如果沒有給它指定數值的話,預設為0值。

    Split Image:選擇這個選項把包含RO和RW的輸出段的載入區域分成2個載入區域:一個是包含RO輸出段的區域,一個是包含RW輸出段的區域。

    這個選項要求RW Base有值,如果沒有給RW Base選項設置,則預設是-RWBase 0。

    Relocatable:選擇這個選項保留了映射檔的重置位址偏移量。這些偏移量為程式載入器提供了有用的資訊。

    在Options選項中,需要讀者引起注意的是Image entry point欄位。它指定映射檔的初始進入點位址值,當映射檔被載入程式載入時,載入程式會跳轉到該位址處執行。如果需要,用戶可以在這個欄位中輸入下面格式的進入點:

    進入點位址:這是一個數值,例如-entry 0x0

    符號:該選項指定映射檔的進入點為該符號所代表的位址處,比如-entryint-handler


1.2 編譯和鏈結工程

如果該符號有多處定義存在,armlink將產生出錯資訊。

offset+object(section):該選項指定在某個目標檔的段的內部的某個偏移量處為映射檔的進入位址,例如:

-entry 8+startup(startupseg)

在此處指定的進入點用於設置ELF映射檔的進入位址。

需要注意的是,這裏不可以用符號main作為進入點位址符號,否則將會出現類似:“Image dose not have an entry point (Not specified or not set due to multiple choice)”的錯誤資訊。

在Layout選項中,需要的設置如圖10-1.7,設置asm.O目標檔中的Init為整個文件的進入點。

關於ARM Linker的設置還有很多,對於想進一步深入瞭解的讀者,可以查看幫助檔,都有很詳細的介紹。

在Linker下還有一個ARM from ELF,如圖1.9所示。

From ELF就是在10-1節中介紹的一個實用工具,它實現將鏈結器,編譯器或組譯器的輸出程式進行格式轉換的功能。例如,將ELF格式的可執行映射檔轉換成可以燒寫到ROM的二進位格式檔案;對輸出檔案進行反組譯,從而提取出有關目標檔案的大小,符號和字串表以及重置位址等資訊。


1.2 編譯和鏈結工程

只有在Target設置中選擇了Post-linker,才可以使用該選項。

在Output format下拉選單中,為用戶提供了多種可以轉換的目標格式,本例選擇Plain binary,這是一個二進位格式的可執行檔,可以被燒寫進目標板的Flash中。

在Output file name欄位輸入期望生成的輸出檔按存放的路徑,或通過點Choose按鈕從檔案對話方塊中選擇輸出檔案。如果在這個欄位不輸入路徑名,則生成的二進位檔案會存放在工程所在的目錄下。

完成這些相關的設置後,以後在對工程進行make的時候,CodeWarrior IDE 就會在鏈結完成後使用from ELF 來處理生成的映射檔。

對於本例的工程而言,到此,就完成了make之前的設置工作了。


1.2 編譯和鏈結工程

圖1.9 ARM from ELF可選項

點選CodeWarrior IDE的功能表Project下的make功能表,就可以對工程進行編譯和鏈結了。


1.2 編譯和鏈結工程

  • 整個編譯鏈結過程如圖1.10所示:


1.2 編譯和鏈結工程

  • 在工程DMA2440XP_Pwm所在的目錄下,會生成一個名為:工程名_data目錄,在本例中就是DMA2440XP_Pwm_data目錄,在這個目錄下不同類別的目標對應不同的目錄。在本例中由於我們使用的是DebugRel目標,所以生成的最終檔案都應該在該目錄下。進入到DebugRel目錄中去,讀者會看到make後生成的映射檔案和二進位檔案,映射檔案用於除錯,二進位檔案可以下載到SDRAM中執行。


1 3 asm
1.3 ASM的參考程式

底下是ASM.s的程式。

;組譯指令實驗

;定義埠暫存器預定義

rGPFCON EQU 0x56000050

rGPFDAT EQU 0x56000054

rGPFUP EQU 0x56000058

AREA Init,CODE,READONLY ;該虛擬指令定義了一個代碼段,段名為Init,屬

性唯讀

ENTRY ;程式的入口點標識

ResetEntry

;下面這三條語句,主要是用來設置I/O口GPE7為輸出屬性

ldr r0,=rGPFCON ;將暫存器rPCONE的位址存放到暫存器r0中

ldr r1,=0x4000

str r1,[r0] ;將r1中的資料存放到暫存器rPCONE中

下面這三句,主要是禁止GPE埠的上升電阻

ldr r0,=rGPFUP


1 3 asm1
1.3 ASM的參考程式

  • ldr r1,=0xffff

  • str r1,[r0]

  • ldr r2,=rGPFDAT ;將資料埠E的資料暫存器的位址附給暫存器r2

  • ledloop

  • ldr r1,=0x1ffff

  • str r1,[r2] ;使GPE7輸出高電壓,D2燈會滅

  • bl delay ;使用延遲副程式

  • ldr r1,=0x0

  • str r1,[r2] ;使GPE7輸出低電壓,D2燈亮

  • bl delay ;使用延遲

  • b ledloop ;不斷的迴圈,D2將不停的閃爍

  • ;下面是延遲副程式


1 3 asm2
1.3 ASM的參考程式

  • delay

  • ldr r3,=0x1ffff ;設置延遲的時間

  • delay1

  • sub r3,r3,#1 ;r3=r3-1

  • cmp r3,#0x0 ;將r3的值與0相比較

  • bne delay1 ;比較的結果不為0(r3不為0),繼續調用delay1,否則執

  • 行下一條語句

  • mov pc,lr ;返回

  • END ;程式結束符


目錄

  • 1 使用ADS創建工程

    • 1.1 建立一個工程

    • 1.2 編譯和鏈結工程

    • 1.3 ASM的參考程式

  • 2 用AXD進行程式除錯

    • 2.1 安裝並執行ARM-JTAG模擬軟體ARM9

    • 2.2 為ARM-JTAG模擬軟體正確配置AXD DEBUGGER

    • 2.3 使用SUPERJTAG 在ADS1.2 環境下進行模擬除錯


2 axd
2 用AXD進行程式除錯

  • 2.1安裝並執行ARM-JTAG模擬軟體ARM9

  • 首先要正確連接目標板,20PIN排線連接到SDT座上。

  • 將光碟中的ARM9 DEBUG檔案夾複製到硬碟上任意目錄下,執行其中的檔案—“安裝驅動.exe”,就會彈出一個介面視窗,點選上面的“INSTALL”按鍵直到出現提示資訊“Service is partially installed.”,然後再點選下麵的“INSTALL”按鍵,出現下麵的資訊(圖2.1),說明驅動安裝成功:


2 1 arm jtag arm9
2.1安裝並執行ARM-JTAG模擬軟體ARM9

圖2.1


2 1 arm jtag arm91
2.1安裝並執行ARM-JTAG模擬軟體ARM9

  • 現在執行ARM9-JTAG調試代理軟體——arm9.exe,注意如果20Pin排線連接到SUPERJTAG板的SDT介面(JP4、JP5)上,需要選擇下圖中的Sdt;如20Pin排線連接到SUPERJTAG板的Wiggler介面(JP1、JP2)上,需要選擇下圖中的Wiggler,如下圖所示:

圖2.2


2 1 arm jtag arm92
2.1安裝並執行ARM-JTAG模擬軟體ARM9

  • 如果安裝成功、配置正確而且硬體連接良好,將會檢測到ARM920T,如(圖2.2)中左上角的紅色圓圈。


2 2 arm jtag axd debugger
2.2 為ARM-JTAG模擬軟體正確配置AXD DEBUGGER

  • 執行ADS1.2軟體中的調試軟體——AXD Debugger,如圖10-2.3的介面中,點選功能表options/Configure Target,在彈出的介面視窗中選擇Remote_A.dll,然後點選按鍵Configure:


2 2 arm jtag axd debugger1
2.2 為ARM-JTAG模擬軟體正確配置AXD DEBUGGER

圖2.3


2 2 arm jtag axd debugger2
2.2 為ARM-JTAG模擬軟體正確配置AXD DEBUGGER

  • 在彈出的視窗中,點選“Select”按鍵,選擇“ARM Ethernet driver”選項,然後點選OK按鍵,如圖2.4所示:

圖2.4


2 2 arm jtag axd debugger3
2.2 為ARM-JTAG模擬軟體正確配置AXD DEBUGGER

  • 再點選“Configure”按鍵,在彈出的視窗中輸入數位“127.0.0.1”並確認,如圖2.5所示,就是設置完畢:

圖2.5


2 3 superjtag ads1 2
2.3 使用SUPERJTAG 在ADS1.2 環境下進行模擬除錯

  • 關閉並重新啟動AXD Debugger,點選功能表File/Load Image,找到您想除錯的目標程式(*.axf格式),打開它就會啟動目標程式下載,這時會出現進度條,下載完畢就可以單步或者全速除錯了,除錯過程中可以看CPU各暫存器,也可以設置中斷點,可以單步、全速等除錯功能。


2 3 superjtag ads1 21
2.3 使用SUPERJTAG 在ADS1.2 環境下進行模擬除錯

圖2.6


ad