- 环境搭建
由于我不喜欢使用虚拟机,双系统无法同时烧程序。最近才折腾好Windows10下编译和下载程序,使用的是韦东山做的easy open jtag,资料十分齐全,之前使用jlink搭建环境碰到了一些坑,还是使用一些现成 的环境好。
- 点亮LED
我使用的IDE是eclipse,但是无法调试,这个没有仔细设置
start.S
// 启动代码 .global _start .global delay _start: // 把外设的基地址告诉CPU ldr r0, =0x70000000 orr r0, r0, #0x13 mcr p15,0,r0,c15,c2,4 // 关看门狗 ldr r0, =1024*4 mov r1, #0 str r1, [r0] // 设置栈 ldr sp, =0X0C002000 // 调用C函数点灯 bl main halt_loop: b halt_loop
led.c
#define gpkcon0 (*(volatile unsigned long *)0x7F008800) #define gpkdat (*(volatile unsigned long *)0x7F008808) int main() { gpkcon0 = 0x11110000; gpkdat = 0x00; return 0; }
Makefile
all : led.bin led.bin : start.o led.o arm-elf-ld -Ttext 0 -o led.elf start.o led.o arm-elf-objcopy -O binary led.elf led.bin start.o : start.S arm-elf-gcc -o start.o start.S -c led.o : led.c arm-elf-gcc -o led.o led.c -c clean: rm *.o led.elf led.bin led.dis