- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十一章_Android内核驱动——Alarm精选
第十一章 Android 内核驱动——Alarm
11.1 基本原理
Alarm 闹钟是 android 系统中在标准 RTC 驱动上开发的一个新的驱动,提供了一个定时器
用于把设备从睡眠状态唤醒,当然因为它是依赖 RTC 驱动的,所以它同时还可以为系统提
供一个掉电下还能运行的实时时钟。
当系统断电时,主板上的rtc 芯片将继续维持系统的时间,这样保证再次开机后系统的时间
不会错误。当系统开始时,内核从 RTC 中读取时间来初始化系统时间,关机时便又将系统
时间写回到 rtc 中,关机阶段将有主板上另外的电池来供应 rtc 计时。Android 中的Alarm
在设备处于睡眠模式时仍保持活跃,它可以设置来唤醒设备。
上图为android 系统中alarm 和rtc 驱动的框架。Alarm 依赖于rtc 驱动框架,但它不是一个 rtc
驱动,主要还是实现定时闹钟的功能。相关源代码在 kernel/drivers/rtc/alarm.c 和
drivers/rtc/alarm_dev.c 。
其中 alarm.c 文件实现的是所有 alarm 设备的通用性操作,它创建了一个设备 class ,而
Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。
alarm_dev.c 则创建具体的alarm 设备,注册到该设备class 中。alarm.c 还实现了与interface.c
的接口,即建立了与具体rtc 驱动和rtc 芯片的联系。alarm_dev.c 在alarm.c 基础包装了一层,
主要是实现了标准的miscdevice 接口,提供给应用层调用。
可以这样概括:alarm.c 实现的是机制和框架,alarm_dev.c 则是实现符合这个框架的设备驱
动,alarm_dev.c 相当于在底层硬件rtc 闹钟功能的基础上虚拟了多个软件闹钟。
11.2 关键数据结构
alarm
定义在 include/linux/android_alarm.h 中。
struct alarm {
struct rb_node node;
enum android_alarm_type type;
ktime_t softexpires; //最早的到期时间
ktime_t expires; //绝对到期时间
void (*function)(struct alarm *); //当到期时系统回调该函数
};
这个结构体代表 alarm 设备,所有的 alarm 设备按照它们过期时间的先后被组织成一
个红黑树,alarm.node 即红黑树的节点,alarm 设备通过这个变量插入红黑树。alarm.type
是类型,android 中一共定义了如下 5 种类型,在现在的系统中每种类型只有一个设备。
enum android_alarm_type {
/* return code bit numbers or set alarm arg */
ANDROID_ALARM_RTC_WAKEUP,
ANDROID_ALARM_RTC,
ANDROID_ALARM_ELAPSED_REALTIME_WAKEUP,
ANDROID_ALARM_ELAPSED_REALTIME,
ANDROID_ALARM_SYSTEMT
您可能关注的文档
最近下载
- 《七律二首 送瘟神》-中职语文高二同步课件精选(高教版2023·职业模块).pptx VIP
- 高考蓝皮书·物理试题分析2025.docx VIP
- 综合实践活动 开学第一课 2024-2025学年综合实践活动开学第一课课件.pptx VIP
- 高标准农田监理大纲方案投标文件(技术方案).doc
- 小儿过敏性休克抢救流程.pptx VIP
- 液压与气压传动技术完整整套教学课件.pdf VIP
- 技术标投标文件监理大纲.doc VIP
- 2025 年成都市三年级数学秋季开学摸底考 - 冲刺卷及答案(北师大版).docx VIP
- 最新2025年《初中初三开学第一课》全文.pptx VIP
- 姓氏的由来演讲课件(张姓).pptx VIP
文档评论(0)