当前位置:首页 > 操作系统 > Linux

Linux驱动: rtc子系统

  1. 说明


    本文分析代码基于3.10内核,硬件平台为嵌入式ARM平台.


2.  rtc子系统相关文件

drivers/rtc/class.c
drivers/rtc/interface.c
drivers/rtc/rtc-core.h
drivers/rtc/rtc-dev.c
drivers/rtc/rtc-lib.c
drivers/rtc/rtc-proc.c
drivers/rtc/rtc-sysfs.c
drivers/rtc/hctosys.c
drivers/rtc/rtc-xxx.c

    class.c    : 管理rtc sys class;

    interface.c: 主要作用是间接rtc驱动接口;

    rtc-dev.c  : rtc设备用户接口;

    rtc-lib.c  : rtc辅助函数,主要用于rtc时间转换,计算;

    rtc-proc   : rtc proc fs(用户)接口;

    rtc-sysfs  : rtc sys fs(用户)接口;

    hctosys.c  : 用于在系统启动时从rtc读取时间,并设置为系统时间;

    rtc-xxx.c  : rtc硬件芯片驱动,如rtc-wm8350.c,rtc-hym8563.c等.


3. rtc子系统框图


   技术分享650) this.width=650;" src="/upload/getfiles/default/2022/11/6/20221106052835365.jpg" title="rtc-hie.gif" />

   上图是基于新的rtc子系统框架,该框架能更好的适应嵌入式开发环境,嵌入式环境可能带多个rtc芯

   片.

   老的rtc驱动就是一个简单的字符设备驱动,是适应于PC平台的,对应有一个/dev/rtc设备文件.


   在新的rtc子系统框架下,应用程序通过/dev/rtc[0-N]设备来完成对rtc芯片的访问.这些访问通过

   rtc-dev.c提供的接口间接访问rtc-xxx.c提供的rtc芯片驱动.常见的操作有读取/设置时间的操作,

   这个每个rtc芯片都必须支持的操作.

   当然,访问/dev/rtc[0-N]设备文件不是访问rtc芯片的唯一途径,还可以通过rtc提供的proc,sys fs

   接口来访问rtc.


4. 系统时间来源:rtc设备制定


   Device Drivers --->

       [*] Real Time Clock --->

           (rtc0) RTC used to set system time

            ...

           *** RTC interfaces ***

           ...

           *** I2C RTC drivers ***

           ...

           *** SPI RTC drivers ***

           ...

           *** on-CPU RTC drivers ***

           ...

    注: 红色字样是指定作为系统时间来源的rtc设备.

   


本文出自 “JiMoKuangXiangQu” 博客,请务必保留此出处http://4594296.blog.51cto.com/4584296/1932659

原文:http://4594296.blog.51cto.com/4584296/1932659


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!