1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

Merge pull request #11545 from cladmi/pr/kinetis/flash_no_arm_toolchain

cpu/kinetis: allow flashing without toolchain
This commit is contained in:
Juan I Carrano 2019-05-29 13:51:30 +02:00 committed by GitHub
commit 245f04a33d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 11 additions and 15 deletions

View File

@ -22,9 +22,6 @@ export OPENOCD_PRE_VERIFY_CMDS += \
-c 'load_image $(RIOTCPU)/$(CPU)/dist/wdog-disable.bin 0x20000000 bin' \
-c 'resume 0x20000000'
export OPENOCD_EXTRA_INIT
FLASHDEPS += $(RIOTCPU)/$(CPU)/dist/wdog-disable.bin
export OPENOCD_CONFIG ?= $(RIOTBOARD)/common/frdm/dist/old-openocd-$(CPU_FAMILY).cfg
endif

View File

@ -58,8 +58,6 @@ export OPENOCD_PRE_VERIFY_CMDS += \
-c 'resume 0x20000000'
export PRE_FLASH_CHECK_SCRIPT = $(RIOTCPU)/$(CPU)/dist/check-fcfield.sh
FLASHDEPS += $(RIOTCPU)/$(CPU)/dist/wdog-disable.bin
# this board uses openocd
include $(RIOTMAKE)/tools/openocd.inc.mk

View File

@ -10,8 +10,6 @@ export CPU_MODEL ?= mkw21d256vha5
PORT_LINUX ?= /dev/ttyACM0
PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbmodem*)))
FLASHDEPS += $(RIOTCPU)/$(CPU)/dist/wdog-disable.bin
# We need special handling of the watchdog if we want to speed up the flash
# verification by using the MCU to compute the image checksum after flashing.
# wdog-disable.bin is a precompiled binary which will disable the watchdog and

View File

@ -47,8 +47,4 @@ USEMODULE += periph_mcg
endif
USEMODULE += periph_wdog
# Define a recipe to build the watchdog disable binary, used when flashing
$(RIOTCPU)/$(CPU)/dist/wdog-disable.bin: $(RIOTCPU)/$(CPU)/dist/wdog-disable.s
$(Q)$(MAKE) -C $(RIOTCPU)/$(CPU)/dist/ $(notdir $@)
include $(RIOTMAKE)/arch/cortexm.inc.mk

View File

@ -6,10 +6,15 @@ This directory contains tools for working with K60 CPUs.
Watchdog disable
----------------
wdog-disable.bin is a location-independent watchdog disable function with a breakpoint instruction at the end. Useful for disabling the watchdog directly from OpenOCD.
wdog-disable.bin is a location-independent watchdog disable function with a
breakpoint instruction at the end. Useful for disabling the watchdog directly
from OpenOCD.
Usage:
openocd -c 'reset halt' \
-c 'load_image wdog-disable.bin 0x20000000 bin' \
-c 'resume 0x20000000' # watchdog is disabled and core halted
The file is saved generated in the repository to remove the need to have a
compiler when flashing. It is only 34 bytes binary.

View File

@ -12,6 +12,8 @@
# @author Joakim Nohlgård <joakim.nohlgard@eistec.se>
# @author Francisco Molina <francisco.molina@inria.fr>
: ${OBJDUMP:=arm-none-eabi-objdump}
# elf, hex or bin file to flash
FLASHFILE="$1"
@ -27,11 +29,11 @@ EXPECTED_FCFIELD="^fffffffffffffffffffffffffe..ffff$"
get_fc_field()
{
if [ ${1##*.} = elf ]; then
arm-none-eabi-objdump -j.fcfield -s "${1}"
"${OBJDUMP}" -j.fcfield -s "${1}"
elif [ ${1##*.} = bin ]; then
arm-none-eabi-objdump --start-address=${FCFIELD_START} --stop-address=${FCFIELD_END} -bbinary -marm ${1} -s
"${OBJDUMP}" --start-address=${FCFIELD_START} --stop-address=${FCFIELD_END} -bbinary -marm ${1} -s
elif [ ${1##*.} = hex ]; then
arm-none-eabi-objdump --start-address=${FCFIELD_START} --stop-address=${FCFIELD_END} ${1} -s
"${OBJDUMP}" --start-address=${FCFIELD_START} --stop-address=${FCFIELD_END} ${1} -s
else
echo "Unkown file extension: ${1##*.}"
exit 1

BIN
cpu/kinetis/dist/wdog-disable.bin vendored Normal file

Binary file not shown.