iTOP-iMX6-设备树内核-实时时钟RTC以及Linux-c测试例程

当 Linux 开发者谈论一个实时时钟,他们一般指的是某种能记录墙上时间,而且有备用电
池,以致于在系统关机的时候仍然能够工做的器件。
Linux 有两个系列普遍兼容的用户空间 RTC 设备节点:
• /dev/rtc : PC 机及兼容机系统提供的 RTC 接口,这种接口对于非 x86 系统来讲不是
很轻便。
• /dev/rtc0,/dev/rtc1 :是各类系统上,被各类 RTC 芯片所支持的框架的一部分。
iTOP-iMX6 开发板以上两种均支持,设备节点对应为“/dev/rtc”和“/dev/rtc0”。
iTOP-iMX6 开发板的内核镜像,默认支持实时时钟,另外还须要有纽扣电池,以下图所示。
若是用户购买的时候,指明须要顺丰空运,那么开发板上应该是不带有纽扣电池的,电池的型
号为 cr1220,用户可自行购买。
linux

01.jpg

 

iTOP-iMX6 的实时时钟 RTC 驱动是内核目录下的“drivers/rtc/rtc*”文件,以下图所
示。
shell

02.jpg

 

压缩包中有“topeet_rtctest.tar.gz”,其中有源码和二进制文件。源码文件中包含获取
实时时钟和打印出实时时钟时间的代码。
假如用户须要在代码中设置时间,则须要使用 date 和 hwclock 等命令。若是须要在代码
中增长设置时间的命令,能够使用函数“settimeofday”,不过多数状况下,在代码中直接
框架

调用 date 和 hwclock 命令便可。另外在程序中调用 linux 命令,能够参考“iTOP-开发板-
MiniLinux-C 程序调用 shell 命令”和“iTOP-开发板-QtE-调用 shell 命令使用文档”文档。
首先测试下命令行设置时间和测试。
以下图所示,能够使用“date”命令能够直接查看系统时间,上电开机以后(断电,取下
纽扣电池,上电开机),时间是默认的时间“Thu Jan 1 08:02:30 CST 1970”。
函数

03.jpg

 

使用命令“date -s "2019-07-27 10:06:00"”设置系统时间,接着使用命令“date”
能够查到系统时间已经更新,接着使用命令“hwclock --systohc”将系统时间同步到 RTC 实
时时钟,以下图所示。
测试

04.jpg

 

安装上纽扣电池,断电再开机,使用命令“date”,时间仍然是 2019 年,说明实时时钟
起做用了。
测试程序读取时间测试
以下图所示,iTOP-iMX6 的实时时钟,设备节点和“/dev/rtc0”能够正常调用。
spa

05.jpg

 

测试程序 topeet_rtctest 须要传递设备节点,若是不传递设备节点,默认使用的是
“/dev/rtc0”,因此默认也是能够正常运行,以下图所示,使用命令“./topeet_rtctest”运
行程序。
命令行

06.jpg

 

最后测试一下“/dev/rtc”节点,以下图所示,使用命令
“./topeet_rtctest /dev/rtc”,设备节点“/dev/rtc”也是能够正常运行。
blog

07.jpg

 

未标题-3.jpg

相关文章
相关标签/搜索