X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=tmk_core%2Fchibios.mk;h=0f665450ac56427a99ffc851f951feacbf9d2bb7;hb=154e1d99c398e343a6b23081e7a4ccb6e2073a8d;hp=cb0482d757d468b1d23724d5c4a77a36b22a7bf5;hpb=510a8d33394780a0713b26a0c516ecab1b140bc2;p=qmk_firmware.git diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk index cb0482d75..0f665450a 100644 --- a/tmk_core/chibios.mk +++ b/tmk_core/chibios.mk @@ -6,7 +6,7 @@ # Stack size to be allocated to the Cortex-M process stack. This stack is # the stack used by the main() thread. ifeq ($(USE_PROCESS_STACKSIZE),) - USE_PROCESS_STACKSIZE = 0x200 + USE_PROCESS_STACKSIZE = 0x800 endif # Stack size to the allocated to the Cortex-M main/exceptions stack. This @@ -63,6 +63,9 @@ else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/boards/$(BOARD)/board.mk)","") else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/boards/$(BOARD)/board.mk)","") BOARD_PATH = $(KEYBOARD_PATH_1) BOARD_MK += $(KEYBOARD_PATH_1)/boards/$(BOARD)/board.mk +else ifneq ("$(wildcard $(TOP_DIR)/drivers/boards/$(BOARD)/board.mk)","") + BOARD_PATH = $(TOP_DIR)/drivers + BOARD_MK += $(TOP_DIR)/drivers/boards/$(BOARD)/board.mk endif ifeq ("$(wildcard $(BOARD_MK))","") @@ -122,7 +125,7 @@ CHIBISRC := $(patsubst $(TOP_DIR)/%,%,$(CHIBISRC)) EXTRAINCDIRS += $(CHIBIOS)/os/license \ $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(STREAMSINC) $(CHIBIOS)/os/various + $(STREAMSINC) $(CHIBIOS)/os/various $(COMMON_VPATH) # # Project, sources and paths @@ -142,6 +145,8 @@ HEX = $(OBJCOPY) -O $(FORMAT) EEP = BIN = $(OBJCOPY) -O binary +COMMON_VPATH += $(DRIVER_PATH)/arm + THUMBFLAGS = -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -mthumb -DTHUMB COMPILEFLAGS += -fomit-frame-pointer @@ -149,6 +154,7 @@ COMPILEFLAGS += -falign-functions=16 COMPILEFLAGS += -ffunction-sections COMPILEFLAGS += -fdata-sections COMPILEFLAGS += -fno-common +COMPILEFLAGS += -fshort-wchar COMPILEFLAGS += $(THUMBFLAGS) CFLAGS += $(COMPILEFLAGS) @@ -159,6 +165,7 @@ CPPFLAGS += $(COMPILEFLAGS) CPPFLAGS += -fno-rtti LDFLAGS +=-Wl,--gc-sections +LDFLAGS +=-Wl,--no-wchar-size-warning LDFLAGS += -mno-thumb-interwork -mthumb LDSYMBOLS =,--defsym=__process_stack_size__=$(USE_PROCESS_STACKSIZE) LDSYMBOLS :=$(LDSYMBOLS),--defsym=__main_stack_size__=$(USE_EXCEPTIONS_STACKSIZE) @@ -191,10 +198,13 @@ ifneq ("$(SERIAL)","") DFU_ARGS += -S $(SERIAL) endif +ST_LINK_ARGS ?= + # List any extra directories to look for libraries here. EXTRALIBDIRS = $(RULESPATH)/ld DFU_UTIL ?= dfu-util +ST_LINK_CLI ?= st-link_cli # Generate a .qmk for the QMK-FF qmk: $(BUILD_DIR)/$(TARGET).bin @@ -220,8 +230,29 @@ qmk: $(BUILD_DIR)/$(TARGET).bin zip $(TARGET).qmk -urj $(BUILD_DIR)/$(TARGET).json printf "@ $(TARGET).json\n@=info.json\n" | zipnote -w $(TARGET).qmk -dfu-util: $(BUILD_DIR)/$(TARGET).bin sizeafter +dfu-util: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter $(DFU_UTIL) $(DFU_ARGS) -D $(BUILD_DIR)/$(TARGET).bin + +ifneq ($(strip $(TIME_DELAY)),) + TIME_DELAY = $(strip $(TIME_DELAY)) +else + TIME_DELAY = 10 +endif +dfu-util-wait: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter + echo "Preparing to flash firmware. Please enter bootloader now..." ;\ + COUNTDOWN=$(TIME_DELAY) ;\ + while [[ $$COUNTDOWN -ge 1 ]] ; do \ + echo "Flashing in $$COUNTDOWN ..."; \ + sleep 1 ;\ + ((COUNTDOWN = COUNTDOWN - 1)) ; \ + done; \ + echo "Flashing $(TARGET).bin" ;\ + sleep 1 ;\ + $(DFU_UTIL) $(DFU_ARGS) -D $(BUILD_DIR)/$(TARGET).bin + +st-link-cli: $(BUILD_DIR)/$(TARGET).hex sizeafter + $(ST_LINK_CLI) $(ST_LINK_ARGS) -q -c SWD -p $(BUILD_DIR)/$(TARGET).hex -Rst + bin: $(BUILD_DIR)/$(TARGET).bin sizeafter $(COPY) $(BUILD_DIR)/$(TARGET).bin $(TARGET).bin;