📄 makefile
字号:
###############################################################################
#
#
#
#
#
#
#
#
##############################################################################
ST_LIB_DIR=./library
TARGET = main
CC = arm-none-eabi-gcc
OBJCOPY = arm-none-eabi-objcopy
SIZE = arm-none-eabi-size
LDSCRIPT=./LinkerScript/STM32F103_128K_20K_FLASH.ld
MACRO = ./Startup/cortexm3_macro.s
MSG_ERRORS_NONE = Errors: none
MSG_BEGIN = "-------- begin (mode: $(RUN_MODE)) --------"
MSG_END = -------- end --------
MSG_SIZE_AFTER = Size after:
MSG_CLEANING = Cleaning project:
# should use --gc-sections but the debugger does not seem to be able to cope with the option.
LINKER_FLAGS=-nostartfiles -Xlinker -o$(TARGET).axf -Xlinker -M -Xlinker -Map=rtosdemo.map -Xlinker --no-gc-sections
DEBUG=-g
OPTIM = -Os
FORMAT = ihex
CFLAGS=$(DEBUG) \
$(OPTIM) \
-I ./inc \
-T$(LDSCRIPT) \
-I . \
-I $(ST_LIB_DIR)/inc \
-D GCC_ARMCM3 \
-D inline= \
-D PACK_STRUCT_END=__attribute\(\(packed\)\) \
-D ALIGN_STRUCT_END=__attribute\(\(aligned\(4\)\)\) \
-mthumb \
-mcpu=cortex-m3 \
-ffunction-sections \
-fdata-sections
SOURCE= .\src\main.c \
.\src\stm32f10x_it.c \
.\src\drawing.c \
$(ST_LIB_DIR)/src/stm32f10x_gpio.c \
$(ST_LIB_DIR)/src/stm32f10x_lib.c \
$(ST_LIB_DIR)/src/stm32f10x_nvic.c \
$(ST_LIB_DIR)/src/stm32f10x_rcc.c \
$(ST_LIB_DIR)/src/stm32f10x_systick.c \
$(ST_LIB_DIR)/src/stm32f10x_tim.c \
$(ST_LIB_DIR)/src/stm32f10x_flash.c \
$(ST_LIB_DIR)/src/stm32f10x_rtc.c \
$(ST_LIB_DIR)/src/stm32f10x_pwr.c \
$(ST_LIB_DIR)/src/stm32f10x_bkp.c
LIBS=
OBJS = $(SOURCE:.c=.o)
# Display size of file.
HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
ELFSIZE = $(SIZE) -A $(TARGET).axf
sizebefore:
@if [ -f $(TARGET).axf ]; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); echo; fi
sizeafter:
@if [ -f $(TARGET).axf ]; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); echo; fi
# Display compiler version information.
gccversion :
@$(CC) --version
# Eye candy.
begin:
@echo
@echo $(MSG_BEGIN)
finished:
@echo $(MSG_ERRORS_NONE)
end:
@echo $(MSG_END)
@echo
all: begin gccversion sizebefore $(TARGET).hex sizeafter finished end
$(TARGET).hex : $(TARGET).axf
@ echo "...copying"
$(OBJCOPY) $(TARGET).axf -O $(FORMAT) $(TARGET).hex
$(TARGET).axf : $(OBJS) .\src\stm32f10x_vector.o Makefile
@ echo "...linking"
$(CC) $(CFLAGS) $(OBJS) .\src\stm32f10x_vector.o $(MACRO) $(LIBS) $(LINKER_FLAGS)
@ echo
$(OBJS) : %.o : %.c Makefile
@ echo "...compiling" $<
$(CC) -c $(CFLAGS) $< -o $@
@ echo
crt0_STM32x.o : .\src\stm32f10x_vector.c Makefile
@ echo "...compiling" $<
$(CC) -c $(CFLAGS) -O1 .\src\stm32f10x_vector.c -o .\src\stm32f10x_vector.o
@ echo
clean:
@echo
@echo $(MSG_CLEANING)
-rm -f $(OBJS)
-rm -f $(TARGET).axf
-rm -f $(TARGET).map
-rm -f $(TARGET).hex
-rm -f $(SRC:.c=.c.bak)
-rm -f $(SRC:.c=.lst)
-rm -f $(ASRC:.s=.s.bak)
-rm -f $(ASRC:.s=.lst)
-rm -fR .dep
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -