Makefile学习笔记(1)—— 汇编LED灯实验

写在前面的话:
关于Makefile学习笔记系列的文章,是我正在学习的正点原子的阿尔法开发板的内容,所有例程源码均来自正点原子的例程,写这个文章的目的是为了学习Makefile。
Makefile代码摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南

	Makefile代码
led.bin:led.s
	arm-linux-gnueabihf-gcc -g -c led.s -o led.o
	arm-linux-gnueabihf-ld -Ttext 0X87800000 led.o -o led.elf
	arm-linux-gnueabihf-objcopy -O binary -S -g led.elf led.bin
	arm-linux-gnueabihf-objdump -D led.elf > led.dis
clean:
	rm -rf *.o led.bin led.elf led.dis

led.bin是目标文件
led.s是依赖文件

arm-linux-gnueabihf-gcc -g -c led.s -o led.o
arm-linux-gnueabihf-gcc是交叉编译器
-g是产生调试信息
-c编译源文件但是不链接,即生成.o文件
-o指定编译后文件的名字

arm-linux-gnueabihf-ld -Ttext 0X87800000 led.o -o led.elf
arm-linux-gnueabihf-ld用来将众多的.o文件链接到一个指定的链接位置。
-Ttext 0x87800000链接到这个地址上去

arm-linux-gnueabihf-objcopy -O binary -S -g led.elf led.bin
arm-linux-gnueabihf-objcopy格式转换工具
-O binary 指定二进制格式输出
-S 表示不复制源文件中的重定位信息和符号信息
-g 表示不复制源文件中的调试信息

arm-linux-gnueabihf-objdump -D led.elf > led.dis
arm-linux-gnueabihf-objdump 反汇编工具
-D 表示反汇编所有段
led.dis 反汇编文件

clean:
	rm -rf *.o led.bin led.elf led.dis

清理工程,但是目录下有一个名叫clean的文件时,使用make clean会出问题。可以将clean声明为伪目标,声明方式:

.PHONY:clean

你可能感兴趣的:(I.MX6ULL,linux,makefile)