Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4245585
  • 博文数量: 1148
  • 博客积分: 25453
  • 博客等级: 上将
  • 技术积分: 11949
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 21:14
文章分类

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: LINUX

2011-12-12 13:32:31

基础知识:
1. date:linux中用于显示/修改系统命令的一个命令
2. Linux下的RTC驱动 实现完之后,一般是默认的一个普通的字符型设备,或者是一个misc设备,也可以是一个平台设备,如果insmod驱动后,对应的一般设备是/dev/rtc 或 /dev/rtc0 或 /dev/misc/rtc
   在自己的机子上显示:
  1. ywx@ywx:~/Desktop$ ls /dev/rtc*
  2. /dev/rtc /dev/rtc0
在busybox源码 src/libbb/rtc.c
  1. int FAST_FUNC rtc_xopen(const char **default_rtc, int flags)
  2. {
  3.     int rtc;

  4.     if (!*default_rtc) {
  5.         *default_rtc = "/dev/rtc";
  6.         rtc = open(*default_rtc, flags);
  7.         if (rtc >= 0)
  8.             return rtc;
  9.         *default_rtc = "/dev/rtc0";
  10.         rtc = open(*default_rtc, flags);
  11.         if (rtc >= 0)
  12.             return rtc;
  13.         *default_rtc = "/dev/misc/rtc";
  14.     }

  15.     return xopen(*default_rtc, flags);
  16. }

3.hwclock: hardware clock,硬件(RTC)时钟

查看命令格式:man hwclock
hwclock -r 显示硬件时钟,等价于不加参数的hwclock
hwclock -s 将“硬件时钟” 写到linux的“系统时钟”
hwclock -w 将linux 的“系统时钟”写到“硬件时钟”里


系统时钟、硬件时钟 区别
    硬件时钟是指主板上的时钟设备,也就是通常在BIOS画面特定的时钟,对于嵌入式开发,就是其中的rtc模块
    系统时钟则是指kernel中的时钟。当linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟就独立运作。

    所有linux相关指令与函数都是读取系统时钟的设定。系统时钟的设定就是我们常用的date命令 。而我们写的RTC驱动就是为硬件时钟服务的,它有自己的命令hwclock 。
     date命令操作linux的系统(软件)时钟。hwclock命令操作硬件时钟(RTC模块),如果我们要测试rtc驱动是否正常工作,只需要hwclock

用date和hwclock 命令测试rtc驱动是否正常

1.用date查看系统时钟
  1. ywx@ywx:~/desktop$ date
  2. Mon Dec 12 13:49:25 CST 2011
2.如果系统时钟也不正常,修改系统时钟date命令
  1. Date:显示当前时间 Fri Aug 3 14:15:16 CST 2007
  2. date –s:按字符串方式修改时间
  3. 可以只修改日期,不修改时间,输入: date -s 2007-08-03
  4. 只修改时间,输入:date -s 14:15:00
  5. 同时修改日期时间,注意要加双引号,日期与时间之间有一空格,输入:
  6. #date -s "2007-08-03 14:15:00"
  1. ywx@ywx:~/desktop$ sudo date -s 2012-12-12
  2. [sudo] password for ywx:
  3. Wed Dec 12 00:00:00 CST 2012
3.显示硬件时钟
  注意:这里硬件时钟还是2011,我上面修改为了2012
  1. ywx@ywx:~/desktop$ sudo hwclock -r
  2. [sudo] password for ywx:
  3. Mon 12 Dec 2011 01:55:58 PM CST -0.236070 seconds
4.将系统时钟写入硬件时钟
   这里就同步了
  1. ywx@ywx:~/desktop$ sudo hwclock -w
  2. ywx@ywx:~/desktop$ sudo hwclock
  3. Wed 12 Dec 2012 12:03:06 AM CST -0.239664 seconds
提示:
为了是系统时间和RTC时间同步,而不用等待linux系统启动后,要麻烦的,每次都写命令是系统时钟和硬件时钟同步

可以在初始化文件中添加 hwclock -s ,是每次开机时读取硬件RTC时间,并同步linux系统时间。

在/etc/init.d/rcS(旧版本的,应该在/etc/inittab)中添加

/bin/hwclock -s

在u10.10中在
  1. ywx@ywx:/etc/init.d$ ls /etc/init.d/rcS
  2. /etc/init.d/rcS


资料:







































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