Add a command to access the system timer
Two sub-commands... start and get. * start sets the reference. * get prints out the time since the last start (in "<sec>.<msec>" format). If get is called without start, returns time since boot. Simple way to benchmark an operation: "timer start;<commands-to-measure>;timer get" Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
parent
c167cc0203
commit
da83bcd7b3
3
README
3
README
@ -858,7 +858,8 @@ The following options need to be configured:
|
||||
CONFIG_CMD_SPI * SPI serial bus support
|
||||
CONFIG_CMD_TFTPSRV * TFTP transfer in server mode
|
||||
CONFIG_CMD_TFTPPUT * TFTP put command (upload)
|
||||
CONFIG_CMD_TIME * run command and report execution time
|
||||
CONFIG_CMD_TIME * run command and report execution time (ARM specific)
|
||||
CONFIG_CMD_TIMER * access to the system tick timer
|
||||
CONFIG_CMD_USB * USB support
|
||||
CONFIG_CMD_CDP * Cisco Discover Protocol support
|
||||
CONFIG_CMD_MFSL * Microblaze FSL support
|
||||
|
@ -53,3 +53,30 @@ U_BOOT_CMD(
|
||||
"N\n"
|
||||
" - delay execution for N seconds (N is _decimal_ !!!)"
|
||||
);
|
||||
|
||||
#ifdef CONFIG_CMD_TIMER
|
||||
static int do_timer(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
{
|
||||
static ulong start;
|
||||
|
||||
if (argc != 2)
|
||||
return CMD_RET_USAGE;
|
||||
|
||||
if (!strcmp(argv[1], "start"))
|
||||
start = get_timer(0);
|
||||
|
||||
if (!strcmp(argv[1], "get")) {
|
||||
ulong msecs = get_timer(start) * 1000 / CONFIG_SYS_HZ;
|
||||
printf("%ld.%03d\n", msecs / 1000, (int)(msecs % 1000));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
U_BOOT_CMD(
|
||||
timer, 2, 1, do_timer,
|
||||
"access the system timer",
|
||||
"start - Reset the timer reference.\n"
|
||||
"timer get - Print the time since 'start'."
|
||||
);
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user