aboutsummaryrefslogtreecommitdiff
path: root/platforms/chibios/flash.mk
diff options
context:
space:
mode:
Diffstat (limited to 'platforms/chibios/flash.mk')
-rw-r--r--platforms/chibios/flash.mk87
1 files changed, 87 insertions, 0 deletions
diff --git a/platforms/chibios/flash.mk b/platforms/chibios/flash.mk
new file mode 100644
index 000000000..46aff6e4b
--- /dev/null
+++ b/platforms/chibios/flash.mk
@@ -0,0 +1,87 @@
1# Hey Emacs, this is a -*- makefile -*-
2##############################################################################
3# Architecture or project specific options
4#
5
6DFU_ARGS ?=
7ifneq ("$(SERIAL)","")
8 DFU_ARGS += -S $(SERIAL)
9endif
10
11DFU_UTIL ?= dfu-util
12
13define EXEC_DFU_UTIL
14 if ! $(DFU_UTIL) -l | grep -q "Found DFU"; then \
15 printf "$(MSG_BOOTLOADER_NOT_FOUND_QUICK_RETRY)" ;\
16 sleep $(BOOTLOADER_RETRY_TIME) ;\
17 while ! $(DFU_UTIL) -l | grep -q "Found DFU"; do \
18 printf "." ;\
19 sleep $(BOOTLOADER_RETRY_TIME) ;\
20 done ;\
21 printf "\n" ;\
22 fi
23 $(DFU_UTIL) $(DFU_ARGS) -D $(BUILD_DIR)/$(TARGET).bin
24endef
25
26dfu-util: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter
27 $(call EXEC_DFU_UTIL)
28
29# TODO: Remove once ARM has a way to configure EECONFIG_HANDEDNESS
30# within the emulated eeprom via dfu-util or another tool
31ifneq (,$(filter $(MAKECMDGOALS),dfu-util-split-left))
32 OPT_DEFS += -DINIT_EE_HANDS_LEFT
33endif
34
35ifneq (,$(filter $(MAKECMDGOALS),dfu-util-split-right))
36 OPT_DEFS += -DINIT_EE_HANDS_RIGHT
37endif
38
39dfu-util-split-left: dfu-util
40
41dfu-util-split-right: dfu-util
42
43ST_LINK_CLI ?= st-link_cli
44ST_LINK_ARGS ?=
45
46st-link-cli: $(BUILD_DIR)/$(TARGET).hex sizeafter
47 $(ST_LINK_CLI) $(ST_LINK_ARGS) -q -c SWD -p $(BUILD_DIR)/$(TARGET).hex -Rst
48
49ST_FLASH ?= st-flash
50ST_FLASH_ARGS ?=
51
52st-flash: $(BUILD_DIR)/$(TARGET).hex sizeafter
53 $(ST_FLASH) $(ST_FLASH_ARGS) --reset --format ihex write $(BUILD_DIR)/$(TARGET).hex
54
55# Autodetect teensy loader
56ifndef TEENSY_LOADER_CLI
57 ifneq (, $(shell which teensy-loader-cli 2>/dev/null))
58 TEENSY_LOADER_CLI ?= teensy-loader-cli
59 else
60 TEENSY_LOADER_CLI ?= teensy_loader_cli
61 endif
62endif
63
64TEENSY_LOADER_CLI_MCU ?= $(MCU_LDSCRIPT)
65
66define EXEC_TEENSY
67 $(TEENSY_LOADER_CLI) -mmcu=$(TEENSY_LOADER_CLI_MCU) -w -v $(BUILD_DIR)/$(TARGET).hex
68endef
69
70teensy: $(BUILD_DIR)/$(TARGET).hex cpfirmware sizeafter
71 $(call EXEC_TEENSY)
72
73
74flash: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter
75ifneq ($(strip $(PROGRAM_CMD)),)
76 $(PROGRAM_CMD)
77else ifeq ($(strip $(BOOTLOADER)),kiibohd)
78 $(call EXEC_DFU_UTIL)
79else ifeq ($(strip $(MCU_FAMILY)),KINETIS)
80 $(call EXEC_TEENSY)
81else ifeq ($(strip $(MCU_FAMILY)),MIMXRT1062)
82 $(call EXEC_TEENSY)
83else ifeq ($(strip $(MCU_FAMILY)),STM32)
84 $(call EXEC_DFU_UTIL)
85else
86 $(PRINT_OK); $(SILENT) || printf "$(MSG_FLASH_BOOTLOADER)"
87endif