Add --reset option to trigger a reset both before and after flashing.

pull/191/head
Jim Paris 2013-10-31 18:02:55 -04:00
rodzic 73dccb68ed
commit 99e8194f7f
1 zmienionych plików z 20 dodań i 2 usunięć

Wyświetl plik

@ -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 <size>");
puts("stlinkv1 command line: ./flash [--reset] {read|write} /dev/sgX path addr <size>");
puts("stlinkv1 command line: ./flash /dev/sgX erase");
puts("stlinkv2 command line: ./flash {read|write} path addr <size>");
puts("stlinkv2 command line: ./flash [--reset] {read|write} path addr <size>");
puts("stlinkv2 command line: ./flash erase");
puts(" use hex format for addr and <size>");
}
@ -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;