Linux下S3C2440 RTC实时时钟驱动配置与修改
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