1.在学习朱老师的课程时,对第一个Led.bin的Makefile的一点浅显的理解,担心以后忘记,Mark一下
2.注释后跟的数字是makefile执行的顺序
#1. 要构造led.bin,要依赖于start.o,没有start.o时,就要在下面规则中找
led.bin: start.o
#4. $^是指构造目标文件所有的依赖文件,这里指start.o
arm-linux-ld -Ttext 0x0 -o led.elf $^
arm-linux-objcopy -O binary led.elf led.bin
arm-linux-objdump -D led.elf > led_elf.dis
gcc mkv210_image.c -o mkx210
./mkx210 led.bin 210.bin
#2. %.o的意思是指xxx.o需要依赖xxx.S,要想构造xxx.o文件,必须一个和他同名的xxx.S文件
## 这里是指要先构造start.o,必须有一个start.s,下面.c是一样的道理,不过只
## 要start.S文件存在,能构造出start.o,就会转去执行构造第一个目标
%.o : %.S
#3. $@是指目标的名字,此处指start.o
## $<是指第一个依赖的名字,此处指start.S
arm-linux-gcc -o $@ $< -c
%.o : %.c
arm-linux-gcc -o $@ $< -c
clean:
rm *.o *.elf *.bin *.dis mkx210 -f
源程序来源:朱有鹏嵌入式课程