我们知道alarm一般是上层设置后。kernel驱动里面将set time写入alarm寄存器,到达时间后trigger,殊不知kernel里面也能够自主设置alarm。

尤其是系统在休眠时驱动need do something时,这时睡前设置alarm后。alarm中断唤醒系统来运行。

之前写过一篇alarm文章,再想提下安卓kernel若要唤醒系统通常都是将中断注冊作为唤醒源,由中断信号唤醒系统。同一时候在中断处理增加wake lock

机制来阻止系统休眠。直到任务完毕后释放wake lock。

#include <linux/android_alarm.h>

1:定义xx_alarm变量:
struct alarm  xx_alarm;

2:alarm 触发时callback:
static void
xx_callback(struct alarm *alarm)
{
     structchip *chip = container_of(alarm, structchip,
                         xx_alarm);

schedule_work(&chip->xx_work);

}:

3:alarm初始化:

alarm_init(&chip->xx_alarm, ANDROID_ALARM_RTC_WAKEUP,
            xx_callback);

4:设置timer。调度alarm唤醒系统:

struct timespec ts;
     getnstimeofday(&ts);
     ts.tv_sec += TIME_TRIGER;
     alarm_start_range(&xx_alarm,
                     timespec_to_ktime(ts),

timespec_to_ktime(ts));

本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5271241.html,如需转载请自行联系原作者

安卓kernel自主唤醒系统方法—设置alarm相关推荐

  1. android 获取当前输入法,关于获取安卓手机系统输入法和设置输入法

    关于获取安卓手机系统输入法和设置输入法 获取输入法列表 adb shell ime list -s 出来下面的 io.appium.android.ime/.UnicodeIME com.sec.an ...

  2. 恢复出厂设置android手机号码,安卓手机怎么恢复出厂设置

    很多人的手机用久了,因为垃圾文件过多就会导致手机速度变慢,很多人就想通过恢复手机的出厂设置来提升手机的速度,就是把手机还原到刚买回来时候的那个样子,很多后来自己在手机上安装的软件和一些设置都会清除,这 ...

  3. 安卓手机端口号怎么查看_安卓手机来电闪光灯怎么设置

    现在不少手机都会提供来电提醒闪光灯功能,通过手机原有的闪光灯来提醒用户.那么安卓手机来电闪光灯怎么设置呢?下面给大家介绍一下设置方法吧. 安卓手机来电闪光灯怎么设置 1.在安卓的原生系统上没有自带有来 ...

  4. 7z001怎么解压在安卓手机上面_安卓手机来电闪光灯怎么设置

    现在不少手机都会提供来电提醒闪光灯功能,通过手机原有的闪光灯来提醒用户.那么安卓手机来电闪光灯怎么设置呢?下面给大家介绍一下设置方法吧. 安卓手机来电闪光灯怎么设置 1.在安卓的原生系统上没有自带有来 ...

  5. android手机设置固定dns,(图文)安卓手机修改WiFi DNS设置的方法

    如果你的家里WiFi之前修改过DNS,那么我们使用手机连接网络的时候可能会出现可以连接WiFi,但是不能上网的状况,对于这种状况我们要如何解决呢?下面云狐网分享一下安卓手机修改WiFi DNS设置的方 ...

  6. Android安卓手机版火狐浏览器设置简洁主页

    Android安卓手机版火狐浏览器设置简洁主页 以下内容全部为本人原创.测试过,非网络复制粘贴文本. 写作时间:2018年9月 安卓系统版本:8.1.0 手机品牌:华为 Firefox版本:62.0. ...

  7. android手机可以分屏么,安卓手机怎么分屏操作 安卓手机分屏操作设置教程

    相信很多朋友在用手机看视频或者玩游戏聊天以及参加一些应付考试等等的时候,都会想能不能同时打开多个界面,其实是可以的,只是因为很多时候手机的分屏功能没有被大家所重视,分屏操作支持大家同时打开多个界面,与 ...

  8. 主板开启网络唤醒_网卡(网络)唤醒BIOS设置教程

    网卡(网络)唤醒 BIOS 设置教程 2010 年 04 月 08 日 星期四 15:01 找不到主板说明书的可以去官方网站下载 技嘉 http://www.gigabyte.com.cn/ 华硕 h ...

  9. android x86 4.4 网络,安卓Android-x86 4.4联网设置教程 解决不能上网

    Android-x86 4.4安装完成后一般都是不能上网的,需要给网卡设置IP地址和DNS服务器方可联网.Android-x86在本质上就是Linux系统,且Android-x86自带了终端(类似Wi ...

最新文章

  1. java 存入对象io_Java面向对象 IO (一)
  2. 每天5分钟玩转容器技术 ---- 系列文章
  3. linux 3.0 kernel
  4. 什么叫死区时间_什么是示波器的死区时间
  5. 男朋友出的性格测试题
  6. 技术人解读企业为什么要平台化,关于数据中台你不知道的事...
  7. Java对象创建、分配、布局、访问小析(HotSpot虚拟机)(二)
  8. 小米商城项目解析(完)
  9. python中os模块的常用
  10. C++ byte数组/char数组 转 int16 int32
  11. SVM实现鸢尾花分类
  12. 告“抄袭”花粥做号露露们,内容创业赛道的得利者,也是牺牲品
  13. B - Mountainous landscape Gym - 100543B(线段树+计算几何)
  14. 关于msp430的BSL下载
  15. 树莓派控制PCF8591 AD/DA模块
  16. 图文电视related
  17. java导出excel文件_POI生成EXCEL文件
  18. 学习正则表达式 - 用 HTML 标记文本
  19. python文件操作和模块
  20. 浅谈 CMap 与 map

热门文章

  1. SAP 谈谈PFCG创建ROLE后打包产生TR
  2. SAP PM 入门系列2 - IE03显示设备主数据
  3. Adam又要“退休”了?耶鲁大学团队提出AdaBelief
  4. 计算机视觉 | 优秀实用的OpenCV开源项目汇总
  5. 统计学有多无聊?谷歌统计学家带你证明
  6. 详解Python拼接字符串的七种方式
  7. 算法战:需要人工智能生态系统来增强安全性
  8. 一句话总结K均值算法
  9. SAP WM 有无保存WM Level历史库存的Table?
  10. 人工神经网络中为什么ReLu要好过于tanh和sigmoid function?