一、 實驗目的
熟悉ARM SDT 2.5 開發(fā)環(huán)境,學會ARM 并行口仿真器的使用。使用SDT 編譯,
下載,調試,并跟蹤一段已有的程序。了解嵌入式開發(fā)的基本思想和過程。
二、 實驗內容
本次實驗使用ARM SDT 2.5 集成開發(fā)環(huán)境。新建一個基于操作系統(tǒng)的工程文件,并編
譯這個工程。學習ARM 并行口仿真器的使用和開發(fā)環(huán)境的設置。下載已經編譯好的文件到
嵌入式控制器中運行。學會在程序中設置斷點,觀察系統(tǒng)內存和變量,為調試應用程序打下
基礎。
三、 預備知識
C 語言的基礎知識、程序調試的基礎知識和方法
四、 實驗設備及工具(包括軟件調試工具)
硬件:ARM 嵌入式開發(fā)板、用于ARM7TDMI 的JTAG 仿真器、PC 機Pentumn100 以
上
軟件:PC 機操作系統(tǒng)win98、ARM SDT 2.51 集成開發(fā)環(huán)境、仿真器驅動程序
五、 實驗步驟
1、運行ARM SDT 2.5 集成開發(fā)環(huán)境(ARM Project Manager)。選擇File | New
菜單,在對話框中選擇Project,并在如圖1-1 所示,新建一個工程文件(work1.apj)
2、在新建的工程中,如圖1-2 所示,選中工程樹的“根部”。使用菜單Project | Tool
Configuration for work1.apj | <asm> = armasm | Set,對整個工程的匯編進行設置。
3、因為開發(fā)板上的嵌入式處理器ARM7TDMI 沒有浮點處理器,所以,如圖1-3 所示,
在彈出的對話框中設置Floating Point Processor 為none。保持其它的設置不變。
4、把\Inc、\Src、\Lib、\Startup、\Ucos-II 等目錄復制到work1 的目錄下。如圖1-4 所示,
選中工程樹中Debug 子樹的Sources 選項。通過菜單Project | Add Files to Sources,把
\SRC\main.c 和\STARTUP\目錄下的*.s 文件加入工程的源文件中。
5、選中工程樹中Debug 子樹的IncludedFiles 選項。通過菜單Project | Add Files to
IncludedFiles,把\work1 目錄下(包括子目錄)的所有*.h 文件都加入工程中。
6、選中工程樹中Debug 子樹的Libraries 選項。通過菜單Project | Add Files to Libraries,
把\Lib 目錄下的兩個*.alf 文件都加入工程中。這兩個文件是操作系統(tǒng)的庫文件,包含了所有
的API 函數(shù)庫。
7、選中工程樹的“根部”,通過菜單Project | Tool Configuration for work1.apj | asmlink |
Set,對整個工程的連接方式進行設置。
8、在彈出的對話框中,選中Entry Base 選項卡,如圖1-5 所示,設置連接的Read-Only
(只讀)和Read-Write(讀寫)地址。地址0xC000000 是開發(fā)板上SDRAM 的真實地址,
是由系統(tǒng)的硬件決定的;0xC200000 指的是系統(tǒng)可讀寫的內存的地址。也就是說,在
0xC000000—0xC1ffffff 之間是只讀區(qū)域,存放程序的代碼段,在0xC200000 開始是程序的
數(shù)據(jù)段。
9、選擇Linker Configuration 的ImageLayout 選項卡,設置程序的入口
模塊。指定在生成的代碼中,程序是從44binit.s 開始運行的。
10、選擇Project | Edit Project Templete 菜單,使用New 按鈕,為編譯器新建一個步驟。
取名為RomImage。
11、按照如圖1-8 的內容設置RomImage 的內容。使編譯器編譯的時候可以生成
system.bin 文件,這就是系統(tǒng)的啟動文件。
12、回到Project Templete Editor 對話框中,點擊Edit Detail 按鈕,在彈出的對話框中可
以重新命名模板。
13、選中工程樹中DebugRel 子樹,用Delete 鍵刪除。
提示:
在系統(tǒng)工程樹中Debug 子樹下面生成的是應用程序的調試版本,在生成的目標代
碼中,包含了系統(tǒng)的調試信息。Release 子樹是應用程序的發(fā)行版本,生成的代碼中不
包括調試信息,而且編譯器還針對速度和代碼的大小進行優(yōu)化。DebugRel 子樹是一個
折衷版本,通常用不到,所以,在這里刪除。
14、至此,工程文件設置完畢。因為設置過程比較繁瑣,可以保存此工程,下次新建項
目的時候復制即可。
提示:可以使用File | Save as Templete 菜單把當前工程的設置保存為模板,比如,
armRom.apj 文件。把此文件復制到ARM SDT 編譯器的\ARM251\Template 目錄下,以后創(chuàng)
建工程的時候,就可以直接選擇使用此模板了。模板文件也是一個工程文件(*.apj),但是,
模板文件中不包括工程中文件的信息,只有編譯器環(huán)境的設置。
15、選中工程樹中Debug 子樹,通過Project | Build work1.apj “Debug”菜單(或者工具
欄中的相應按鈕)編譯整個工程。
16、把ARM 的JTAG 仿真器連接到PC 機的并行口和開發(fā)板上,打開開發(fā)板的電源,
運行仿真器的驅動程序armJTAG.exe。
17、使用Project | Debug work1.apj “Debug”菜單(或者工具欄中的相應按鈕)啟動ARM
Debugger 軟件調試程序。
18、在ARM Debugger 中,通過Options | Configure Debugger 菜單設置仿真器。如圖1-9
所示,在彈出的對話框中,設置Target Environment 為Remote_A
19、單擊Configure 按鈕,按照如圖1-10 所示,設置仿真器,添加本機的IP 地址。
20、設置完成以后,ARM Debbuger 開始通過仿真器裝載程序。如圖1-11 所示。
圖 1-11
21、裝載完畢以后,通過Execute | Go 菜單(或者工具欄中的相應按鈕)運行程序。
22、程序運行的時候,可以使用Execute | Stop 菜單(或者工具欄中的相應按鈕)暫停
運行程序。如圖1-12 所示,在Execute 窗口中將顯示出程序暫停的位置。
圖 1-12
23、通過Execute | Step 菜單(或者工具欄中的相應按鈕)可以單步運行程序。也可以
使用Step In、Step Out 菜單命令進入或者跳出函數(shù)的調用。
24、在程序停止運行的時候,選擇View | Source Files 菜單命令,可以打開如圖1-13 所示的源程序列表窗口,雙擊列表中的文件名可以查看相應的源文件。
25、在源文件列表中打開Main.c 文件。選擇源文件中的某一行,右擊鼠標,如圖1-14
所示,用Toggle Breakpoint 快捷菜單命令可以設置斷點,使程序運行到這里停下來。
26、使用在View 菜單下的Registers、Variables 和Memory 命令可以查看工作寄存器或
者內存變量。讀者可以逐一的嘗試,為以后調試程序打下基礎。
評論