Makefile
单片机头部信息
CC:=arm-none-eabi-gcc
OBJCOPY:=arm-none-eabi-objcopy
CORE:=3
CPUFLAGS:=-mthumb -mcpu=cortex-m$(CORE)
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_INCLUDE:=-I./u8g2
U8G2:=./u8g2/
U8G2_LIBS = $(wildcard $(U8G2)*.c)
U8G2_OBJ:= $(subst ./u8g2/,$(OBJ),$(U8G2_LIBS))
U8G2_OBJ:= $(subst .c,.o,$(U8G2_OBJ))
编译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 $@
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) -c "set CPUTAPID 0x1ba01477" -f $(STM32f10x) -c "program $(OBJ)sxpi.hex" -c "reset" -c "shutdown"
clean:
del /s *.o *.elf *.hex