RTC硬件时钟设置修改【转】

转自:http://os.chinaunix.net/a2008/0526/981/000000981211.shtml

这两天一直在做i2c设备驱动的理解,所以很少更新文章。

由于对于表计来说,RTC硬件时钟是非常重要的,并且其精度设计要求是比较高的,在busybox中,可以通过date命令设置当前的系统时间,然后通过hwclock将当前的系统时间写入硬件时钟中,但是busybox的date命令有一个缺陷,就是不能精确到秒,这是我们设计中所不能忍受的,这里我们感觉到源码开放对于我们来说是多么的有好处。

修改buxybox的coreutils/date.c文件:

static struct tm *date_conv_time(struct tm *tm_time, const char *t_string)

{

int nr;

char *cp;

nr = sscanf(t_string, "%2d%2d%2d%2d%2d%d", &(tm_time->tm_mon),

&(tm_time->tm_mday), &(tm_time->tm_hour), &(tm_time->tm_min),&(tm_time->tm_sec),

&(tm_time->tm_year));

if (nr 6) {

bb_error_msg_and_die(bb_msg_invalid_date, t_string);

}

将上面的函数按照如上修改,则可以精确到秒!

格式是date后跟月日时分年

注意年是4位年,例如:2007年10月26日 10:00:30

date 10261000302007

然后使用hwclock -w将当前的系统时间写入rtc硬件时钟里面!!

上一篇:5.python的字符串


下一篇:JVM规范系列开篇:为什么要读JVM规范?