storage_data,
8)) {
ao_cmd_put16((uint16_t) i);
- for (j = 0; j < 7; j++) {
+ for (j = 0; j < 8; j++) {
putchar(' ');
ao_cmd_put8(storage_data[j]);
}
}
}
+#if 0
+
+/* not enough space for this today
+ */
static void
ao_storage_store(void) __reentrant
{
addr++;
}
}
+#endif
void
ao_storage_zap(void) __reentrant
ao_storage_erase((uint32_t) ao_cmd_lex_i << 8);
}
+void
+ao_storage_zapall(void) __reentrant
+{
+ uint32_t pos;
+
+ ao_cmd_white();
+ if (!ao_match_word("DoIt"))
+ return;
+ for (pos = 0; pos < ao_storage_config; pos += ao_storage_block)
+ ao_storage_erase(pos);
+}
+
void
ao_storage_info(void) __reentrant
{
}
__code struct ao_cmds ao_storage_cmds[] = {
- { 'f', ao_storage_info, "f Show storage info" },
- { 'e', ao_storage_dump, "e <block> Dump a block of flash data" },
- { 'w', ao_storage_store,"w <block> <start> <len> <data> ... Write data to flash" },
- { 'z', ao_storage_zap, "z <block> Erase flash containing <block>" },
- { 0, ao_storage_zap, NULL },
+ { ao_storage_info, "f\0Show storage" },
+ { ao_storage_dump, "e <block>\0Dump flash" },
+#ifdef HAS_STORAGE_DBG
+ { ao_storage_store, "w <block> <start> <len> <data> ...\0Write data to flash" },
+#endif
+ { ao_storage_zap, "z <block>\0Erase <block>" },
+ { ao_storage_zapall,"Z <key>\0Erase all. <key> is doit with D&I" },
+ { 0, NULL },
};
void