RTC驱动移植

来源:互联网 发布:网络搜索找人 编辑:程序博客网 时间:2024/06/06 02:40

 (1)移植RTC驱动

 

(i)busybox1.5.1,添加对datedwclock命令的支持

#cd

#make clean

#make menuconfig

[Linux System Utilities]-->

    [*]hwclock

[Coreutils]-->

    [*]date

 

#make

#make install

复制文件到根文件系统中:

              #cp    -ad    _install/sbin    usr/local/arm/now_wpb_rootfs/

       #cp    -ad    _install/bin     usr/local/arm/now_wpb_rootfs/

 

now_wpb_rootfs做成yaffs格式:

./mkyaffs2image now_wpb_roofs /mnt/hgfs/win/Image/rootfilesystem/root.yaffs

 

烧写到开发板

 

【问题】:在进入文件系统后,键入:hwclock时,出现如下问题:

   hwclock: applet not found

   这主要是busybox的问题,要全部覆盖原来的文件夹sbinbin

 

 

(ii)添加RTC驱动

 

#cd linux-2.6.14

#vi arch/arm/mach-s3c2410/mach-smdk2410.c

    在数组smdk2410_devices[]中添加&s3c_device_rtc.

#make menuconfig

Device Driver--> Character devices

     [*] S3C2410 RTC Driver  

#make zImage

zImage下载到开发板

 

(iii)启动系统时,会看到如下信息,说明RTC驱动已经装载好了

 

S3C2410 RTC, (c) 2004 Simtec Electronics

 

s3c2410-rtc s3c2410-rtc: rtc disabled, re-enabling

 

(iv)进入系统

下面首先设置正确的系统时间,然后将系统时间传递给RTC

 

板子第一次启动后,

假如设置系统时间为20090709日,1335分,可以这样设置

1>     date 070913352009

2>     hwclock –w

如果没有出错, 就已经把20090709日,1335 写入RTC chip了,

测试:

反复执行hwclock ,看看是否时间在变化。

 

3> 重启板子, 测试, 执行hwclock ,看看时间是否在流逝

 

为了使系统时间和RTC时间同步,可以在初始化文件中添加命令

 

Hwclock –s

 

使每次开机时读取RTC时间,并同步给系统时间。

 

 

在根文件系统:usr/etc/rc.local中添加

 

/sbin/hwclock -s

 

 

 

【时间设置的相关命令】

 

    1.在虚拟终端中使用date命令来查看和设置系统时间

    查看系统时钟的操作:

    # date

 

    设置系统时钟的操作:

    # date 091713272003.30

 

    通用的设置格式:

    # date 月日时分年.

 

    2.使用hwclockclock命令查看和设置硬件时钟

    查看硬件时钟的操作:

    # hwclock --show

    # clock --show

    20030917 星期三 132411 -0.482735 seconds

 

    设置硬件时钟的操作:

    # hwclock --set --date="09/17/2003 13:26:00"

 

    或者

    # clock --set --date="09/17/2003 13:26:00"

 

    通用的设置格式:hwclock/clock --set --date=“月//年时:分:秒”。

 

    3.同步系统时钟和硬件时钟

 

    Linux系统(笔者使用的是Red Hat 8.0,其它系统没有做过实验)默认重启后,硬件时钟和系统时钟同步。如果不方便重新启动的话(服务器通常很少重启),使用clockhwclock命令来同步系统时钟和硬件时钟。

 

    硬件时钟与系统时钟同步:

    # hwclock --hctosys

 

    或者

    # clock --hctosys

 

    上面命令中,--hctosys表示Hardware Clock to SYStem clock

 

    系统时钟和硬件时钟同步:

    # hwclock --systohc

 

    或者

    # clock --systohc

 

(2)RTCQtopia上的时钟结合,实时显示时间

 

 

qtopia/Setting/中的 Date/Time”程序可实现:读写硬件RTC时钟的功能;但不能实时显示时间

 

rtc移植

2009-05-10 13:24

make menuconfig

driver

char

选中rtc


