原因:
RK默认在开机启动脚本中添加了“同步系统时间到RTC”的动作。如下:
在debian\overlay\etc\init.d\rockchip.sh中有如下内容:
将这句屏蔽掉即可。
分析:
开机时系统会读取RTC时间作为系统时间,因脚本中添加了如上代码,开机后系统会再次将系统时间写入到RTC中,反复reboot就会反复写入,因RTC写入时间会产生误差(误差在1秒内),比如RTC当前时间为12:00:00:500(此处500代表500ms),如果此时我再次向RTC写入时间12:00:00(写入的时间只能精确到秒),那么RTC只需500ms就能到12:00:01,也就是比实际上快了500ms。多次从RTC读取时间后再次写入的话就会导致这个误差累计,从而出现多次reboot后RTC时间比实际时间快了很多的问题。
不需要频繁向RTC写入时间,如果要写入也要写入正确的时间,即校准后的时间,比如网络同步后的时间,或者手动设置的时间。而不是从RTC中读取的时间之后再写入RTC。