Linux下RTC驱动开发(硬件采用DS1302)
Posted DS小龙哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下RTC驱动开发(硬件采用DS1302)相关的知识,希望对你有一定的参考价值。
一、前言
在Linux系统上主要有两个时间基准,一个数是系统时间和,一个是RTC 时间。 其中系统时间是系统运行时由定时器(滴答定时器)维护的时间,掉电不保存数据。而RTC时间,是由RTC实时时钟芯片维护的时间,一般都接了后备电源(常见表现行为就是一颗纽扣电池供电),系统掉电后它不受影响,还是会运行保证时间准确。 每次系统开机时,系统会从RTC芯片里读取当前时间给系统时间赋值,保证系统开机之后时间也是准确的。
那么系统开机如何读取RTC时间的? 这个就需要用到1个命令:hwclock 。 这个命令是专门读写RTC驱动的。当然,通过打开设备文件,利用ioctl的命令也可以与RTC设备进行交互,使用hwclock命令更简单些。
而在linux应用层,可以通过date 和 time 命令来设置系统时间的,而刚才说到的 hwclock 命令是用来设置和读写 RTC 时间的。
下面是系统 RTC 实时时钟时间的获取与设置命令用法案例:
1. 将 RTC 时间同步到系统时间
[root@XiaoLong /]# hwclock -s
为了在启动时自动执行 RTC 时间同步到系统时间,可以把 hwclock -s 命令加入到 profile 或者 rcS 文件中。
2. 获取显示 RTC 时间
[root@XiaoLong /]# hwclock -r
Sun May 1 00:09:36 2016 0.000000 seconds
3. 将系统时间同步到 RTC,用于设置时间
[root@XiaoLong /]# hwclock -w
4. 查看 RTC 的信息
[root@XiaoLong /]# cat /proc/drive
以上是关于Linux下RTC驱动开发(硬件采用DS1302)的主要内容,如果未能解决你的问题,请参考以下文章