这两天一直在做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位年,例如:10月26日 10:00:30
date 1026100030
然后使用hwclock -w将当前的系统时间写入rtc硬件时钟里面!!