diff options
Diffstat (limited to 'avr/command_tbl.c')
-rw-r--r-- | avr/command_tbl.c | 201 |
1 files changed, 201 insertions, 0 deletions
diff --git a/avr/command_tbl.c b/avr/command_tbl.c new file mode 100644 index 0000000..69f6273 --- /dev/null +++ b/avr/command_tbl.c @@ -0,0 +1,201 @@ + +#include "common.h" + +#include "command.h" +#include "cmd_mem.h" + + +extern int do_help(cmd_tbl_t *, int, int, char * const []); +extern int do_echo(cmd_tbl_t *, int, int, char * const []); +extern int do_env_print(cmd_tbl_t *, int, int, char * const []); +extern int do_env_set(cmd_tbl_t *, int, int, char * const []); +extern int do_env_save(cmd_tbl_t *, int, int, char * const []); +extern int do_loadf(cmd_tbl_t *, int, int, char * const []); +extern int do_go(cmd_tbl_t *, int, int, char * const []); +extern int do_restart(cmd_tbl_t *, int, int, char * const []); +extern int do_dump_mem(cmd_tbl_t *, int, int, char * const []); +extern int do_eep_cp(cmd_tbl_t *, int, int, char * const []); +extern int do_busreq_pulse(cmd_tbl_t *, int, int, char * const []); + + +cmd_tbl_t cmd_tbl[] = { + +#ifdef DEBUG +CMD_TBL_ITEM( + !mdr, 3, 1, do_dump_mem, + "RAM dump", + "address [count]" +), +CMD_TBL_ITEM( + !mde, 3, 1, do_dump_mem, + "EEPROM dump", + "address [count]" +), +CMD_TBL_ITEM( + !cpe, 4, 0, do_eep_cp, + "EEPROM copy", + "source target count" +), +#endif +CMD_TBL_ITEM( + mstep, 2, 1, do_busreq_pulse, + "execute one M cycle", + "[count]\n" + " - repeat count times" +), +CMD_TBL_ITEM( + echo, CONFIG_SYS_MAXARGS, 1, do_echo, + "echo args to console", + "[args..]\n" + " - echo args to console; \\c suppresses newline" +), +CMD_TBL_ITEM_COMPLETE( + run, CONFIG_SYS_MAXARGS, 1, do_run, + "run commands in an environment variable", + "var [...]\n" + " - run the commands in the environment variable(s) 'var'", + var_complete +), +CMD_TBL_ITEM_COMPLETE( + printenv, CONFIG_SYS_MAXARGS, 1, do_env_print, + "print environment variables", + "\n" + " - print values of all environment variables\n" + "printenv name ...\n" + " - print value of environment variable 'name'", + var_complete +), +CMD_TBL_ITEM_COMPLETE( + setenv, CONFIG_SYS_MAXARGS, 0, do_env_set, + "set environment variables", + "name value ...\n" + " - set environment variable 'name' to 'value ...'\n" + "setenv name\n" + " - delete environment variable 'name'", + var_complete +), +CMD_TBL_ITEM( + saveenv, 1, 0, do_env_save, + "save environment variables to persistent storage", + "" +), + +CMD_TBL_ITEM( + loadf, 1, 0, do_loadf, + "load srec_cat prepared image from controller flash", + "" +), +CMD_TBL_ITEM( + go, 2, 0, do_go, + "start application at address 'addr'", + "addr\n" + " - start application at address 'addr'" +// "\n" +// " passing 'arg' as arguments" +), +CMD_TBL_ITEM( + reset, 1, 0, do_reset, + "Keep CPU in RESET state", + "" +), +CMD_TBL_ITEM( + restart, 1, 0, do_restart, + "Perform RESET of the CPU", + "" +), + +CMD_TBL_ITEM( + md, 3, 1, do_mem_md, + "memory display", + "address [# of objects]" +), +CMD_TBL_ITEM( + mm, 2, 1, do_mem_mm, + "memory modify (auto-incrementing address)", + "address" +), +CMD_TBL_ITEM( + nm, 2, 1, do_mem_nm, + "memory modify (constant address)", + "address" +), +CMD_TBL_ITEM( + mw, 4, 1, do_mem_mw, + "memory write (fill)", + "address value [count]" +), +CMD_TBL_ITEM( + cp, 4, 1, do_mem_cp, + "memory copy", + "source target count" +), +CMD_TBL_ITEM( + cmp, 4, 1, do_mem_cmp, + "memory compare", + "addr1 addr2 count" +), +CMD_TBL_ITEM( + base, 2, 1, do_mem_base, + "print or set address offset", + "\n" + " - print address offset for memory commands\n" + "base offset\n" + " - set address offset for memory commands to 'offset'" +), +CMD_TBL_ITEM( + loop, 3, 1, do_mem_loop, + "infinite loop on address range", + "address number_of_bytes" +), +#ifdef CONFIG_LOOPW +CMD_TBL_ITEM( + loopw, 4, 1, do_mem_loopw, + "infinite write loop on address range", + "address number_of_bytes data_to_write" +), +#endif /* CONFIG_LOOPW */ + +#ifdef CONFIG_CMD_MEMTEST +CMD_TBL_ITEM( + mtest, 5, 1, do_mem_mtest, + "simple RAM read/write test", + "[start [end [pattern [iterations]]]]" +), +#endif /* CONFIG_CMD_MEMTEST */ + +#ifdef CONFIG_MX_CYCLIC +CMD_TBL_ITEM( + mdc, 4, 1, do_mem_mdc, + "memory display cyclic", + "address count delay(ms)" +), +CMD_TBL_ITEM( + mwc, 4, 1, do_mem_mwc, + "memory write cyclic", + "address value delay(ms)" +), +#endif /* CONFIG_MX_CYCLIC */ + + +CMD_TBL_ITEM( + help, CONFIG_SYS_MAXARGS, 1, do_help, + "print command description/usage", + "\n" + " - print brief description of all commands\n" + "help command ...\n" + " - print detailed usage of 'command'" +), + +/* This does not use the CMD_TBL_ITEM macro as ? can't be used in symbol names */ + {FSTR("?"), CONFIG_SYS_MAXARGS, 1, do_help, + FSTR("alias for 'help'"), +#ifdef CONFIG_SYS_LONGHELP + FSTR(""), +#endif /* CONFIG_SYS_LONGHELP */ +#ifdef CONFIG_AUTO_COMPLETE + 0, +#endif +}, +/* Mark end of table */ +{ 0 }, +}; |