Makefile文件
led.bin: start.o arm-linux-ld -Ttext 0x0 $^ -o led.elf //led.elf就是操作系统下的可执行程序,但是不能烧写到逻裸机 arm-linux-objcopy -O binary led.elf led.bin //objcopy是用来生成可烧录的镜像的 arm-linux-objdump -D led.elf > led_elf.dis //objdump是用来反编译的,把编译好的可执行程序转换成汇编程序
gcc mkv210_image.c -o mkx210 //在主机中执行这个程序是用来给led.bin添加校验和,从而获得SD卡的镜像
./mkx210 led.bin 210.bin //执行这个编译后的代码,生成SD卡镜像
%.o : %.S //把所有的.S文件编译生成.o文件
arm-linux-gcc $< -o $@ -c //-c代表只编译不链接
%.o : %.c //把所有的.c文件编译生成.o文件
arm-linux-gcc $< -o $@ -c //-c代表只编译不链接
clean:
rm *.o *.elf *.bin *.dis mkx210 -f //清除所有的.o .elf .bin .dis文件
特殊符号分析
- 自动变量:
$@: 当前规则的目标文件
$< :第一个依赖文件
$^ :去除重复的所有依赖文件
- 特殊符号
-D:表示反汇编
-o:命名为
-c:只编译不链接
>:由左边得到右边,也可类似记忆为命名为