X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fkernel%2Fao_cmd.c;h=10716afd5e8e0ffe9fab17fb459874a6dfa748d5;hb=1934468e96ea9d179abf6e3e728b6b14ce793f46;hp=4ebaa6079368ec80164a8176d8d010914552cc9d;hpb=24167015705ae831692b95735968b04a876f935e;p=fw%2Faltos diff --git a/src/kernel/ao_cmd.c b/src/kernel/ao_cmd.c index 4ebaa607..10716afd 100644 --- a/src/kernel/ao_cmd.c +++ b/src/kernel/ao_cmd.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 @@ -23,7 +24,11 @@ __pdata uint32_t ao_cmd_lex_u32; __pdata char ao_cmd_lex_c; __pdata enum ao_cmd_status ao_cmd_status; +#if AO_PYRO_NUM +#define CMD_LEN 128 +#else #define CMD_LEN 48 +#endif static __xdata char cmd_line[CMD_LEN]; static __pdata uint8_t cmd_len; @@ -274,20 +279,35 @@ version(void) printf("manufacturer %s\n" "product %s\n" "serial-number %u\n" -#if HAS_FLIGHT +#if HAS_FLIGHT || HAS_TRACKER "current-flight %u\n" #endif #if HAS_LOG "log-format %u\n" +#if !DISABLE_LOG_SPACE + "log-space %lu\n" +#endif +#endif +#if defined(AO_BOOT_APPLICATION_BASE) && defined(AO_BOOT_APPLICATION_BOUND) + "program-space %u\n" +#endif +#if AO_VALUE_32 + "altitude-32 1\n" #endif , ao_manufacturer , ao_product , ao_serial_number -#if HAS_FLIGHT +#if HAS_FLIGHT || HAS_TRACKER , ao_flight_number #endif #if HAS_LOG , ao_log_format +#if !DISABLE_LOG_SPACE + , (unsigned long) ao_storage_log_max +#endif +#endif +#if defined(AO_BOOT_APPLICATION_BASE) && defined(AO_BOOT_APPLICATION_BOUND) + , (uint32_t) AO_BOOT_APPLICATION_BOUND - (uint32_t) AO_BOOT_APPLICATION_BASE #endif ); printf("software-version %s\n", ao_version); @@ -374,11 +394,17 @@ ao_cmd(void) if (func) break; } +#if HAS_MONITOR + ao_mutex_get(&ao_monitoring_mutex); +#endif if (func) (*func)(); else ao_cmd_status = ao_cmd_syntax_error; report(); +#if HAS_MONITOR + ao_mutex_put(&ao_monitoring_mutex); +#endif } }