基于FL2440的RTC驱动移植
一、RTC
RTC(Real-Time Clock):
实时时钟。实时时钟(RTC)单元可以在断电的情况下使用纽扣电池继续计时工作。RTC使用STRB/LDRB ARM操作传输二进制码十进制数的8位数据给CPU。其中的数据包括秒、分、时、日期、天、月、年的时间信息。
二、RTC驱动移植
1、 RTC驱动在linux内核当中已经有了device部分和driver部分,
由于linux内核对RTC的驱动支持已经非常完善了,我们只需要把RTC添加到设备初始化列表即可。
![](https://img-blog.csdn.net/20150425152813852?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWmVuZ05vdmFr/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
linux-3.0]$ vim arch/arm/mach-s3c2440/mach-smdk2440.c
2、
内核配置中选择RTC驱动
make menuconfig
Device Drivers --->
[*] Real Time Clock --->
--- Real Time Clock │ │
│ │ [*] Set system time from RTC on startup and resume │ │
│ │ (rtc0) RTC used to set the system time │ │
│ │ [ ] RTC debug support │ │
│ │ *** RTC interfaces *** │ │
│ │ [*] /sys/class/rtc/rtcN (sysfs) │ │
│ │ [*] /proc/driver/rtc (procfs for rtc0) │ │
│ │ [*] /dev/rtcN (character devices) │ │
│ │ [ ] RTC UIE emulation on dev interface │ │
│ │ < > Test driver/device
│ │ [*] Set system time from RTC on startup and resume │ │
│ │ (rtc0) RTC used to set the system time │ │
│ │ [ ] RTC debug support │ │
│ │ *** RTC interfaces *** │ │
│ │ [*] /sys/class/rtc/rtcN (sysfs) │ │
│ │ [*] /proc/driver/rtc (procfs for rtc0) │ │
│ │ [*] /dev/rtcN (character devices) │ │
│ │ [ ] RTC UIE emulation on dev interface │ │
│ │ < > Test driver/device
3、make,烧录到开发板
三、移植效果
1、烧录启动项中:
2、date测试:时间有变化
3、改变时间且重启后能保存原设置时间
S1:date “TIME”修改时间
S2:hwcloclk 保存时间到芯片
S3:reboot
时间的格式
hh:mm[:ss]
[YYYY.]MM.DD-hh:mm[:ss]
YYYY-MM-DD hh:mm[:ss]
[[[[[YY]YY]MM]DD]hh]mm[.ss]
[YYYY.]MM.DD-hh:mm[:ss]
YYYY-MM-DD hh:mm[:ss]
[[[[[YY]YY]MM]DD]hh]mm[.ss]