Windows環境下能夠使用Eclipse IDE for C/C++ Developers來搭建ARM開發環境
本文地址:http://blog.csdn.net/u011833609/article/details/30290655
安裝過程例如以下:1. 安裝Java SE
網址:http://www.oracle.com/technetwork/java/javase/downloads/jre-7u3-download-1501631.html
下載這個文件:jre-7u3-windows-i586.exe
2. 安裝Eclipse IDE for C/C++ Developers
網址:http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/heliossr2
下載這個文件:eclipse-cpp-helios-SR2-win32.zip 下載后解壓到對應文件夾,不需安裝,發送個快捷方式到桌面就可以。
3. 安裝Eclipse下開發ARM的插件
網址:http://sourceforge.net/projects/gnuarmeclipse/files/Current Releases/0.5.3/
下載這個文件:org.eclipse.cdt.cross.arm.gnu_0.5.3.201007311800.zip
下載后解壓,把plugins/org.eclipse.cdt.cross.arm.gnu_0.5.3.201007311800.jar文件放入安裝Eclipse文件夾下的plugins文件夾里。
4. 安裝arm-none-eabi-gcc編譯器
網址:http://www.yagarto.de/download/yagarto/yagarto-bu-2.21_gcc-4.6.2-c-c++_nl-1.19.0_gdb-7.3.1_eabi_20111119.html
請不要安裝在路徑有空格的文件夾!
下載並安裝這個文件:yagarto-bu-2.21_gcc-4.6.2-c-c++_nl-1.19.0_gdb-7.3.1_eabi_20111119.exe
網址:http://www.yagarto.de/download/yagarto/yagarto-tools-20100703-setup.exe
下載並安裝這個文件:yagarto-tools-20100703-setup.exe
原文地址:http://blog.sina.com.cn/s/blog_6c234ba901012zqm.html
用法例如以下:
1.指定一個project存放文件夾
Eclipse for ARM 是一個標准的窗體應用程序。能夠單擊程序button開始執行。打開后必須先指定一個project存放路徑,如圖5-11所看到的。


2.創建一個project
進入主界面后。選擇"File→New→C Project"命令,Eclipse將打開一個標准對話框。輸入希望新建project的名字並單擊"Finish"button就可以創建一個新的project,建議對每一個新建project使用獨立的目錄。
3.新建一個MakeFile文件
在創建一個新的project后。選擇"File→New→Other"命令。在彈出的對話框中的General下單擊file。然后單擊next;然后選擇所要指定的project后,在文件名稱文本框中輸入文件名稱MakeFile,單擊"Finish"button。
4.新建一個腳本文件
選擇"File →New→Other"命令,在彈出的對話框中的General下單擊file。然后單擊next;然后選擇所要指定的project后,在文件名稱文本框中輸入文件名稱s5pc100.init。單擊"Finish"button。
5.新建一個連接腳本文件
選擇"File→New→Other"命令,在彈出的對話框中的General下單擊file 。然后單擊next。然后選擇所要指定的project后,在文件名稱文本框中輸入文件名稱map.lds,單擊"Finish"button。
6.新建一個匯編源文件
選擇"File →New→Other"命令,在彈出的對話框中的General下單擊file ,然后單擊next;然后選擇所要指定的project后。在文件名稱文本框中輸入文件名稱start.s,單擊"Finish"button。
5.4 編譯project
(1)在匯編源文件(start.s)中輸入匯編代碼:
.equ GPG3CON, 0xE03001C0
.equ GPG3DAT, 0xE03001C4
.globl _start
_start:
LDR R0,=GPG3CON
LDR R1,=0X10
STR R1,[R0] @//寫控制寄存器,IO引腳使能為輸出
LOOP:
LDR R0,=GPG3DAT
MOV R1,#0X02 @//點亮led1
STR R1,[R0]
LDR R2,=0XFFFFF @//延時
LOOP1:
SUB R2,R2,#1
CMP R2,#0
BNE LOOP1
MOV R1,#0X0 @//熄滅led1
STR R1,[R0]
LDR R2,=0XFFFFF @//延時
LOOP2:
SUB R2,R2,#1
CMP R2,#0
BNE LOOP2
B LOOP
.end
(2)在map.lds中輸入例如以下信息:
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
/*OUTPUT_FORMAT("elf32-arm", "elf32-arm", "elf32-arm")*/
OUTPUT_ARCH(arm)
ENTRY(_start)
SECTIONS
{
. = 0x34000;
. = ALIGN(4);
.text :
{
start.o(.text)
*(.text)
}
. = ALIGN(4);
.rodata :
{ *(.rodata) }
. = ALIGN(4);
.data :
{ *(.data) }
. = ALIGN(4);
.bss :
{ *(.bss) }
}
(3)編寫MakeFile文件編譯規則。在MakeFile中輸入例如以下信息:
all:start.s
arm-none-eabi-gcc-4.6.2 -O0 -g -c -o start.o start.s
arm-none-eabi-ld start.o -Tmap.lds -o start.elf
arm-none-eabi-objcopy -O binary -S start.elf start.bin
arm-none-eabi-objdump -D start.elf >start.dis
(4)在s5pc100.init文件里輸入例如以下信息:
target remote 127.0.0.1:3333
monitor halt
monitor arm mcr 15 0 1 0 0 0
monitor step 0
(5)保存,編譯Project→Bulit All。
5.5 調試project
5.5.1 配置FS-JTAG 調試工具
如圖5-12所看到的,在Target選項中選擇s5pc100。然后在WorkDir 選項中選擇自己的project文件夾(D:\program\led)。這里是筆者的當前環境,請讀者依照自己的實際環境進行填寫。


