X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fproduct%2Fao_flash_task.c;h=a1daf06a70f9da1514565e329cec8daa538aaaec;hb=HEAD;hp=9a12add659a00af10bc62b48b5042b62f834f73e;hpb=8a114bac1145359f3953ce70f049a6be71df5300;p=fw%2Faltos diff --git a/src/product/ao_flash_task.c b/src/product/ao_flash_task.c index 9a12add6..a1daf06a 100644 --- a/src/product/ao_flash_task.c +++ b/src/product/ao_flash_task.c @@ -3,7 +3,8 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -25,19 +26,29 @@ void ao_panic(uint8_t reason) { (void) reason; + for (;;); } -void -ao_put_string(__code char *s) +static void +ao_put_stringn(const char *s, int max) { char c; - while ((c = *s++)) { + while (max--) { + c = *s++; + if (!c) + break; if (c == '\n') ao_usb_putchar('\r'); ao_usb_putchar(c); } } +void +ao_put_string(const char *s) +{ + ao_put_stringn(s, 65535); +} + static void ao_application(void) { @@ -47,7 +58,7 @@ ao_application(void) static uint32_t ao_get_hex32(void) { - int8_t n; + int n; uint32_t v = 0; for (;;) { @@ -64,7 +75,7 @@ ao_get_hex32(void) n = n - ('A' - 10); else break; - v = (v << 4) | n; + v = (v << 4) | (uint8_t) n; n = ao_usb_getchar(); } return v; @@ -147,7 +158,7 @@ ao_show_version(void) ao_put_hex((uint32_t) AO_BOOT_APPLICATION_BASE); ao_usb_putchar(' '); ao_put_hex((uint32_t) AO_BOOT_APPLICATION_BOUND); - ao_put_string("\nsoftware-version "); ao_put_string(ao_version); + ao_put_string("\nsoftware-version "); ao_put_stringn(ao_version, AO_MAX_VERSION); ao_put_string("\n"); }