Chinaunix首页 | 论坛 | 博客
  • 博客访问: 483524
  • 博文数量: 118
  • 博客积分: 5003
  • 博客等级: 大校
  • 技术积分: 1213
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-07 20:29
文章存档

2011年(8)

2010年(4)

2009年(12)

2008年(85)

2007年(9)

我的朋友

分类: LINUX

2008-05-26 10:17:49

   
    这两天一直在做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 < 5 || 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硬件时钟里面!!

阅读(1086) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~