原创文章引用请标明网址,若本文章有侵权之处请联系删除
整个过程可以参考这个链接的内容,https://blog.csdn.net/c1599179/article/details/100827322?spm=1001.2014.3001.5501
不同之处包括:
1、固件库文件要换成stm32f407zgt6的
2、makeile文件改为:
TARGET = project
export CC = arm-none-eabi-gcc
export AS = arm-none-eabi-as
export LD = arm-none-eabi-ld
export OBJCOPY = arm-none-eabi-objcopy
TOP=$(shell pwd)
INC_FLAGS= -I $(TOP)/stm32f407zgt6/inc \
-I $(TOP)/stm32f407zgt6/lib/inc \
-I $(TOP)
CFLAGS = -W -Wall -g -mcpu=cortex-m4 -mthumb -D STM32F40_41xxx -D USE_STDPERIPH_DRIVER $(INC_FLAGS) -O0 -std=gnu11
C_SRC=$(shell find ./ -name '*.c')
C_OBJ=$(C_SRC:%.c=%.o)
ASFLAGS= -W -Wall -g -Wall -mcpu=cortex-m4 -mthumb
ASM_SRC=$(shell find ./ -name '*.s')
ASM_OBJ=$(ASM_SRC:%.s=%.o)
all:$(C_OBJ) $(ASM_OBJ)
$(CC) $(C_OBJ) $(ASM_OBJ) -T stm32_flash.ld -o $(TARGET).elf -mthumb -mcpu=cortex-m4 -Wl,--start-group -lc -lm -Wl,--end-group -specs=nano.specs -specs=nosys.specs -static -Wl,-cref,-u,Reset_Handler -Wl,-Map=Project.map -Wl,--gc-sections -Wl,--defsym=malloc_getpagesize_P=0x80
$(OBJCOPY) $(TARGET).elf $(TARGET).bin -Obinary
$(OBJCOPY) $(TARGET).elf $(TARGET).hex -Oihex
$(C_OBJ):%.o:%.c
$(CC) -c $(CFLAGS) -o $@ $<
$(ASM_OBJ):%.o:%.s
$(AS) -c $(ASFLAGS) -o $@ $<
.PHONY: all clean update
clean:
rm -f $(shell find ./ -name '*.o')
rm -f $(shell find ./ -name '*.d')
rm -f $(shell find ./ -name '*.map')
rm -f $(shell find ./ -name '*.elf')
rm -f $(shell find ./ -name '*.bin')
rm -f $(shell find ./ -name '*.hex')
rm -f $(shell find ./ -name '*.cdep')
3、删除stm32f407_fmc.c和对应的.h文件,这是stm32标准库里的文件,有它会显示很多错误,一般也不会用到,直接删掉就不会有相应的错误了。