网站大量收购独家精品文档,联系QQ:2885784924
  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
rtc驱动

linux RTC 驱动模型分析 RTC(real time clock)实时时钟,主要作用是给Linux系统提供时间。RTC因为是电池供电的, 所以掉电后时间不丢失。Linux内核把RTC用作“离线”的时间 与日期维护器。当Linux内核启动时,它 从RTC中读取时间与日期,作为基准值。在运行期间内核完全抛开RTC,以软件的形式维护系统的当前时 间与日 期,并在需要时将时间回写RTC芯片。另外如果RTC提供了IRQ中断并且可以定时,那么RTC还可 以作为内核睡眠时唤醒内核的闹钟。应用程序可以用 RTC提供的周期中断做一些周期的任务。linux有两 种rtc驱动的接口,一个是老的接口,专门用在PC机上的。另外一钟新接口是基于linux设备 驱动程序 的。这个新的接口创建了一个RTC驱动模型,实现了RTC的大部分基本功能。而底层驱动无须考虑一些功 能的实现,只需将自己注册的RTC核心中,其他工作由RTC核心来完成。下面分析RTC新接口的驱动模型。 一. 驱动模型结构 与RTC核心有关的文件有: /drivers/rtc/class.c 这个文件向linux设备模型核心注册了一个类RTC,然后向驱 动程序提供了注册/注销接口 /drivers/rtc/rtc-dev.c 这个文件定义了基本的设备文件操作函数,如:open,read等 /drivers/rtc/interface.c 顾名思义,这个文件主要提供了用户程序与 RTC驱动的接口函 数,用户程序一般通过ioctl与RTC驱动交互,这里定义了每个ioctl命令需要调用的函数 /drivers/rtc/rtc-sysfs.c 与sysfs有关 /drivers/rtc/rtc-proc.c 与proc文件系统有关 /include/linux/rtc.h 定义了与RTC有关的数据结构 RTC驱动模型结构如下图: 二. 基本数据结构 1. struct rtc_device 结构 [cpp] view plaincopy 1 struct rtc_device 2 { 3 struct device dev; 4 struct module *owner; 5 6 int id; 7 char name[RTC_DEVICE_NAME_SIZE]; 8 9 const struct rtc_class_ops *ops; 10 struct mutex ops_lock; 11 12 struct cdev char_dev; 13 unsigned long flags; 14 15 unsigned long irq_data; 16 spinlock_t irq_lock; 17 wait_queue_head_t irq_queue; 18 struct fasync_struct *async_queue; 19 20 struct rtc_task *irq_task; 21 spinlock_t irq_task_lock; 22 int irq_freq; 23 int max_user_freq; 24 #ifdef CONFIG_RTC_INTF_DEV_UIE_EMUL 25 struct work_struct uie_task; 26 struct timer_list uie_timer; 27 /* Those fields are protected by rtc-irq_lock */ 28 unsigned int oldsecs; 29 unsigned int uie_irq_active:1; 30 unsigned int stop_uie_polling:1; 31 unsigned int uie_task_active:1; 32

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档