ifndef VERBOSE MAKEFLAGS += --no-print-directory endif CFLAGS += -mcpu=cortex-m0plus CFLAGS += -mthumb CFLAGS += -g3 CFLAGS += -O2 CFLAGS += -Wall CFLAGS += -ffunction-sections CFLAGS += -fdata-sections CFLAGS += -Wpointer-arith ifneq ($(findstring -T, $(LDFLAGS)), -T) LDFLAGS += -T$(SDK_BASE_DIR)/flash.ld endif LDFLAGS += -mcpu=cortex-m0plus LDFLAGS += -mthumb LDFLAGS += -g3 LDFLAGS += -O2 LDFLAGS += -Wall LDFLAGS += -Wl,--gc-sections LDFLAGS += -nostartfiles LDFLAGS += -Wl,-Map=$(EXAMPLE_NAME).map LDFLAGS += -Wl,--print-memory-usage CMAKE := cmake ELF2UF2 := $(SDK_BASE_DIR)/tools/elf2uf2 # The command to remove a file. RM = $(CMAKE) -E remove_directory COMX ?=COM1 BAUDRATE ?=2000000 # cmake definition config # toolchain cmake_definition+= -DCMAKE_C_COMPILER=$(CROSS_COMPILE)gcc cmake_definition+= -DCMAKE_CXX_COMPILER=$(CROSS_COMPILE)g++ cmake_definition+= -DCMAKE_ASM_COMPILER=$(CROSS_COMPILE)gcc cmake_definition+= -DCMAKE_LINKER=$(CROSS_COMPILE)ld cmake_definition+= -DCMAKE_OBJCOPY=$(CROSS_COMPILE)objcopy cmake_definition+= -DCMAKE_OBJDUMP=$(CROSS_COMPILE)objdump cmake_definition+= -DCMAKE_AR=$(CROSS_COMPILE)ar cmake_definition+= -DCMAKE_RANLIB=$(CROSS_COMPILE)ranlib cmake_definition+= -DCMAKE_C_FLAGS="$(CFLAGS)" cmake_definition+= -DCMAKE_CXX_FLAGS="$(CFLAGS)" cmake_definition+= -DCMAKE_EXE_LINKER_FLAGS="$(LDFLAGS)" cmake_definition+= -DCONFIG_COMX=$(COMX) cmake_definition+= -DSDK_BASE_DIR=$(SDK_BASE_DIR) cmake_definition+= -DEXAMPLE_NAME=$(EXAMPLE_NAME) cmake_definition+= -DEXAMPLE_BASE_DIR=$(EXAMPLE_BASE_DIR) FINAL_NAME_PRE := $(EXAMPLE_BASE_DIR)/build/$(EXAMPLE_NAME) post:build ifdef BOOT2_PRE_CRC @$(CROSS_COMPILE)objcopy -O binary --only-section=.boot2_pre $(FINAL_NAME_PRE).elf $(BOOT2_PRE_CRC) @python3 $(SDK_BASE_DIR)/tools/boot2_pre_crc.py $(BOOT2_PRE_CRC) @$(CROSS_COMPILE)objcopy --update-section .boot2_pre=$(BOOT2_PRE_CRC) $(FINAL_NAME_PRE).elf @rm $(BOOT2_PRE_CRC) endif @$(CROSS_COMPILE)objcopy -O binary $(FINAL_NAME_PRE).elf $(FINAL_NAME_PRE).bin @$(CROSS_COMPILE)objdump -d -S $(FINAL_NAME_PRE).elf > $(FINAL_NAME_PRE).asm @$(CROSS_COMPILE)nm $(FINAL_NAME_PRE).elf > $(FINAL_NAME_PRE).nm @$(ELF2UF2) $(FINAL_NAME_PRE).elf $(FINAL_NAME_PRE).uf2 @size $(FINAL_NAME_PRE).elf @sha256sum $(FINAL_NAME_PRE).bin build:Makefile $(CMAKE) -S . -B build -G "Unix Makefiles" $(cmake_definition) $(MAKE) -C build -j clean:: $(RM) build .PHONY:post build clean