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