1
0
Fork 0
mirror of https://github.com/iNavFlight/inav.git synced 2025-07-22 07:45:24 +03:00
inav/make/openocd.mk

49 lines
1.2 KiB
Makefile

.PHONY: .FORCE openocd-cfg $(OPENOCD_CFG) openocd-run openocd-flash
OPENOCD_CFG ?= $(TARGET_OBJ_DIR)/openocd.cfg
CLEAN_ARTIFACTS += $(OPENOCD_CFG)
OPENOCD_CMD ?= openocd
STLINK ?= 2
ifeq ($(OPENOCD_INTERFACE),)
ifeq ($(STLINK),1)
OPENOCD_INTERFACE := stlink-v1
else ifeq ($(STLINK),2)
OPENOCD_INTERFACE := stlink-v2
else ifeq ($(STLINK),2.1)
OPENOCD_INTERFACE := stlink-v2-1
else
$(error Uknown ST Link version $(STLINK))
endif
endif
ifeq ($(OPENOCD_TARGET),)
ifeq ($(TARGET_MCU_GROUP),STM32F3)
OPENOCD_TARGET := stm32f3x
else ifeq ($(TARGET_MCU_GROUP),STM32F4)
OPENOCD_TARGET := stm32f4x
else ifeq ($(TARGET_MCU_GROUP),STM32F7)
OPENOCD_TARGET := stm32f7x
endif
endif
ifeq ($(OPENOCD_TARGET),)
$(warning Unknown OPENOCD_TARGET)
endif
OPENOCD_CMDLINE := $(OPENOCD_CMD) -f $(OPENOCD_CFG)
openocd-cfg: $(OPENOCD_CFG)
$(OPENOCD_CFG): .FORCE
$(V1) mkdir -p $(dir $@)
$(V1) echo "source [find interface/$(OPENOCD_INTERFACE).cfg]" > $@
$(V1) echo "source [find target/$(OPENOCD_TARGET).cfg]" >> $@
openocd-run: $(OPENOCD_CFG)
$(OPENOCD_CMDLINE)
openocd-flash: $(TARGET_ELF) $(OPENOCD_CFG)
(echo "halt; program $(realpath $<) verify reset" | nc -4 localhost 4444 2>/dev/null) || \
$(OPENOCD_CMDLINE) -c "program $< verify reset exit"