准备分析
堆栈指针设置到了0xD003_7D80处。
资源工具
同《
S5PV210的LED应用(一)》
着手写程序
@******************************************************************************
@ File:start.S
@ 功能:通过它转入C程序
@******************************************************************************
.text
.global _start
_start:
ldr sp, =0xD0037D80 @ 设置堆栈,以便调用c函数
bl main @ 调用C程序中的main函数
halt_loop:
b halt_loop
@******************************************************************************
/******************************************************************************
/* File: led.c
/* 点亮LED1
/******************************************************************************/
#define GPJ2CON (*(volatile unsigned long *) 0xE0200280)
#define GPJ2DAT (*(volatile unsigned long *) 0xE0200284)
int main()
{
GPJ2CON = 0x00000001; //设置GPJ2_O为输出
GPJ2DAT = 0; // LED1 on
while(1);
return 0;
}
Makefile:
led_sp.bin: start.o led.o
arm-linux-ld -Ttext 0x0 -o led_sp.elf $^
arm-linux-objcopy -O binary led_sp.elf led_sp.bin
arm-linux-objdump -D led_sp.elf > led_sp_elf.dis
gcc mkv210_image.c -o mkv210
./mkv210 led_sp.bin 210.bin
%.o : %.S
arm-linux-gcc -o $@ $< -c
%.o : %.c
arm-linux-gcc -o $@ $< -c
clean:
rm *.o *.elf *.bin *.dis mkv210 -f
下载运行
同《
S5PV210的LED应用(一)》
运行调试
程序简单,运行正常。
遗留问题
1.了解到iROM的程序已经将看门狗初始化好,就先不自己实现了。日后再说看门狗。