子类_RTC
文章平均质量分 57
KrisFei
工作记录.
展开
-
[笔记分享] [RTC] Alarm用户空间分析
Platform: msm8x26主要涉及的文件有: AlarmManager.java : 提供API给ap调用实现alarm功能 AlarmManagerService.java : alarmmanger.java都是调用其api实现 Com_android_server_AlarmMangerService.cpp: alarm JNI接口文件AlarmManager.java主要接口原创 2017-09-06 10:03:03 · 815 阅读 · 0 评论 -
[笔记分享] [RTC] Alarm内核驱动分析
Platform: msm8x26Overview在rtc一节的框架图可以看出,Alarm依赖于rtc驱动框架,但它不是一个 rtc 驱动,主要还是实现定时闹钟的功能。相关源代码在kernel/drivers/rtc/alarm.c和drivers/rtc/alarm_dev.c。 注意alarm接口是android系统专门添加的,linux并没有提供这样的功能。其中alarm.c文件实现的是所有a原创 2017-09-06 09:57:42 · 4160 阅读 · 0 评论 -
[笔记分享] [RTC] RTC Software之Modem端
Platform: msm8x26Modem这边的时钟同步比较复杂, 目录在amss\modem_proc\core\services\time\src从它的文件命令来看,我们可以选择多种方法来同步时间, 如gps,cdma, mflo等, 对于这部分代码暂时还没有细细的研究过其调用流程。目前知道的是它的初始化流程,和time daemon类似。 tmc_task -> tmc_init ->原创 2017-09-04 18:20:00 · 534 阅读 · 0 评论 -
[笔记分享] [RTC] RTC Software之用户空间
Platform: msm8x26目前上层使用rtc dev来操作和time相关的调用只有一处地方,就是time daemon service@android\vendor\qcom\proprietary\time-services,初始化的时候它会设置一下系统时间,然后创建socket来监听来自modem的事件: 在genoff_handler里根据不同类型的消息做set/get的动作:从mo原创 2017-09-04 18:17:45 · 823 阅读 · 0 评论 -
[笔记分享] [RTC] RTC Software之内核框架
platform: msm8x60专有rtc driver的实现之后,再来分析下user space是如何调用到我们的driver的。 核心文件为rtc-dev.c@android\kernel\drivers\rtc, 其实这里要说的文件都是在这个目录下。另外还有rtc-sys.c, class.c, ingerface.c, rtc-lib.c。为rtc分配一个设备号,注意这里还没有添加驱动和原创 2017-09-04 18:13:51 · 952 阅读 · 0 评论 -
[笔记分享] [RTC] RTC Software之内核驱动
Platform: msm8x26OverviewLinux中可以注册多个RTC,因此kernel部分的code分成了框架和实现两部分。框架对多个RTC进行了封装,类似于framebuffer的功能一样。上层(android)似乎很少使用rtc device接口(/dev/rtc)来设置时间,而使用通过alarm接 口。kernel由于alarm基于rtc实现, 可以看到如下架构:当系统断电时,主原创 2017-09-04 18:02:06 · 628 阅读 · 0 评论 -
[笔记分享] [RTC] RTC Hardware介绍
Platform: msm8260Clock source虽然Alarm和RTC是不同的两个功能,但是alarm基于RTC实现,所以先来看下硬件时钟图,如下:可以看出,RTC的时钟源来自32.768KHz的晶振,当RTC或者SMPS需要支持时,晶振就需要接上,否则可不接。从图上看来好像也可以由内部19.2MHz RC振荡电路提供,其实它只是提供给SLEEP_CLK使用的。这里晶振有两种。一种是自激式原创 2017-09-04 17:50:21 · 995 阅读 · 0 评论