单片机
返回首页

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


进入单片机查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

精选电路图
  • 1瓦线性调频增强器

  • 家用电器遥控器

  • 12V 转 28V DC-DC 变换器(基于 LM2585)

  • 红外开关

  • DS1669数字电位器

  • HA1377 桥式放大器 BCL 电容 17W(汽车音频)

    相关电子头条文章