linux 嵌入式软硬件时钟 怎么同步

linux 嵌入式软硬件时钟 怎么同步,第1张

置硬件时间

开机时Linux会从硬件的rtc的时钟芯片中获取一次硬件时间,然后以此为基础来运行系统时间。

settimeofday 相当于date shell命令,紧紧能设置系统时间。

如果想设置硬件时间,需要一个hwclock -w shell原理的函数来写硬件的rtc。

扒一扒 busybox的 hwclock.c源码(http://www.codeforge.cn/read/97203/hwclock.c__html)

可以知道这么抄写功能源码:

[cpp] view plain copy

static void write_rtc(time_t t, int utc)

{

int rtc

struct tm tm

if (( rtc = open ( "/dev/rtc", O_WRONLY )) <0 )

{

if (( rtc = open ( "/dev/misc/rtc", O_WRONLY )) <0 )

bb_perror_msg_and_die ( "Could not access RTC

我们一般使用“date -s”命令来修改系统时间。比如将系统时间设定成2005年7月26日的命令如下。

#date -s 07/26/2005

将系统时间设定成下午11点12分0秒的命令如下。

#date -s 11:12:00

注意,这里说的是系统时间,是linux由 *** 作系统维护的。

在系统启动时,Linux *** 作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。如果要确保修改生效可以执行如下命令。

#clock -w

这个命令强制把系统时间写入CMOS。

Linux以它的高效性和灵活性著称,Linux模块化的设计结构,使得它既能在价格昂贵的工作站上运行,也能够在廉价的PC机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的 *** 作系统。Linux *** 作系统软件包不仅包括完整的Linux *** 作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行 *** 作。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8714418.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存