Makefile学习笔记(3)—— 官方SDK移植实验

本文介绍了一个基于Makefile的LED驱动程序编译流程。通过实例详细展示了交叉编译工具链的配置方法,包括预处理、编译、链接及生成可执行文件的过程,并附带了清理规则。

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

Makefile代码
CROSS_COMPILE ?= arm-linux-gnueabihf-

NAME		  ?= ledc



CC 		:= $(CROSS_COMPILE)gcc

LD		:= $(CROSS_COMPILE)ld

OBJCOPY := $(CROSS_COMPILE)objcopy

OBJDUMP := $(CROSS_COMPILE)objdump



OBJS 	:= start.o main.o



$(NAME).bin:$(OBJS)

	$(LD) -Timx6ul.lds -o $(NAME).elf $^

	$(OBJCOPY) -O binary -S $(NAME).elf $@

	$(OBJDUMP) -D -m arm $(NAME).elf > $(NAME).dis



%.o:%.s

	$(CC) -Wall -nostdlib -c -O2 -o $@ $<

	

%.o:%.S

	$(CC) -Wall -nostdlib -c -O2 -o $@ $<

	

%.o:%.c

	$(CC) -Wall -nostdlib -c -O2 -o $@ $<

	

clean:

	rm -rf *.o $(NAME).bin $(NAME).elf $(NAME).dis

	

关于前几行代码中不同等号的赋值情况使用已经在上一篇文章中总结过了,请查看Makefile学习笔记(2)—— C语言LED灯实验

CROSS_COMPILE ?= arm-linux-gnueabihf-

CC 		:= $(CROSS_COMPILE)gcc

LD		:= $(CROSS_COMPILE)ld

OBJCOPY := $(CROSS_COMPILE)objcopy

OBJDUMP := $(CROSS_COMPILE)objdump

这几行代码展开

CC 		:= arm-linux-gnueabihf-gcc

LD		:= arm-linux-gnueabihf-ld

OBJCOPY := arm-linux-gnueabihf-objcopy

OBJDUMP := arm-linux-gnueabihf-objdump

后面使用的变量名进行相应的替换就可以了。

相应的这些符号 $@ $< 已经在上一章中讲过了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值