stm32 makefile

# toolchain
CC           = arm-none-eabi-gcc
CP           = arm-none-eabi-objcopy
AS           = arm-none-eabi-gcc -x assembler-with-cpp

# all the files will be generated with this name 
PROJECT_NAME=stm32f10x_project

# user specific
SRC      += ./user/main.c
# startup
ASM_SRC  += ./user/startup_stm32f103xe.s

OBJECTS  = $(ASM_SRC:.s=.o) $(SRC:.c=.o)
# Define optimisation level here
MC_FLAGS = -mcpu=cortex-m3
AS_FLAGS = $(MC_FLAGS) -g  -mthumb  
CP_FLAGS = $(MC_FLAGS)  -g  -mthumb  -Wall -fverbose-asm 
LD_FLAGS = $(MC_FLAGS) -g  -mthumb  -Xlinker --gc-sections -T STM32F103ZETx_FLASH.ld 

# makefile rules
all: $(OBJECTS) $(PROJECT_NAME).elf  $(PROJECT_NAME).hex $(PROJECT_NAME).bin
	 arm-none-eabi-size $(PROJECT_NAME).elf

%.o: %.c
	$(CC) -c $(CP_FLAGS) -I . $(INC_DIR) $< -o $@

%.o: %.s
	$(AS) -c $(AS_FLAGS) $< -o $@

%.elf: $(OBJECTS)
	$(CC) $(OBJECTS) $(LD_FLAGS) -o $@

%.hex: %.elf
	$(CP) -O ihex $< $@

%.bin: %.elf
	$(CP) -O binary -S  $< $@

clean:
	rm -rf  $(PROJECT_NAME).elf $(PROJECT_NAME).hex $(PROJECT_NAME).bin *.o

 

main.c

//#include "stm32f10x.h" // Device header

int main()
{

    return 0;
}

 

https://blog.csdn.net/li_man_man_man/article/details/144007577

posted @ 2025-04-05 10:49  微笑的''80  阅读(7)  评论(0)    收藏  举报