Makefile文件示例
2025-02-08 来源:cnblogs
整个makefile文件示例:
#Design by slowby for S5PV210
#define var
#目标文件,终极目标
TARGET:= led.bin
BUILD := led
#如果没定义SD ?表示没定义
MYENV?= SD
SDTOOLS:= ./mk210 #sdtools截取前
16kB的内容,mkv210_image.c
#多文件
COBJS+= start.o
COBJS+= main.o
COBJS+= led.o
#工具集
CROSS_COMPILE = arm-linux-
#交叉编译器
CC:= $(CROSS_COMPILE)gcc
#链接器
LD:= $(CROSS_COMPILE)ld
#去文件格式转换工具
OBJCOPY := $(CROSS_COMPILE)objcopy
#编译选项
#显示警告信息
CFLAGS+= -Wall
#增加头文件查找目录
CFLAGS+= -I./inc
#链接选项
#主要是链接地址
#添加链接脚本,可以不用在意COBJS的添加顺序 -T是必须的,链接脚本名为map.lds
LDFLAGS+= -Tmap.lds
#. = 0x0; + -Ttex 的值作为基地址
ifeq ($(MYENV),SD)
LDFLAGS+= -Ttext=0x0
else
LDFLAGS+= -Ttext=0x20000000
endif
#Way
#$@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件。
all:$(TARGET)
ifeq ($(MYENV),SD)
#SD
#生成临时目标文件$@.TMP
#添加头信息校验
$(TARGET):$(BUILD)
$(OBJCOPY) -O binary $^ $@.TMP
$(SDTOOLS) $@.TMP $@
cp $@ ../bin -f
else
#RAM
#所有的$^依赖文件,生成目标文件$@
$(TARGET):$(BUILD)
$(OBJCOPY) -O binary $^ $@
cp $@ ../bin -f
endif
#链接 依赖于$^生成$@
$(BUILD):$(COBJS)
$(LD) $(LDFLAGS) -o $@ $^
#编译
#所有的.c生成所有的.o
%.o:%.c
$(CC) $(CFLAGS) -c -o $@ $^
#大S,c语言可以去处理汇编
%.o:%.S
$(CC) $(CFLAGS) -c -o $@ $^
clean:
rm -f $(TARGET) $(BUILD) *.o
- 嵌入式C开发环境构建指南:工具链配置、Makefile编写与调试实战
- 【Linux】GCC+Makefile打造正点原子stm32单片机开发环境
- 使用Makefile在Windows环境下编译STM32F103C8T6标准库工程,脱离Keil的指南
- stm32 makefile
- vs2022 makefile 开发编译 stm32
- VScode开发STM32/GD32单片机-MakeFile工程JlinkRTT配置
- Makefile 解析
- 基于stm32f4的自制menuconfig及makefile工程
- 迅为4412开发板实验_Makefile编译(下)
- 迅为4412开发板实验_Makefile编译(上)
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- 蓝牙信道探测技术原理与开发套件实践
- Microchip 推出生产就绪型全栈边缘 AI 解决方案,赋能MCU和MPU实现 智能实时决策
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析




