Firmware/CLI: add commands 'hexdump' and 'loadraw'

This commit is contained in:
Maximilian Rehkopf 2011-10-08 17:11:35 +02:00
parent 91d8637dfe
commit d1cb50828c

View File

@ -58,8 +58,8 @@ static char *curchar;
/* Word lists */ /* Word lists */
static char command_words[] = static char command_words[] =
"cd\0reset\0sreset\0dir\0ls\0test\0resume\0loadrom\0loadraw\0saveraw\0put\0d4\0vmode\0mapper\0settime\0time\0setfeature\0"; "cd\0reset\0sreset\0dir\0ls\0test\0resume\0loadrom\0loadraw\0saveraw\0put\0d4\0vmode\0mapper\0settime\0time\0setfeature\0hexdump\0";
enum { CMD_CD = 0, CMD_RESET, CMD_SRESET, CMD_DIR, CMD_LS, CMD_TEST, CMD_RESUME, CMD_LOADROM, CMD_LOADRAW, CMD_SAVERAW, CMD_PUT, CMD_D4, CMD_VMODE, CMD_MAPPER, CMD_SETTIME, CMD_TIME, CMD_SETFEATURE }; enum { CMD_CD = 0, CMD_RESET, CMD_SRESET, CMD_DIR, CMD_LS, CMD_TEST, CMD_RESUME, CMD_LOADROM, CMD_LOADRAW, CMD_SAVERAW, CMD_PUT, CMD_D4, CMD_VMODE, CMD_MAPPER, CMD_SETTIME, CMD_TIME, CMD_SETFEATURE, CMD_HEXDUMP };
/* ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------- */
/* Parse functions */ /* Parse functions */
@ -288,6 +288,11 @@ static void cmd_loadrom(void) {
set_mcu_ovr(0); set_mcu_ovr(0);
} }
static void cmd_loadraw(void) {
uint32_t address = parse_unsigned(0,16777216);
load_sram((uint8_t*)curchar, address);
}
static void cmd_saveraw(void) { static void cmd_saveraw(void) {
uint32_t address = parse_unsigned(0,16777216); uint32_t address = parse_unsigned(0,16777216);
uint32_t length = parse_unsigned(0,16777216); uint32_t length = parse_unsigned(0,16777216);
@ -391,6 +396,11 @@ void cmd_setfeature(void) {
fpga_set_features(feat); fpga_set_features(feat);
} }
void cmd_hexdump(void) {
uint32_t offset = parse_unsigned(0, 16777215);
uint32_t len = parse_unsigned(0, 16777216);
sram_hexdump(offset, len);
}
/* ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------- */
/* CLI interface functions */ /* CLI interface functions */
/* ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------- */
@ -481,6 +491,10 @@ void cli_loop(void) {
cmd_loadrom(); cmd_loadrom();
break; break;
case CMD_LOADRAW:
cmd_loadraw();
break;
case CMD_SAVERAW: case CMD_SAVERAW:
cmd_saveraw(); cmd_saveraw();
break; break;
@ -516,6 +530,10 @@ void cli_loop(void) {
case CMD_SETFEATURE: case CMD_SETFEATURE:
cmd_setfeature(); cmd_setfeature();
break; break;
case CMD_HEXDUMP:
cmd_hexdump();
break;
} }
} }
} }