备注:
1)测试时一定要接电池,否则外部RTC断电后无法工作导致测试失败;
2)如果连接了网络,系统会自动同步NTP时钟,所以需要关闭自动同步时钟。
关闭自动同步NTP时钟方法:
先查看是否开启同步,执行命令:
$ timedatectl
如下图所示:
可以看到默认是打开的。
关闭时钟同步,执行命令:
$ timedatectl set-ntp 0
$ timedatectl
如下图所示:
由上图,可以看到关闭了时钟同步。
下面的测试中时间是随意设置,仅是为了验证功能正常;
测试思路:(记得接电池)
1)设置系统时钟(外部RTC需要初始化时钟,这里相当于给外部RTC的初始时钟);
2)将设置的系统时钟同步到硬件RTC;
3)关闭主板电源,等待一会儿(此时外部RTC继续工作);
4)给主板上电,查看系统时钟,查看外部RTC(主要是查看外部RTC是否正确);
5)将外部RTC同步到系统时钟。
测试过程:
查看当前外部RTC时间,执行命令:
$ hwclock
如下图所示:
查看当前系统时钟,执行命令:
$ date
如下图所示:
设置系统时钟,执行命令(这条命令中的双引号复制到调试串口终端中恒定被识别为中文符号,需要手动改为英文符号):
$ date -s “2019-11-6 21:50:00”
如下图所示:
将系统时钟同步到硬件RTC,执行命令:
$ hwclock -w
查看硬件RTC时钟,如下图所示:
关闭主板,等待一会;给主板上电,重新启动,查看当前系统时钟和硬件时钟,如下图所示:(可以看到硬件时钟是上面设置的)
将硬件时钟同步到系统时钟,执行命令:
$ hwclock -s
设置完成后查看系统和硬件时钟,如下图所示:
硬件RTC测试完成。
硬件RTC测试完成后记得恢复NTP时钟同步,执行命令:
$ timedatectl set-ntp 1