From 71b74d37409b17a2d431933cd4c5e96cb986d0f7 Mon Sep 17 00:00:00 2001 From: Michael Copland Date: Wed, 22 Jun 2016 13:36:18 +0100 Subject: Properly close and deinitialize the USB connection --- commandline/micronucleus.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'commandline/micronucleus.c') diff --git a/commandline/micronucleus.c b/commandline/micronucleus.c index 14c1761..91dbac4 100644 --- a/commandline/micronucleus.c +++ b/commandline/micronucleus.c @@ -3,7 +3,7 @@ Created: September 2012 (c) 2012 by ihsan Kehribar Changes for Micronucleus protocol version V2.x (c) 2014 T. Bo"scke - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to @@ -76,7 +76,7 @@ int main(int argc, char **argv) { char* usage = "usage: micronucleus [--help] [--run] [--dump-progress] [--fast-mode] [--type intel-hex|raw] [--timeout integer] [--erase-only] filename"; #else char* usage = "usage: micronucleus [--help] [--run] [--dump-progress] [--fast-mode] [--type intel-hex|raw] [--timeout integer] [--erase-only] filename [--no-ansi]"; - #endif + #endif progress_step = 0; progress_total_steps = 5; // steps: waiting, connecting, parsing, erasing, writing, (running)? dump_progress = 0; @@ -238,6 +238,8 @@ int main(int argc, char **argv) { if (res == 1) { // erase disconnection bug workaround printf(">> Eep! Connection to device lost during erase! Not to worry\n"); printf(">> This happens on some computers - reconnecting...\n"); + + micronucleus_disconnect(my_device); my_device = NULL; delay(CONNECT_WAIT); @@ -290,6 +292,8 @@ int main(int argc, char **argv) { printProgress(1.0); } + micronucleus_disconnect(my_device); + printf(">> Micronucleus done. Thank you!\n"); return EXIT_SUCCESS; -- cgit v1.2.3