android rtc set kernel

java层调用不管。在jni 是
framework/base/services/core/jni/com_android_server_AlarmManagerService.cpp

底层
./drivers/staging/android/alarm-dev.c
ioctl: alarm_do_ioctl  : ANDROID_ALARM_SET_RTC

由 rtc_dev = alarmtimer_get_rtcdev(); 来判断有没 rtc 设备
如果有 执行 rv = rtc_set_time(rtc_dev, &new_rtc_tm);
没有的话,就不能写时间到  rtc 中。(虽然有 /dev/rtc0)

遇到的一个小bug

我底层配置的时候,由于硬件上不需要rtc 中断,故物理上 int 脚没有连接到 cpu 。在dts 的配置的时候屏蔽掉了 irq,//irq_gpio = <&gpio0 GPIO_A5 IRQ_TYPE_EDGE_FALLING>; 这样的结果是 rtc 不能保存时间。

分析:
依次查问题,最终发现是 因为 程序在 probe 的时候没有用 device_init_wakeup (device wakeup 功能代表这个设备可以将系统从suspend中唤醒)
其代码是把 device_init_wakeup 依赖在 irq 代码里面 。没有irq 就没有 device_init_wakeup。

alarmtimer_get_rtcdev 的结果由 kernel/kernel/time/alarmtimer.c 的 alarmtimer_rtc_add_device 来确定。

alarmtimer_rtc_add_device能否添加成功是由 if (!device_may_wakeup(rtc->dev.parent)) 确认的。 device_may_wakeup 的结果是由 device_init_wakeup 来确定的。

解决:
在 probe 的时候,加入 device_init_wakeup 就可以写时间到 rtc 中了。(alarmtimer_rtc_add_device 这个函数的要求比较苛刻)

android rtc 不能写时间到 rtc 原因分析相关推荐

  1. Android开发之数据库更新失败原因分析

    案例: public void update(String name,String number,String sex){ SQLiteDatabase sqLiteDatabase=studentH ...

  2. Android Native Crash崩溃及错误原因分析二-实战解决

    一. 简述 之前有一篇文章讲诉了Android实际开发过程中一些崩溃的原因,以及对崩溃类型做了详细的介绍,简单回顾一下:Crash类型:Java和Native,JavaCrash中明显会打印出Andr ...

  3. 【linux】ARM开发板上设置RTC时间,断电重启后,设置失效的原因分析

    问题描述 linux中使用date设置时间后用hwclock -w同步到RTC,断电重启后,有时会失效 原因分析 保存时间戳 1.使用命令关机(halt)会调用rc0.d中的脚本: 2.使用命令重启( ...

  4. Linux驱动修炼之道-RTC子系统框架与源码分析【转】

    转自:http://helloyesyes.iteye.com/blog/1072433 努力成为linux kernel hacker的人李万鹏原创作品,为梦而战.转载请标明出处 http://bl ...

  5. 【Android 逆向】启动 DEX 字节码中的 Activity 组件 ( 使用 DexClassLoader 获取组件类失败 | 失败原因分析 | 自定义类加载器没有加载组件类的权限 )

    文章目录 一.使用 DexClassLoader 获取组件类失败报错 二.失败原因分析 一.使用 DexClassLoader 获取组件类失败报错 在上一篇博客 [Android 逆向]启动 DEX ...

  6. Android ListView异步加载图片乱序问题,原因分析及解决方案

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/45586553 在Android所有系统自带的控件当中,ListView这个控件算是 ...

  7. arm linux应用调用rtc接口,ARMLinux驱动RTC(实时时钟)驱动分析

    硬件平台:FL2440(S3C2440) 内核版本:Linux 2.6.28本文引用地址:http://www.eepw.com.cn/article/201611/317629.htm 主机平台:U ...

  8. Android 系统(74)--Android重启原因分析

    Android重启原因分析 重启原因分类 1.上层造成重启 system_server被杀 watchdog重启 重要线程阻塞 2.kernel造成重启 空指针 非法地址 3.kernel watch ...

  9. Android WiFi 经常掉线出现的几个原因分析!

    Android WiFi 经常掉线出现的几个原因分析! 原因1 .从Log分析来看,这个是由于Dhcp request fail 导致最终disconnect . Log 分析如下:  16:53:3 ...

最新文章

  1. python语言教程-python基础教程
  2. 【C#】using用法
  3. Protege A DOT error has occurred错误
  4. swoole mysql 协程_关于协程的优点以及swoole 协程的用法
  5. 暑假集训(3)第二弹 -----Jungle Roads(Hdu1301)
  6. 边缘计算框架_【北大成果】一种集成多组网协议多边缘计算框架的边缘计算处理平台...
  7. html 鼠标移动3d视图,HTML5 鼠标悬停3D平面摇晃动效
  8. mysql多表 性能_Mysql 多表联合查询效率分析及优化
  9. 信息学奥赛一本通(1258:【例9.2】数字金字塔)
  10. DevOps vs Agile:有什么区别?
  11. exit、_exit、abort、return的区别
  12. 使用ef core自动生成mysql表和数据编码的问题
  13. 逻辑回归模型_逻辑回归模型
  14. Maven入门:使用Nexus搭建Maven私服及上传下载jar包
  15. 作为开发你必须知道的WebSocket详解
  16. VMware vSphere client 5.1登录出现这个错误:客户端无法向服务器发送完整请求
  17. linux信号处理编程实验报告,实验二进程通信-Linux实验报告
  18. 不同的智能门锁解决方案开锁方式
  19. FairGuard游戏加固兼容摸摸鱼和TAPTAP云玩
  20. 颜值高的游戏键盘—HyperX Alloy Origins 60 霓虹粉游戏机械键盘

热门文章

  1. 马云:遇见好老板很重要;锤子上海法人变更;摩拜更名美团单车 | 极客头条...
  2. 放弃 802.11 命名方式,Wi-Fi 6 标准公布,速度快 37%
  3. “小程序 · 云开发”重磅上线,让小程序开发更高效!
  4. 深度防范,如何应对区块链安全问题?
  5. winform调用websocket_C#基于websocket的前台及后台实时推送
  6. IDEA 设置文档注释
  7. python爬虫requests库_python爬虫基础教程:requests库(二)代码实例
  8. 图像的像素原点_超火的机器视觉OpenCVSharp学习笔记3——图像形态学处理
  9. 2层框架结构柱子间距_3分钟牢记框架结构要点
  10. xml Android 冒号,冒号字符在XML元素序列化过程中被编码为x003A