android rtc 不能写时间到 rtc 原因分析
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 原因分析相关推荐
- Android开发之数据库更新失败原因分析
案例: public void update(String name,String number,String sex){ SQLiteDatabase sqLiteDatabase=studentH ...
- Android Native Crash崩溃及错误原因分析二-实战解决
一. 简述 之前有一篇文章讲诉了Android实际开发过程中一些崩溃的原因,以及对崩溃类型做了详细的介绍,简单回顾一下:Crash类型:Java和Native,JavaCrash中明显会打印出Andr ...
- 【linux】ARM开发板上设置RTC时间,断电重启后,设置失效的原因分析
问题描述 linux中使用date设置时间后用hwclock -w同步到RTC,断电重启后,有时会失效 原因分析 保存时间戳 1.使用命令关机(halt)会调用rc0.d中的脚本: 2.使用命令重启( ...
- Linux驱动修炼之道-RTC子系统框架与源码分析【转】
转自:http://helloyesyes.iteye.com/blog/1072433 努力成为linux kernel hacker的人李万鹏原创作品,为梦而战.转载请标明出处 http://bl ...
- 【Android 逆向】启动 DEX 字节码中的 Activity 组件 ( 使用 DexClassLoader 获取组件类失败 | 失败原因分析 | 自定义类加载器没有加载组件类的权限 )
文章目录 一.使用 DexClassLoader 获取组件类失败报错 二.失败原因分析 一.使用 DexClassLoader 获取组件类失败报错 在上一篇博客 [Android 逆向]启动 DEX ...
- Android ListView异步加载图片乱序问题,原因分析及解决方案
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/45586553 在Android所有系统自带的控件当中,ListView这个控件算是 ...
- arm linux应用调用rtc接口,ARMLinux驱动RTC(实时时钟)驱动分析
硬件平台:FL2440(S3C2440) 内核版本:Linux 2.6.28本文引用地址:http://www.eepw.com.cn/article/201611/317629.htm 主机平台:U ...
- Android 系统(74)--Android重启原因分析
Android重启原因分析 重启原因分类 1.上层造成重启 system_server被杀 watchdog重启 重要线程阻塞 2.kernel造成重启 空指针 非法地址 3.kernel watch ...
- Android WiFi 经常掉线出现的几个原因分析!
Android WiFi 经常掉线出现的几个原因分析! 原因1 .从Log分析来看,这个是由于Dhcp request fail 导致最终disconnect . Log 分析如下: 16:53:3 ...
最新文章
- python语言教程-python基础教程
- 【C#】using用法
- Protege A DOT error has occurred错误
- swoole mysql 协程_关于协程的优点以及swoole 协程的用法
- 暑假集训(3)第二弹 -----Jungle Roads(Hdu1301)
- 边缘计算框架_【北大成果】一种集成多组网协议多边缘计算框架的边缘计算处理平台...
- html 鼠标移动3d视图,HTML5 鼠标悬停3D平面摇晃动效
- mysql多表 性能_Mysql 多表联合查询效率分析及优化
- 信息学奥赛一本通(1258:【例9.2】数字金字塔)
- DevOps vs Agile:有什么区别?
- exit、_exit、abort、return的区别
- 使用ef core自动生成mysql表和数据编码的问题
- 逻辑回归模型_逻辑回归模型
- Maven入门:使用Nexus搭建Maven私服及上传下载jar包
- 作为开发你必须知道的WebSocket详解
- VMware vSphere client 5.1登录出现这个错误:客户端无法向服务器发送完整请求
- linux信号处理编程实验报告,实验二进程通信-Linux实验报告
- 不同的智能门锁解决方案开锁方式
- FairGuard游戏加固兼容摸摸鱼和TAPTAP云玩
- 颜值高的游戏键盘—HyperX Alloy Origins 60 霓虹粉游戏机械键盘
热门文章
- 马云:遇见好老板很重要;锤子上海法人变更;摩拜更名美团单车 | 极客头条...
- 放弃 802.11 命名方式,Wi-Fi 6 标准公布,速度快 37%
- “小程序 · 云开发”重磅上线,让小程序开发更高效!
- 深度防范,如何应对区块链安全问题?
- winform调用websocket_C#基于websocket的前台及后台实时推送
- IDEA 设置文档注释
- python爬虫requests库_python爬虫基础教程:requests库(二)代码实例
- 图像的像素原点_超火的机器视觉OpenCVSharp学习笔记3——图像形态学处理
- 2层框架结构柱子间距_3分钟牢记框架结构要点
- xml Android 冒号,冒号字符在XML元素序列化过程中被编码为x003A