Linux驱动 | Linux内核 RTC时间架构

💡 原文中文,约12800字,阅读约需31分钟。
📝

内容提要

本文介绍了Linux内核的时间子系统,包括系统时间和RTC时间的区别,以及RTC时间框架的结构和驱动注册过程。同时讨论了WT时间和RTC时间的同步问题。

🎯

关键要点

  • Linux内核的时间子系统分为系统时间和RTC时间。
  • 系统时间由Linux系统软件维护,可以通过命令date查看。
  • RTC时间来自设备上的RTC芯片,可以通过命令hwclock读取。
  • RTC时间框架包括硬件、驱动、接口和设备节点等部分。
  • RTC驱动通过填充rtc_class_ops结构体来实现对RTC芯片的操作。
  • class.c文件负责RTC驱动的注册和设备的创建。
  • interface.c文件提供统一的RTC时间操作接口,屏蔽硬件细节。
  • RTC设备在sysfs文件系统中以符号链接的形式呈现。
  • RTC设备在proc文件系统中显示当前时间和闹钟状态等信息。
  • WT时间通过RTC时间同步,系统启动后从RTC读取时间设置为系统时间。
  • 瑞芯微系统通过/sys/class/rtc/rtc0下的文件节点实现时间管理功能。
  • 设备关机后RTC仍能保持时间,因为RTC有纽扣电池供电。

延伸问答

Linux内核的时间子系统包括哪些部分?

Linux内核的时间子系统包括系统时间和RTC时间。

如何查看Linux系统时间和RTC时间?

可以通过命令'date'查看系统时间,通过命令'hwclock'读取RTC时间。

RTC时间框架的主要组成部分是什么?

RTC时间框架包括硬件、驱动、接口和设备节点等部分。

RTC驱动是如何注册的?

RTC驱动通过class.c文件注册,使用devm_rtc_device_register函数创建rtc设备。

WT时间和RTC时间是如何同步的?

WT时间通过从RTC读取时间来同步,系统启动后会将RTC时间设置为系统时间。

设备关机后RTC时间如何保持?

设备关机后RTC仍能保持时间,因为RTC有纽扣电池供电。

➡️

继续阅读