在Linux内核中,常常使用do_gettimeofday()函数来得到精确的系统运行时间,尤其在嵌入式中非常常见。
很多程序运行,不需要获取到年月日等信息,但是需要获取高精度的系统时间,可以使用这个函数。
函数功能和C标准库中gettimeofday()用法相同。
下面代码拿去使用吧。
#include <linux/time.h>
unsigned int system_get_usec(void)
{
unsigned int usec;
struct timeval ts;
do_gettimeofday(&ts);
usec = (unsigned int)ts.tv_usec;
return usec;
}
unsigned long system_get_msec(void)
{
unsigned long milliseconds;
struct timeval ts;
do_gettimeofday(&ts);
milliseconds = ts.tv_sec*1000LL + ts.tv_usec/1000;
return milliseconds;
}
unsigned int system_get_sec(void)
{
unsigned int sec;
struct timeval ts;
do_gettimeofday(&ts);
sec = (unsigned int)ts.tv_sec;
return sec;
}
void system_mdelay(unsigned int dly)
{
mdelay(dly);
}
void system_udelay(unsigned int dly)
{
udelay(dly);
}