123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- # ---------------------------------- #
- # GCC Bulid command log config #
- # ---------------------------------- #
- #CMD_LOG = 1
- # echo suspend
- ifdef CMD_LOG
- NO_ECHO =
- else
- NO_ECHO = @
- endif
- SYSTEM := $(filter Windows_NT, $(OS))
-
- PROJECT_NAME := fr8000_project
- # ---------------------------------- #
- # Path config #
- # ---------------------------------- #
- TOP_DIR := ../../../..
- PROJECT_DIR := ../code
- OBJECT_DIR := Objects
- # ---------------------------------- #
- # Toolchain config #
- # ---------------------------------- #
- TOOLCHAIN := arm-none-eabi
- CC := $(TOOLCHAIN)-gcc
- AS := $(TOOLCHAIN)-as
- LD := $(TOOLCHAIN)-ld
- OBJDUMP := $(TOOLCHAIN)-objdump
- OBJCOPY := $(TOOLCHAIN)-objcopy
- SIZE := $(TOOLCHAIN)-size
- # ---------------------------------- #
- # ld/lib config #
- # ---------------------------------- #
- LD := $(TOP_DIR)/components/toolchain/gcc/ldscript.ld
- LD_C := $(TOP_DIR)/components/ble/library/syscall_gcc.txt
- LIB := $(TOP_DIR)/components/ble/library/libfr800x_stack.a
- # ---------------------------------- #
- # Source files config #
- # ---------------------------------- #
- SRC_FILES += $(TOP_DIR)/components/driver/driver_pmu.c
- SRC_FILES += $(TOP_DIR)/examples/none_evm/ble_simple_peripheral/code/proj_main.c
- SRC_FILES += $(TOP_DIR)/examples/none_evm/ble_simple_peripheral/code/ble_simple_peripheral.c
- SRC_FILES += $(TOP_DIR)/components/ble/profiles/ble_simple_profile/simple_gatt_service.c
- SRC_FILES += $(TOP_DIR)/components/modules/common/src/co_log.c
- SRC_FILES += $(TOP_DIR)/components/toolchain/gcc/boot_vectors.c
- # ---------------------------------- #
- # Include path config #
- # ---------------------------------- #
- INC_PATH += -I"$(TOP_DIR)/components/driver/include"
- INC_PATH += -I"$(TOP_DIR)/components/driver/drv_common"
- INC_PATH += -I"$(TOP_DIR)/components/driver/components/display"
- INC_PATH += -I"$(TOP_DIR)/components/driver/components/spi_flash"
- INC_PATH += -I"$(TOP_DIR)/components/driver/components/touchpad"
- INC_PATH += -I"$(TOP_DIR)/components/modules/platform/include"
- INC_PATH += -I"$(TOP_DIR)/components/modules/platform/include/cmsis"
- INC_PATH += -I"$(TOP_DIR)/components/modules/common/include"
- INC_PATH += -I"$(TOP_DIR)/components/modules/sys/include"
- INC_PATH += -I"$(TOP_DIR)/components/modules/os/include"
- INC_PATH += -I"$(TOP_DIR)/components/ble/include"
- INC_PATH += -I"$(TOP_DIR)/components/ble/include/gap"
- INC_PATH += -I"$(TOP_DIR)/components/ble/include/gatt"
- INC_PATH += -I"$(TOP_DIR)/components/ble/include/mesh"
- INC_PATH += -I"$(TOP_DIR)/components/ble/profiles/ble_simple_profile"
- INC_PATH += -I"$(PROJECT_DIR)"
- # ----------------------------------- #
- # Objects files common to all targets #
- # ----------------------------------- #
- BASE_SRC = $(notdir $(SRC_FILES))
- BASE_OBJS = $(BASE_SRC:%.c=%.o)
- OBJS = $(BASE_OBJS:%.o=$(OBJECT_DIR)/%.o)
- BASE_ElF = $(OBJECT_DIR)/$(PROJECT_NAME).elf
- # ---------------------------------- #
- # Source files path #
- # ---------------------------------- #
- VPATH = $(dir $(SRC_FILES))
- # ---------------------------------- #
- # C flags common to all targets #
- # ---------------------------------- #
- CFLAGS += -mcpu=cortex-m3
- CFLAGS += -mthumb
- CFLAGS += -O3
- CFLAGS += -fmessage-length=0 -fsigned-char
- CFLAGS += -ffunction-sections -fdata-sections
- CFLAGS += -g3
- CFLAGS += -std=gnu11
- # ---------------------------------- #
- # LD flags common to all targets #
- # ---------------------------------- #
- LDFLAGS += -mcpu=cortex-m3
- LDFLAGS += -mthumb
- LDFLAGS += -O3
- LDFLAGS += -fmessage-length=0 -fsigned-char
- LDFLAGS += -ffunction-sections -fdata-sections
- LDFLAGS += -g3
- LDFLAGS += -Xlinker --gc-sections
- LDFLAGS += --specs=nosys.specs -u _printf_float
- # ---------------------------------- #
- # all target list #
- # ---------------------------------- #
- all: Target_Path Target_OBJS Target_ELF Target_DONE
- # ---------------------------------- #
- # Create Path #
- # ---------------------------------- #
- Target_Path :
- $(shell if [ ! -d $(OBJECT_DIR) ];then mkdir $(OBJECT_DIR); fi)
- # ---------------------------------- #
- # compile .c .s #
- # ---------------------------------- #
- Target_OBJS : $(OBJS)
- $(OBJECT_DIR)/%.o : %.c
- $(info Bulid: compiling $^)
- $(NO_ECHO)$(CC) $(CFLAGS) $(INC_PATH) -c -o $@ $<
- $(OBJECT_DIR)/%.o : %.s
- $(info Bulid: compiling $^)
- $(NO_ECHO)$(CC) $(CFLAGS) $(INC_PATH) -c -o $@ $<
- # ---------------------------------- #
- # Create Image File #
- # ---------------------------------- #
- Target_ELF : $(BASE_ElF)
- $(BASE_ElF) : $(OBJS)
- $(NO_ECHO)$(CC) $(LDFLAGS) -T $(LD) -T $(LD_C) -Wl,-Map,"$(PROJECT_NAME).map" -o $(OBJECT_DIR)/$(PROJECT_NAME).elf $^ $(LIB)
- $(NO_ECHO)$(OBJCOPY) -O binary -S $(OBJECT_DIR)/$(PROJECT_NAME).elf $(PROJECT_NAME).bin
- $(NO_ECHO)$(OBJCOPY) -O ihex -S $(OBJECT_DIR)/$(PROJECT_NAME).elf $(PROJECT_NAME).hex
- $(NO_ECHO)$(OBJDUMP) -D $(OBJECT_DIR)/$(PROJECT_NAME).elf > $(PROJECT_NAME).dis
- $(info Bulid: creating $(OBJECT_DIR)/$(PROJECT_NAME).elf)
- $(info Bulid: creating $(PROJECT_NAME).map)
- $(info Bulid: creating $(PROJECT_NAME).bin)
- $(info Bulid: creating $(PROJECT_NAME).hex)
- $(info Bulid: creating $(PROJECT_NAME).dis)
- # ---------------------------------- #
- # Output image file size #
- # ---------------------------------- #
- .PHONY : Target_DONE
- Target_DONE:
- @echo Bulid: Output image file info:
- $(NO_ECHO)$(SIZE) $(OBJECT_DIR)/$(PROJECT_NAME).elf
- @echo Bulid: $(PROJECT_NAME) make done.
- # ---------------------------------------- #
- # delete file(.o .elf .bin .dis .hex .map) #
- # ---------------------------------------- #
- .PHONY : clean
- clean :
- $(NO_ECHO)rm -rf $(OBJECT_DIR) *.elf *.bin *.dis *.hex *.map
- @echo delete *.o *.elf *.bin *.dis *.hex *.map
|