Merge pull request #16050 from aabadie/pr/make/edbg_script
tools/edbg: add and use wrapper shell script
This commit is contained in:
commit
e0211f4574
51
dist/tools/edbg/edbg.sh
vendored
Executable file
51
dist/tools/edbg/edbg.sh
vendored
Executable file
@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Default edbg command
|
||||
: "${EDBG:=edbg}"
|
||||
# Edbg command base arguments
|
||||
: "${EDBG_ARGS:=}"
|
||||
|
||||
test_imagefile() {
|
||||
if [ ! -f "${IMAGE_FILE}" ]; then
|
||||
echo "Error: Unable to locate IMAGE_FILE"
|
||||
echo " (${IMAGE_FILE})"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
do_flash() {
|
||||
IMAGE_FILE=$1
|
||||
test_imagefile
|
||||
|
||||
# Configure edbg flash flags
|
||||
local _fflags="${EDBG_ARGS} --verbose --file ${IMAGE_FILE} --verify"
|
||||
|
||||
# flash device
|
||||
sh -c "${EDBG} ${_fflags} || ${EDBG} ${_fflags} --program" && echo 'Done flashing'
|
||||
}
|
||||
|
||||
do_reset() {
|
||||
sh -c "${EDBG} ${EDBG_ARGS}"
|
||||
}
|
||||
|
||||
#
|
||||
# parameter dispatching
|
||||
#
|
||||
ACTION="$1"
|
||||
shift # pop $1 from $@
|
||||
|
||||
case "${ACTION}" in
|
||||
flash)
|
||||
echo "### Flashing Target ###"
|
||||
do_flash "$@"
|
||||
;;
|
||||
reset)
|
||||
echo "### Resetting Target ###"
|
||||
do_reset
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {flash|reset}"
|
||||
echo " flash <flashfile>"
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
@ -1,9 +1,11 @@
|
||||
include $(RIOTMAKE)/tools/edbg-devices.inc.mk
|
||||
|
||||
RIOT_EDBG = $(RIOTTOOLS)/edbg/edbg
|
||||
EDBG ?= $(RIOT_EDBG)
|
||||
FLASHER ?= $(EDBG)
|
||||
# Edbg use a bin file for flashing
|
||||
FLASHFILE ?= $(BINFILE)
|
||||
|
||||
EDBG ?= $(RIOTTOOLS)/edbg/edbg
|
||||
FLASHDEPS += $(EDBG)
|
||||
|
||||
# Use USB serial number to select device when more than one is connected
|
||||
# Use /dist/tools/usb-serial/list-ttys.sh to find out serial number.
|
||||
# Usage:
|
||||
@ -15,22 +17,21 @@ endif
|
||||
|
||||
# Set offset according to IMAGE_OFFSET if it's defined
|
||||
EDBG_ARGS += $(if $(IMAGE_OFFSET),--offset $(IMAGE_OFFSET))
|
||||
EDBG_ARGS += --target $(EDBG_DEVICE_TYPE)
|
||||
|
||||
FFLAGS ?= $(EDBG_ARGS) --target $(EDBG_DEVICE_TYPE) --verbose \
|
||||
--file $(FLASHFILE)
|
||||
EDBG_TARGETS = flash flash-only reset
|
||||
# Export EDBG to required targets
|
||||
$(call target-export-variables,$(EDBG_TARGETS),EDBG)
|
||||
|
||||
ifeq ($(RIOT_EDBG),$(FLASHER))
|
||||
FLASHDEPS += $(RIOT_EDBG)
|
||||
endif
|
||||
RESET ?= $(EDBG)
|
||||
RESET_FLAGS ?= $(EDBG_ARGS) --target $(EDBG_DEVICE_TYPE)
|
||||
# Export EDBG_ARGS to required targets
|
||||
$(call target-export-variables,$(EDBG_TARGETS),EDBG_ARGS)
|
||||
|
||||
define edbg-flash-recipe
|
||||
$(call check_cmd,$(FLASHER),Flash program)
|
||||
$(FLASHER) $(FFLAGS) --verify || $(FLASHER) $(FFLAGS) --verify --program
|
||||
endef
|
||||
# Set flasher and reset for the RIOT build system
|
||||
FLASHER ?= $(RIOTTOOLS)/edbg/edbg.sh
|
||||
FFLAGS ?= flash $(FLASHFILE)
|
||||
|
||||
flash-recipe = $(edbg-flash-recipe)
|
||||
RESET ?= $(RIOTTOOLS)/edbg/edbg.sh
|
||||
RESET_FLAGS ?= reset
|
||||
|
||||
# use openocd for debugging, must be included at the end so FLASHER/RESET
|
||||
# variables are already set for edbg.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user