Makefile文件编写
all:
arm-linux-gcc -c -o led_on.o led_on.s
arm-linux-ld -Ttext 0 led_on.o -o led_on.elf //arm-linux-ld用于将多个目标文件、库文件链接成可执行文件 -T选项是用来指定代码段、数据段、bss段的起始地址,也可以用来指定一个连接脚本,在脚本中进行更复杂的地址设置 -Ttext 0 指定代码段的起始地址为0 -Tdata 用来指定数据段 -Tbss用来指定bss段的起始地址
arm-linux-objcopy -O binary -S led_on.elf led_on.bin //用来复制一个文件到另一个文件中,常用来将.elf文件转换为二进制文件 -O binary 表示输出二进制文件 -S表示不从源文件中复制重定位信息和符号信息到目标文件中去 led_on.elf源文件 led_on.bin输出文件
arm-linux-objdump -D led_on.elf > led.dis //生产机器码
clean:
rm *.bin *.o *.elf
make clean 命令执行清除指令
make 命令执行all下面所有的编译,联接,生成指令
Makefile 必须使用Tab以每行的开始
Makefile使用规则
目标:依赖
<tab>命令(command)
test:led.o led.s led_on.o
led_on.o:led_on.s //执行下面语句时先检测led_on.s是否改变,如果没有改变就跳过,使用以前的led_on.o
arm-linux-gcc -c -o led_on.o led_on.s
led.s:led.c
arm-linux-gcc -S -o led.s led.c
led.o:l