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硬件时钟里面!!

原文地址:https://www.cnblogs.com/sky-heaven/p/5280550.html