Linux Kernel v2.6.14 Configuration
──────────────────────────────────────────────────────────────────────────────
┌─────────────────────────── Character devices ───────────────────────────┐
│ Arrow keys navigate the menu. <Enter> selects submenus --->.          │
│ Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, │
│ <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help, </> │
│ for Search. Legend: [*] built-in [ ] excluded <M> module < >       │
│ ┌──────^(-)───────────────────────────────────────────────────────────┐ │
│ │          IPMI --->                                                 │ │
│ │          Watchdog Cards --->                                       │ │
│ │      < > /dev/nvram support                                         │ │
│ │      < > Enhanced Real Time Clock Support                           │ │
│ │      [*] S3C2410 RTC Driver                                         │ │
│ │      < > Double Talk PC internal speech card support                │ │
│ │      < > Siemens R3964 line discipline                              │ │
│ │          Ftape, the floppy tape device driver --->                 │ │
│ │      < > RAW driver (/dev/raw/rawN) (OBSOLETE)                      │ │
│ │          TPM devices --->                                          │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────┤
│                    <Select>    < Exit >    < Help >                     │
└─────────────────────────────────────────────────────────────────────────┘

2.       修改文件mach-smdk2410.c/linux2.6.24.4/arch/arm/mach-s3c2410/mach-smdk2410.c),在数组smdk2410_devices[]中添加&s3c_device_rtc.

[root@kevin /]# hwclock

Wed Dec 31 23:59:59 1969 0.000000 seconds

[root@kevin /]# date

Thu Jan 1 00:06:58 UTC 1970

      

系统时间是通过date来设置的,RTC时间是通过hwclock来设置的。开机时系统时间首先通过RTC来获得,RTC没有设置时,系统时间也会使用Wed Dec 31 23:59:59 1969

[root@kevin /]# hwclock --help

BusyBox v1.9.2 (2008-04-01 21:32:34 CST) multi-call binary

Usage: hwclock [-r|--show] [-s|--hctosys] [-w|--systohc] [-l|--localtime] [-u|--utc] [-f FILE]

Query and set a hardware clock (RTC)

Options:

    -r  Read hardware clock and print result

    -s  Set the system time from the hardware clock

    -w  Set the hardware clock to the system time

    -u  The hardware clock is kept in coordinated universal time

    -l  The hardware clock is kept in local time

    -f FILE    Use the specified clock (e.g. /dev/rtc2)

[root@kevin /]# hwclock -s

hwclock: settimeofday() failed: Invalid argument

[root@kevin /]# hwclock -w

s3c2410-rtc s3c2410-rtc: rtc only supports 100 years

hwclock: RTC_SET_TIME: Invalid argument

以上错误信息都是因为year设置不当引起的。没有设置RTCRTC也不会启动计时。

下面首先设置正确的系统时间,然后将系统时间传递给RTC

[root@root /]# date 040612282008.20

Sun Apr 6 12:28:20 UTC 2008

[root@root /]# hwclock -w

[root@root /]# hwclock

Sun Apr 6 12:29:01 2008 0.000000 seconds

[root@root/]# hwclock

Sun Apr 6 12:30:15 2008 0.000000 seconds

OkRTC开始工作了!

为了使系统时间和RTC时间同步,可以在初始化文件中添加命令

Hwclock –s

使每次开机时读取RTC时间,并同步给系统时间。

etc/init.d/rcS中添加

/bin/hwclock -s

 

PS 时间设置的相关命令(转载)

    1.在虚拟终端中使用date命令来查看和设置系统时间
    查看系统时钟的操作:
    # date

    设置系统时钟的操作:
    # date 091713272003.30

    通用的设置格式:
    # date 月日时分年.

    2.使用hwclockclock命令查看和设置硬件时钟
    查看硬件时钟的操作:
    # hwclock --show
    # clock --show
    20030917
星期三 132411 -0.482735 seconds

    设置硬件时钟的操作:
    # hwclock --set --date="09/17/2003 13:26:00"

    或者
    # clock --set --date="09/17/2003 13:26:00"

    通用的设置格式:hwclock/clock --set --date=“//年时:分:秒

    3.同步系统时钟和硬件时钟

    Linux系统(笔者使用的是Red Hat 8.0,其它系统没有做过实验)默认重启后,硬件时钟和系统时钟同步。如果不大方便重新启动的话(服务器通常很少重启),使用clockhwclock命令来同步系统时钟和硬件时钟。

    硬件时钟与系统时钟同步:
    # hwclock --hctosys

    或者
    # clock --hctosys

    上面命令中,--hctosys表示Hardware Clock to SYStem clock

    系统时钟和硬件时钟同步:
    # hwclock --systohc

    或者
    # clock --systohc

    使用图形化系统设置工具设置时

 

 

 

原创粉丝点击