上述工作做完之后,單擊Connectbutton后,該button會變為Disconnect,如圖5-12所看到的,即表示已經連接目標板。
最后單擊Telnetbutton(這一步能夠跳過),將會彈出如圖5-13所看到的,界面即表示已經連上目標板。


5.5.2 配置調試工具(1)
在Eclips的菜單中選擇"Run→Debug Configurations"彈出如圖5-14對話框。

選擇Zyin Embedded debug(Native)選項,然后單擊鼠標右鍵,在彈出的快捷菜單中選擇"New"命令;在Main選項卡中的Project框中。單擊"Browse"button選擇ledproject。在C/C++ Application 中單擊"Browse"button找到project文件夾下的led.elf文件,如圖5-15所看到的。
在Debugger選項卡中的Main子選項卡中的GDB debugger的框中單擊"Browse"button選擇前面安裝的arm-none-eabi-gdb.exe(這里選擇自己的安裝文件夾),在GDB Command file中選擇自己project文件夾下的s5pc100.init文件,如圖5-16所看到的。


在Command選項卡中輸入例如以下內容。如圖5-17所看到的。
load
break _start
c


5.5.2 配置調試工具(2)


程序會在斷點處停下。然后使用單步和全速等工具進行調試執行程序,單擊全速執行,會出現LED1閃亮。
從圖中能夠看出一個大概的調試界面。如圖5-19所看到的的button是和調試有關的,有單步,step over和step in方式。還有Eclipse自帶的掛起、中斷連接功能。以下簡介一下各個窗體的用途。

如圖5-20所看到的窗體是用來查看函數變量的,能夠看到當前i,j的值。
如圖5-21所看到的窗體是用來查看ARM寄存器的。從r0~r12通用寄存器的值能夠被非常清楚的觀察到,而且還可觀察到 CPSR當前狀態寄存器的值。
5.6 本章小結
本章主要介紹了怎樣編寫GNU-ARM匯編風格的程序,以及怎樣基於S5PC100在Eclipse下進行調試,而且介紹了FS-JTAG的具體使用方法。本書后面章節的大部分實驗都是基於這個環境的。工欲善其事。必先利其器,所以必須熟練掌握環境的使用。
原文地址:http://book.51cto.com/art/201210/359534.htm
