-__code struct ao_cmds ao_flash_cmds[] = {
- { ao_application, "a\0Switch to application" },
- { ao_block_erase, "e <addr>\0Erase block." },
- { ao_block_write, "W <addr>\0Write block. 256 binary bytes follow newline" },
- { ao_block_read, "R <addr>\0Read block. Returns 256 bytes" },
- { 0, NULL },
-};
+static void
+ao_show_version(void)
+{
+ puts("altos-loader");
+ ao_put_string("manufacturer "); puts(ao_manufacturer);
+ ao_put_string("product "); puts(ao_product);
+ ao_put_string("software-version "); puts(ao_version);
+}
+
+static void
+ao_flash_task(void) {
+ for (;;) {
+ switch (getchar()) {
+ case 'v': ao_show_version(); break;
+ case 'a': ao_application(); break;
+ case 'X': ao_block_erase(); break;
+ case 'W': ao_block_write(); break;
+ case 'R': ao_block_read(); break;
+ }
+ }
+}