Build options for WIN32 (using mingw)
[bootloader] / cli / boot.c
index 7a3e26e..087b47a 100644 (file)
 #include "memory.h"
 
 #define BAUD_RATE 19200
+
+#define STRINGIFY(n) #n
+
+#ifdef DEFPORT
+#define PORT_NAME STRINGIFY(DEFPORT)
+#else 
 #define PORT_NAME "/dev/ttyUSB0"
+#endif
+
+#ifdef _WIN32
+static void keypress(void)
+{
+       printf("Press ENTER to exit\n");
+       getchar();
+}
+#else
+static void keypress(void) {}
+#endif
 
 
 void usage(const char * name)
@@ -170,6 +187,7 @@ int main(int argc, char **argv)
 
        if (!idonly && optind >= argc) {
                loge("Error: missing hexfile");
+               keypress();
                return 1;
        }
 
@@ -179,6 +197,7 @@ int main(int argc, char **argv)
                FILE * fd = NULL;
                if ((fd = fopen(argv[optind], "r"))==NULL) {
                        loge("Error opening %s: %s", argv[optind], strerror(errno));
+                       keypress();
                        return 1;
                }
                ram = load_ihex(fd);
@@ -190,11 +209,15 @@ int main(int argc, char **argv)
 
        logd("open serial port %s at %d baud", port, baud);
        port_t * pt = serial_open(port, baud);
-       if (pt == NULL) return 1;
+       if (pt == NULL) {
+               keypress();
+               return 1;
+       }
 
        uint16_t maxmem;
        uint16_t devid;
        if (loader_connect(pt, &maxmem, &devid)) {
+               keypress();
                return 1;
        }
 
@@ -208,6 +231,7 @@ int main(int argc, char **argv)
                        logi("  Max Mem: %d", dev->memsize );
                }
 
+               keypress();
                return 0;
        }
        if (dev) logd("Device Name: %s", dev->name);
@@ -215,6 +239,7 @@ int main(int argc, char **argv)
        /* check that the selected program will fit on this device */
        if (makesafe_mem(&ram, maxmem)) {
                serial_close(pt);
+               keypress();
                return 1;
        }
        logd("After re-organisation");
@@ -231,6 +256,7 @@ int main(int argc, char **argv)
        /* finished */
        serial_close(pt);
        logd("done.");
+       keypress();
        return 0;
 
 }