X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fcore%2Fao_cmd.c;h=cde68b3991ca062cc4117c1e6a2e96e1f01de035;hb=c1d12a117b36de7fe8dd992959b890bfd1163e81;hp=d0a4663352ff703718b0e4d27ab4834d42e2660d;hpb=8a1cbef0e316e38c80b71d3bac15641fe56e0a99;p=fw%2Faltos diff --git a/src/core/ao_cmd.c b/src/core/ao_cmd.c index d0a46633..cde68b39 100644 --- a/src/core/ao_cmd.c +++ b/src/core/ao_cmd.c @@ -121,10 +121,16 @@ ao_cmd_put8(uint8_t v) putnibble(v & 0xf); } +uint8_t +ao_cmd_is_white(void) +{ + return ao_cmd_lex_c == ' ' || ao_cmd_lex_c == '\t'; +} + void ao_cmd_white(void) { - while (ao_cmd_lex_c == ' ' || ao_cmd_lex_c == '\t') + while (ao_cmd_is_white()) ao_cmd_lex(); } @@ -227,6 +233,12 @@ ao_reboot(void) ao_cmd_white(); if (!ao_match_word("eboot")) return; + /* Delay waiting for the packet master to be turned off + * so that we don't end up back in idle mode because we + * received a packet after boot. + */ + flush(); + ao_delay(AO_SEC_TO_TICKS(1)); ao_arch_reboot(); ao_panic(AO_PANIC_REBOOT); } @@ -251,16 +263,16 @@ static __pdata uint8_t ao_ncmds; static void help(void) { - register uint8_t cmds; - register uint8_t cmd; - register __code struct ao_cmds * cs; + __pdata uint8_t cmds; + __pdata uint8_t cmd; + __code struct ao_cmds * __pdata cs; for (cmds = 0; cmds < ao_ncmds; cmds++) { cs = ao_cmds[cmds]; for (cmd = 0; cs[cmd].func; cmd++) printf("%-45s %s\n", - cs[cmd].help, - cs[cmd].help+1+strlen(cs[cmd].help)); + cs[cmd].help, + cs[cmd].help+1+strlen(cs[cmd].help)); } }