summaryrefslogtreecommitdiff
path: root/common/memory_commands.c
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2012-05-25 13:17:21 -0700
committerRandall Spangler <rspangler@chromium.org>2012-05-25 13:34:06 -0700
commite704c712ad473160e97717f139ab3929bcd249c1 (patch)
tree1b87c7ad05a1e97bd04326adc7f6b6239407b10e /common/memory_commands.c
parent89e1d5a1219c87d90e1362716f799b16aad5c921 (diff)
downloadchrome-ec-e704c712ad473160e97717f139ab3929bcd249c1.tar.gz
Better help for console commands
Additional help messages and usage are gated by CONFIG_CONSOLE_CMDHELP, so we can turn it on if there's space (adds about 3KB to image size) and turn it off when there isn't. Signed-off-by: Randall Spangler <rspangler@chromium.org> BUG=none TEST=manual 1) help 2) help list 3) help gpioset 4) gpioset -> wrong number of params 5) gpioset fred 0 -> param1 bad 6) gpioset cpu_prochot fred -> param2 bad Change-Id: Ibe99f37212020f763ebe65a068e6aa83a809a370
Diffstat (limited to 'common/memory_commands.c')
-rw-r--r--common/memory_commands.c33
1 files changed, 24 insertions, 9 deletions
diff --git a/common/memory_commands.c b/common/memory_commands.c
index a313379e86..46df50e74d 100644
--- a/common/memory_commands.c
+++ b/common/memory_commands.c
@@ -13,11 +13,18 @@ static int command_write_word(int argc, char **argv)
{
volatile uint32_t *address;
uint32_t value;
+ char *e;
if (argc != 3)
- return EC_ERROR_INVAL;
- address = (uint32_t*)strtoi(argv[1], NULL, 0);
- value = strtoi(argv[2], NULL, 0);
+ return EC_ERROR_PARAM_COUNT;
+
+ address = (uint32_t *)strtoi(argv[1], &e, 0);
+ if (*e)
+ return EC_ERROR_PARAM1;
+
+ value = strtoi(argv[2], &e, 0);
+ if (*e)
+ return EC_ERROR_PARAM2;
ccprintf("write 0x%p = 0x%08x\n", address, value);
cflush(); /* Flush before writing in case this crashes */
@@ -26,24 +33,32 @@ static int command_write_word(int argc, char **argv)
return EC_SUCCESS;
}
-DECLARE_CONSOLE_COMMAND(ww, command_write_word);
-DECLARE_CONSOLE_COMMAND(writeword, command_write_word);
+DECLARE_CONSOLE_COMMAND(ww, command_write_word,
+ "addr value",
+ "Write a word to memory",
+ NULL);
static int command_read_word(int argc, char **argv)
{
volatile uint32_t *address;
uint32_t value;
+ char *e;
if (argc != 2)
- return EC_ERROR_INVAL;
+ return EC_ERROR_PARAM_COUNT;
+
+ address = (uint32_t *)strtoi(argv[1], &e, 0);
+ if (*e)
+ return EC_ERROR_PARAM1;
- address = (uint32_t*)strtoi(argv[1], NULL, 0);
value = *address;
ccprintf("read 0x%p = 0x%08x\n", address, value);
return EC_SUCCESS;
}
-DECLARE_CONSOLE_COMMAND(rw, command_read_word);
-DECLARE_CONSOLE_COMMAND(readword, command_read_word);
+DECLARE_CONSOLE_COMMAND(rw, command_read_word,
+ "addr",
+ "Read a word from memory",
+ NULL);