From d4ca2644a3143d85b78d6065da58ef5e8c0fa7fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABtan=20Harter?= <gaetan.harter@fu-berlin.de> Date: Wed, 18 Apr 2018 17:54:07 +0200 Subject: [PATCH] boards/iotlab-m3|a8: fix openocd configuration iotlab-m3 boards always ended up not being able to flash after time. This changes managed to fix and flash boards that where able to be flashed with the deprecated `ft2232` driver and not with the `ftdi` driver used in RIOT. It combines configuration from openocd, iot-lab, RIOT config and Alexandre Abadie feedback * http://repo.or.cz/openocd.git/blob/HEAD:/tcl/interface/ftdi/iotlab-usb.cfg * ftdi configuration * https://github.com/iot-lab/iot-lab-gateway/blob/2.4.1/gateway_code/static/iot-lab-m3.cfg * `trst_and_srst` config * Alexandre feedback and http://openocd.org/doc/html/Reset-Configuration.html * 'connect_assert_srst' reset configuration * it prevents errors in the output on first flash * should help on boards with invalid code * It was taken from what Alexandre found for board 'b-l072z-lrwan1' * It requires using '-c reset halt' instead of '-c halt' before debug * RIOT * Keep the `configure -rtos` auto --- boards/common/iotlab/Makefile.include | 4 ++++ boards/iotlab-a8-m3/dist/openocd.cfg | 11 +++++------ boards/iotlab-m3/dist/openocd.cfg | 11 +++++------ 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/boards/common/iotlab/Makefile.include b/boards/common/iotlab/Makefile.include index 99b3803c74..c3f9abf595 100644 --- a/boards/common/iotlab/Makefile.include +++ b/boards/common/iotlab/Makefile.include @@ -10,6 +10,10 @@ PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbserial*B))) export BAUD = 500000 include $(RIOTMAKE)/tools/serial.inc.mk +# call a 'reset halt' command before starting the debugger +# it is required as `connect_assert_srst` is set +export OPENOCD_DBG_START_CMD = -c 'reset halt' + # this board uses openocd include $(RIOTMAKE)/tools/openocd.inc.mk diff --git a/boards/iotlab-a8-m3/dist/openocd.cfg b/boards/iotlab-a8-m3/dist/openocd.cfg index d9b5985367..0b9d3c7900 100644 --- a/boards/iotlab-a8-m3/dist/openocd.cfg +++ b/boards/iotlab-a8-m3/dist/openocd.cfg @@ -1,9 +1,8 @@ -interface ftdi -ftdi_vid_pid 0x0403 0x6010 +source [find interface/ftdi/iotlab-usb.cfg] +source [find target/stm32f1x.cfg] -ftdi_layout_init 0x0c08 0x0c2b -ftdi_layout_signal nTRST -data 0x0800 -ftdi_layout_signal nSRST -data 0x0400 +# use combined on interfaces or targets that can't set TRST/SRST separately +# Using connect_assert_srst removes errors on first flash +reset_config trst_and_srst connect_assert_srst -source [find target/stm32f1x.cfg] $_TARGETNAME configure -rtos auto diff --git a/boards/iotlab-m3/dist/openocd.cfg b/boards/iotlab-m3/dist/openocd.cfg index d9b5985367..0b9d3c7900 100644 --- a/boards/iotlab-m3/dist/openocd.cfg +++ b/boards/iotlab-m3/dist/openocd.cfg @@ -1,9 +1,8 @@ -interface ftdi -ftdi_vid_pid 0x0403 0x6010 +source [find interface/ftdi/iotlab-usb.cfg] +source [find target/stm32f1x.cfg] -ftdi_layout_init 0x0c08 0x0c2b -ftdi_layout_signal nTRST -data 0x0800 -ftdi_layout_signal nSRST -data 0x0400 +# use combined on interfaces or targets that can't set TRST/SRST separately +# Using connect_assert_srst removes errors on first flash +reset_config trst_and_srst connect_assert_srst -source [find target/stm32f1x.cfg] $_TARGETNAME configure -rtos auto -- GitLab