From 99e8194f7f1b098aa301b66ad75e8c6a3a2b6804 Mon Sep 17 00:00:00 2001 From: Jim Paris Date: Thu, 31 Oct 2013 18:02:55 -0400 Subject: [PATCH] Add --reset option to trigger a reset both before and after flashing. --- flash/main.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/flash/main.c b/flash/main.c index 8f3a149..014b627 100644 --- a/flash/main.c +++ b/flash/main.c @@ -17,13 +17,14 @@ struct opts const char* filename; stm32_addr_t addr; size_t size; + int reset; }; static void usage(void) { - puts("stlinkv1 command line: ./flash {read|write} /dev/sgX path addr "); + puts("stlinkv1 command line: ./flash [--reset] {read|write} /dev/sgX path addr "); puts("stlinkv1 command line: ./flash /dev/sgX erase"); - puts("stlinkv2 command line: ./flash {read|write} path addr "); + puts("stlinkv2 command line: ./flash [--reset] {read|write} path addr "); puts("stlinkv2 command line: ./flash erase"); puts(" use hex format for addr and "); } @@ -37,6 +38,17 @@ static int get_opts(struct opts* o, int ac, char** av) if (ac < 1) return -1; + if (strcmp(av[0], "--reset") == 0) + { + o->reset = 1; + ac--; + av++; + } + else + { + o->reset = 0; + } + /* stlinkv2 */ o->devname = NULL; @@ -123,6 +135,9 @@ int main(int ac, char** av) if (stlink_current_mode(sl) != STLINK_DEV_DEBUG_MODE) stlink_enter_swd_mode(sl); + if (o.reset) + stlink_reset(sl); + // Disable DMA - Set All DMA CCR Registers to zero. - AKS 1/7/2013 if (sl->chip_id == STM32_CHIPID_F4) { @@ -179,6 +194,9 @@ int main(int ac, char** av) } } + if (o.reset) + stlink_reset(sl); + /* success */ err = 0; -- 2.39.5