stm32 Makefile
stm32 makefile编写
·
Makefile
单片机头部信息
#用于stm32f103rctx
CC:=arm-none-eabi-gcc
OBJCOPY:=arm-none-eabi-objcopy
#ARM芯片内核型号
CORE:=3
#-mthumb 表明使用的指令集(必需)
#-mcpu=cortex-m3 表明芯片内核(必需)
CPUFLAGS:=-mthumb -mcpu=cortex-m$(CORE)
#-T 指定链接文件
LDFLAGS:=-T STM32F103RCTx_FLASH.ld \
-specs=nosys.specs -static -Wl,-cref,-u,Reset_Handler \
-Wl,-Map=test.map \
-Wl,--gc-sections -Wl,--defsym=malloc_getpagesize_P=0x80 -Wl,--start-group -lc -lm -Wl,--end-group
将XXX目录下所有的.c文件转换为.o文件
#U8G2
U8G2_INCLUDE:=-I./u8g2 #u8g2下所有的.h文件
U8G2:=./u8g2/ #u8g2文件目录
U8G2_LIBS = $(wildcard $(U8G2)*.c) #可以使用如下命令获取当前目录下所有 .c 文件的文件列表
U8G2_OBJ:= $(subst ./u8g2/,$(OBJ),$(U8G2_LIBS)) #将./u8g2/xxx.c 替换为 ./OBJ/xxx.c
U8G2_OBJ:= $(subst .c,.o,$(U8G2_OBJ)) #将./OBJ/xxx.c 替换为 ./OBJ/xxx.o
编译U8G2文件
#编译U8G2
$(U8G2_OBJ):$(OBJ)%.o:$(U8G2)%.c
$(CC) -c $(CPUFLAGS) -O0 -g -Wa,--warn $^ -o $@ $(include)
所有.o文件转换为.elf后转化为.hex文件
$(OBJ)sxpi.hex:$(OBJ)sxpi.elf
$(OBJCOPY) $^ -Oihex $@
#所有的.o文件
OBJ_CODE:=$(U8G2_OBJ) \
all : sxpi.elf
$(OBJ)sxpi.elf:$(OBJ_CODE)
$(CC) $^ -o $@ $(CPUFLAGS) $(LDFLAGS)
烧录代码
#烧录代码
OPENCDE:=openocd
START = start ""
STLINK:=C:\xpack-openocd-0.11.0-4\scripts\interface\stlink.cfg
STM32f10x:=C:\xpack-openocd-0.11.0-4\scripts\target\stm32f1x.cfg
# flash:
# $(OPENCDE) -f $(STLINK) -f $(STM32f10x) -c "program $(OBJ)sxpi.hex" -c "reset" -c "shutdown"
#stm32c8t6
flash:
$(OPENCDE) -f $(STLINK) -c "set CPUTAPID 0x1ba01477" -f $(STM32f10x) -c "program $(OBJ)sxpi.hex" -c "reset" -c "shutdown"
clean:
del /s *.o *.elf *.hex
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)