当 Linux 开发者谈论一个实时时钟,他们通常指的是某种能记录墙上时间,并且有备用电 池,以至于在系统关机的时候仍然可以工作的器件。
Linux 有两个系列广泛兼容的用户空间 RTC 设备节点:
/dev/rtc : PC 机及兼容机系统提供的 RTC 接口,这种接口对于非 x86 系统来说不是 很轻便。
/dev/rtc0,/dev/rtc1 :是各种系统上,被各种 RTC 芯片所支持的框架的一部分。
iTOP-6818 开发板以上两种均支持,设备节点对应为“/dev/rtc”和“/dev/rtc0”。 iTOP-6818 开发板的内核镜像,默认支持实时时钟,另外还需要有纽扣电池,如下图所示。 如果用户购买的时候,指明需要顺丰空运,那么开发板上应该是不带有纽扣电池的,电池的型 号为 cr1220,用户可自行购买。
01.png (434.08 KB, 下载次数: 0)
下载附件 [url=]保存到相册[/url]
前天 10:37 上传
1.内核驱动
iTOP-6818 的实时时钟 RTC 驱动是内核目录下的“drivers/rtc/rtc-nxp.c”文件,如下 图所示。
02.png (49.62 KB, 下载次数: 0)
下载附件 [url=]保存到相册[/url]
前天 10:37 上传
进入内核源码目录,使用“export ARCH=arm”,然后使用“make menuconfig”命 令,如下图所示,选择“Device Drivers --->”,输入回车。
03.png (409.59 KB, 下载次数: 0)
下载附件 [url=]保存到相册[/url]
前天 10:37 上传
如下图所示,在“Device Drivers --->”下,选择“Real Time Clock --->”,输入回 车。
04.png (429.08 KB, 下载次数: 0)
下载附件 [url=]保存到相册[/url]
前天 10:37 上传
如下图所示,“SLsiAP RTC”,即为实时时钟 RTC 驱动选项。这个选项默认是配置的, 用户使用默认的内核镜像即可。
05.png (411.23 KB, 下载次数: 0)
下载附件 [url=]保存到相册[/url]
前天 10:37 上传
2.测试
压缩包中有“topeet_rtctest.tar.gz”,其中有源码和二进制文件。源码文件中包含获取 实时时钟和打印出实时时钟时间的代码。
2.1命令行设置时间和测试
如下图所示,可以使用“date”命令可以直接查看系统时间,上电开机之后(断电,取下纽扣电池,上电开机),时间是默认的时间“Thu Jan 1 00:00:51 CST 2015”。
06.png (96.43 KB, 下载次数: 0)
下载附件 [url=]保存到相册[/url]
前天 10:37 上传
使用命令“date -s "2018-07-17 17:43:00"”设置系统时间,接着使用命令“date” 可以查到系统时间已经更新,接着使用命令“hwclock --systohc”将系统时间同步到 RTC 实 时时钟,如下图所示。
07.png (163.77 KB, 下载次数: 0)
下载附件 [url=]保存到相册[/url]
前天 10:37 上传
安装上纽扣电池,断电再开机,使用命令“date”,如下图所示,时间仍然是 2018 年, 说明实时时钟起作用了。
08.png (101.31 KB, 下载次数: 0)
下载附件 [url=]保存到相册[/url]
前天 10:37 上传
2.2 测试程序读取时间测试
如下图所示,iTOP-6818 的实时时钟,设备节点“/dev/rtc0”都可以正常调用。
09.png (98.51 KB, 下载次数: 0)
下载附件 [url=]保存到相册[/url]
前天 10:37 上传
测试程序 topeet_rtctest 需要传递设备节点,如果不传递设备节点,默认使用的是 “/dev/rtc0”,所以默认也是可以正常运行,如下图所示,使用命令“./topeet_rtctest”运 行程序。
10.png (96.02 KB, 下载次数: 0)
下载附件 [url=]保存到相册[/url]
前天 10:37 上传
如下图所示,使用命令“./topeet_rtctest /dev/rtc0”,设备节点“/dev/rtc0”也是可以 正常运行。
「关于」立创商城,成立于2011年,致力于为客户提供一站式电子元器件线上采购服务。拥有10000多平方米现代化元器件仓库,现货库存超160000种。本文由立创商城整合,版权归原作者所有。
人打赏
0人 点赞
主帖获得的天涯分:0
举报 |
楼主
|
楼主发言:1次 发图:0张 | 添加到话题 |