Linux下S3C2440 RTC实时时钟驱动配置与修改

学峰的学习笔记 2011-09-24

Linux下对S3C2440 RTC的支持非常完善,我们只需要做简单的修改,即可使用RTC

1、vi arch/arm/mach-s3c2440/mach-smdk2440.c

static struct platform_device *smdk2440_devices[] __initdata = {

    &s3c_device_usb,

    &s3c_device_lcd,

    &s3c_device_wdt,

    &s3c_device_i2c0,

    &s3c_device_iis,

    &s3c_device_rtc,  //这里我们添加上RTC平台设备,默认是没添加的

}; 

2、make zImage

3、使用与测试

Linux下的时间分为两种,系统时间与硬件时间。

我们一般看到的时间就是系统时间,比如现在是11:45 am。

硬件时间指的是主板上CMOS中的时间或RTC中的时间,这两个时间并不是总是同步的,一般情况下大约11分钟同步一次。

Linux系统开机时,从CMOS/rtc中读取当前时间,作为系统时间,从此以后系统时间独立tick,此时如果你用date命令修改了系统时间,硬件时间是不受影响的,就是说如果此时关机,下次的系统时间还是不对。要想将系统时间保存到硬件时间,可以是用 hwclock 或者clock命令,hwclock就是hardware clock的意思。

一个完整的修改linux系统时间的过程如下所示

a)设置系统时间

#date -s 2010.12.11-8:5:24

b)将当前系统时间保存到硬件时间

#hwclock --systohc

#clock --systohc

c)读取硬件时间为系统时间

#hwclock -s

相关推荐