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地址处开始取指执行