ARM裸機程序在Linux平臺上的開發步驟
1、編輯源文件(Source Insight、Notepade++)
2、交叉編譯(arm-linux-gcc)
3、燒寫程序(Open JTAG、oflash)
點亮LED需要做的
1、配置LED對應管腳爲輸出
2、將該管教設置爲低電平
彙編文件編寫如下
@***************************************************
.text
.global _start
_start:
LDR R0,=0x56000050 @R0設爲GPFCON寄存器
@用於配置GPIO端口輸出或輸入
MOV R1,#0x00000100
STR R1,[R0] @設置GPF4爲輸出,位[9:8]=01
LDR R0,=0x56000054 @R0設爲GPFDAT寄存器
@用於配置端口的輸出值
MOV R1,#0x00000000 @位4爲0則燈熄滅
STR R1,[R0]
MAIN_LOOP:
B MAIN_LOOP @死循環
編寫Makefile文件
led_on.bin : LED.S
arm-linux-gcc -g -c -o led_on.o LED.S ;由.S文件生成可執行文件led_on.o
;同時生成可調式信息
arm-linux-ld -Ttext 0x0000000 -g led_on.o -o led_on_elf
;設置代碼段的起始位置爲0x0000000
;將led_on.o連接成可執行文件led_on_elf
arm-linux-objcopy -O binary -S led_on_elf led_on.bin
;複製目標文件led_on_elf的內容至led_on.bin中
;並完成文件格式的轉換
clean:
rm -f led_on.bin led_on_elf *.o
在Linux命令行中輸入make實現編譯,並生成了led_on.bin文件
將led_on.bin通過網絡服務上傳到windows
連接open JTAG在目標機和PC端
在Windows下打開CMD,進入led_on.bin所在目錄,執行 oflash led_on.bin,燒入目標機的Nand FLash
從Nand Flash啓動目標機,驗證程序
JZ2440片內帶有一個SRAM,外接Nand Flash和Nor Flash,兩種啓動方式的區別如下
1、從Nand Flash啓動
—— 先將Nand Flash的前4k內容複製到片內SDRAM的0地址處
—— CPU從SDRAM的0地址處開始執行
2、從Nor Flash啓動
CPU直接從Nor Flash的0地址處開始取指執行