[PATCH] Add 'time' command to show execution of sub command.
Peter Barada
peter.barada at logicpd.com
Sat Oct 29 16:44:32 CEST 2011
Add 'time <cmd> <args>' which executes <cmd> with <args> and shows the
execution time in seconds. Requires get_timer().
Signed-off-by: Peter Barada <peter.barada at gmail.com>
CC: Wolfgang Denk <wd at denx.de>
---
README | 1 +
common/cmd_misc.c | 41 +++++++++++++++++++++++++++++++++++++++++
include/config_cmd_all.h | 1 +
3 files changed, 43 insertions(+), 0 deletions(-)
diff --git a/README b/README
index c05c40a..94743af 100644
--- a/README
+++ b/README
@@ -787,6 +787,7 @@ The following options need to be configured:
(requires CONFIG_CMD_MEMORY)
CONFIG_CMD_SOURCE "source" command Support
CONFIG_CMD_SPI * SPI serial bus support
+ CONFIG_CMD_TIME times execution of u-boot command
CONFIG_CMD_TFTPSRV * TFTP transfer in server mode
CONFIG_CMD_TFTPPUT * TFTP put command (upload)
CONFIG_CMD_TIME * run command and report execution time
diff --git a/common/cmd_misc.c b/common/cmd_misc.c
index 061b1bb..d789d44 100644
--- a/common/cmd_misc.c
+++ b/common/cmd_misc.c
@@ -53,3 +53,44 @@ U_BOOT_CMD(
"N\n"
" - delay execution for N seconds (N is _decimal_ !!!)"
);
+
+#ifdef CONFIG_CMD_TIME
+int do_time(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+ ulong start;
+ ulong delta;
+ cmd_tbl_t *cmdtp2;
+ int ret;
+ unsigned int secs, msecs;
+
+ if (argc < 2)
+ return cmd_usage(cmdtp);
+
+ cmdtp2 = find_cmd(argv[1]);
+ if (!cmdtp2) {
+ printf("Unknown command '%s' - try help\n", argv[1]);
+ return 1;
+ }
+
+ start = get_timer(0);
+
+ /* Execute command */
+ ret = (cmdtp2->cmd)(cmdtp2, flag, argc-1, argv+1);
+
+ delta = get_timer(start);
+
+ secs = (delta * 1000) / CONFIG_SYS_HZ;
+ msecs = secs % 1000;
+ secs /= 1000;
+
+ printf("'%s' took %u.%03u seconds\n", argv[1], secs, msecs);
+ return ret;
+}
+
+U_BOOT_CMD(
+ time , CONFIG_SYS_MAXARGS, 1, do_time,
+ "time execution of command",
+ "command to time\n"
+ " - time execution of command in seconds"
+);
+#endif
diff --git a/include/config_cmd_all.h b/include/config_cmd_all.h
index 9716f9c..77adc3d 100644
--- a/include/config_cmd_all.h
+++ b/include/config_cmd_all.h
@@ -82,6 +82,7 @@
#define CONFIG_CMD_SOURCE /* "source" command support */
#define CONFIG_CMD_SPI /* SPI utility */
#define CONFIG_CMD_TERMINAL /* built-in Serial Terminal */
+#define CONFIG_CMD_TIME /* time execution of u-boot cmd */
#define CONFIG_CMD_UBI /* UBI Support */
#define CONFIG_CMD_UBIFS /* UBIFS Support */
#define CONFIG_CMD_UNIVERSE /* Tundra Universe Support */
--
1.7.1
--
Peter Barada
peter.barada at logicpd.com
More information about the U-Boot
mailing list