1. 程式人生 > >安卓kernel自主喚醒系統方法—設定alarm

安卓kernel自主喚醒系統方法—設定alarm

我們知道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));

相關推薦

kernel自主喚醒系統方法設定alarm

我們知道alarm通常是上層設定後,kernel驅動裡面將set time寫入alarm暫存器,到達時間後trigger,殊不知kernel裡面也可以自主設定alarm, 尤其是系統在休眠時驅動need do something時,這時睡前設定alarm後,alarm中斷

5.0新增系統設定方法

安卓5.0後使用dashboard佈局設定介面,即最外層介面使用dashboard佈局,每個dashboard-tile對應一個preferencesceen。 <!-- WIRELESS and NETWORKS --> <dashbo

ubuntu系統安裝模擬器(Android SDK)的方法

ubuntu或者別的linux系統安裝安卓模擬器(Android SDK)的方法跟Windows差不多,今天安卓部落就教大家怎麼樣在ubuntu環境下安裝安卓模擬器。   首先下載Android SDK   Android SDK官方下載地址:http://develop

魅藍note2 解鎖bootloader,刷twrp,刷7.1.1系統

android廢話不多說,下面開始解鎖刷機。。。。一、解bl鎖1.1 安裝相關驅動下載SP刷機所需驅動並安裝 SPflashtool驅動下載地址: https://spflashtool.com/download/MediaTek_USB_VCOM_drivers.zip 安裝驅動設備:

字型不隨系統字型變化

app字型不隨著系統設定變大變小   在基類BaseActivity 裡面設定即可,重寫getResources()方法 具體程式碼如下 原文地址:https://www.jianshu.com/p/059f3bad61b2 @Override public R

MUI下拉載入手機無效的解決方法

解決方法: 第一步:在html中定義全域性變數; <script>var h5pullDown = true;</script> 第二步:確定引入的js是mui.js,不是mui.min.js; <script src="mui.js">&

MUI下拉加載手機無效的解決方法

html中 read 定義 func 初始 UNC refresh 地方 代碼 解決方法: 第一步:在html中定義全局變量; <script>var h5pullDown = true;</script> 第二步:確定引入的js是mui.js

專案線上考試系統,防駕考寶典,送給在愁期末專案的學弟學妹們

在此宣告,此線上考試系統是利用業餘時間寫的一個Demo,功能並沒有完善,還有兩個功能模組沒寫完,程式碼註釋詳細, 並且我會在文章結尾附上原始碼的下載地址。 我們先來看兩個功能模組的效果圖,覺得喜歡你再下載原始碼,由於github賬號忘記了,所以原始碼只能放在部落格裡. 注:次專案沒用到網路,考

專案eclipse有用教程:設定應用名字和圖示、螢幕、簽名、真機除錯、clean、logcat、json解析

怎樣在安卓專案中。設定遊戲的應用名字和圖示? 我們在Androidproject的res資源目錄下。會看到3個drawable的目錄和一個values目錄。就是在這裡改動即可。

iphone免越獄 /IOS shadowsock及配置方法

shadowsocks安卓:傳送門 蘋果傳送門 蘋果操作步驟如下: 第一步:開啟“設定”--“iTunes Store與App Store”--點選你賬號並“退出登入” 第二步:在“iTunes Store與App Store”登入Apple ID(這裡的ID是我給你

應聘資訊管理系統開發原始碼

原始碼如下: AddmessageActivity.java package com.example.xinximanger; import java.io.Serializable; import java.text.SimpleDateFormat; impor

Genymotion模擬器及離線使用方法

1.下載並安裝virtualboxhttp://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html#vbox或http://download.virtualbox.org/vir

裝置的網路adb除錯設定

1、安卓的adb除錯模式有兩種:一、使用usb線;二、使用網路。 2、使用網路adb模式:安卓裝置跟電腦需處於同一區域網內,可以使用有線網的方式,或是讓電腦跟安卓裝置連線在同一wifi路由下,亦可通過電腦建立wifi熱點讓安卓裝置連線都可以。 3、設定網路a

口令紅包漏洞破解方法“如何搶到非蘋果使用者不能搶到的紅包”

      最近在各大媒體網站如微信朋友圈,QQ空間以及一些各種聯盟上都出現了一條“非蘋果使用者不能搶的口令紅包”。該紅包通過利用安卓手機的漏洞實現,而對於蘋果機則不影響。       紅包發生方法如

EditText--輸入框輸入內容設定可見和不可見

輸入框輸入內容設定可見和不可見 1、程式碼中設定編輯框設定內容不可見 edittext.setTransformationMethod(new PasswordTransformationMethod()); 可見: password.setTransformationMe

基於的景點講解系統,java管理系統畢業設計

**基於安卓的景點講解系統,java管理系統畢業設計** 基於安卓的景點講解系統mysql資料庫建立語句 基於安卓的景點講解系統oracle資料庫建立語句 基於安卓的景點講解系統sqlserver資料庫建立語句 基於安卓的景點講解系統spring springMVC

8.0 O系統頂部通知提示狀態列

安卓8.0系統和8.0以下系統顯示彈出通知狀態列方法。 notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); //建立noti

手機進入工程模式方法

華為: 一、華為手機進入工程模式方法: 1. 進入撥號介面輸入:*#*#2846579#*#* 2.  後臺設定----LOG設定; 二、華為wifi版(沒有撥號app)進入工程模式方法:

中webview的使用方法介紹

本文主要講解WebView的一些常用使用方法 程式碼如下: xml檔案: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http

開發--textView的字型樣式設定設定宋體,微軟雅黑等)

這是我的第一篇部落格,如果有啥不好的地方請多直接! 最近專案中出現把字型設定成宋體,微軟雅黑,黑體,楷體等的需求; 度娘發現Android系統預設支援三種字型,分別為:“sans”, “serif”, “monospace",除此之外還可以使用其他字型檔案(*.ttf) 程