diff --git a/linux/upload_reset b/linux/upload_reset index 26985b857..4fbe3c16f 100755 Binary files a/linux/upload_reset and b/linux/upload_reset differ diff --git a/src/upload_reset/unix/upload_reset.c b/src/upload_reset/unix/upload_reset.c index 975ef258d..8c22cc3ad 100644 --- a/src/upload_reset/unix/upload_reset.c +++ b/src/upload_reset/unix/upload_reset.c @@ -118,44 +118,47 @@ int setDTR(unsigned short level) * Maple and Maple mini boards */ -main(int argc, char *argv[]) +int main(int argc, char *argv[]) { - + int ret = 0; if (argc<2 || argc >3) { printf("Usage upload-reset \n\r"); - return; - } - - if (openserial(argv[1])) - { - // Send magic sequence of DTR and RTS followed by the magic word "1EAF" - setRTS(false); - setDTR(false); - setDTR(true); - - usleep(50000L); - - setDTR(false); - setRTS(true); - setDTR(true); - - usleep(50000L); - - setDTR(false); - - usleep(50000L); - - write(fd,"1EAF",4); - - closeserial(); - if (argc==3) - { - usleep(atol(argv[2])*1000L); - } - } - else - { - printf("Failed to open serial device.\n\r"); + ret = 1; } + else { + if (openserial(argv[1])) + { + // Send magic sequence of DTR and RTS followed by the magic word "1EAF" + setRTS(false); + setDTR(false); + setDTR(true); + + usleep(50000L); + + setDTR(false); + setRTS(true); + setDTR(true); + + usleep(50000L); + + setDTR(false); + + usleep(50000L); + + write(fd,"1EAF",4); + + closeserial(); + if (argc==3) + { + usleep(atol(argv[2])*1000L); + } + } + else + { + printf("Failed to open serial device.\n\r"); + ret = 2; + } + } + return ret; }