Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Android下rtc驱动调用流程

首先在./frameworks/base/core/java/Android/app/目录下找到IAlarmManager.aidl内容如下:interfaceIAlarmManager {
    void set(int type, longtriggerAtTime, in PendingIntent operation);
 void setRepeating(int type, long triggerAtTime, long interval, inPendingIntent operation);
    voidsetInexactRepeating(int type, long triggerAtTime, long interval, inPendingIntent operation);
    void setTime(longmillis);
    void setTimeZone(String zone);
 void remove(in PendingIntent operation);
    voidcancelPoweroffAlarm(String name);
    booleanbootFromPoweroffAlarm();
} 函数的具体实现在./frameworks/base/core/java/android/app/目录下的·AlarmManager.java文件中,部分内容如下:publicvoid set(int type, long triggerAtMillis, PendingIntent operation){
        try {
         mService.set(type, triggerAtMillis, operation);
     } catch (RemoteException ex) {
     }
}
mService.set(type,triggerAtMillis,operation);函数实现文件为:frameworks/base/services/java/com/android/server/AlarmManagerService.java部分内容如下: publicvoid set(int type, long triggerAtTime, PendingIntent operation) {} privateclass AlarmThread extends Thread {。。。。。。
。。。。。。
intresult = waitForAlarm(mDescriptor);。。。。。。。。。。。。} privateclass AlarmThread extends Thread {
     public AlarmThread() {
 private class AlarmThread extendsThread {
        publicAlarmThread() {
 private class AlarmThread extends Thread{
        public AlarmThread(){
而waitForAlarn的实现文件为:frameworks/base/services/jni/com_android_server_AlarmManagerService.cpp部分内容为:staticJNINativeMethod sMethods[] = {
   /* name,signature, funcPtr */
     {"init", "()I",(void*)android_server_AlarmManagerService_init},
     {"close", "(I)V",(void*)android_server_AlarmManagerService_close},
     {"set", "(IIJJ)V",(void*)android_server_AlarmManagerService_set},
 {"waitForAlarm", "(I)I",(void*)android_server_AlarmManagerService_waitForAlarm},
 {"setKernelTimezone", "(II)I",(void*)android_server_AlarmManagerService_setKernelTimezone},
 {"bootFromAlarm", "(I)Z",(void*)android_server_AlarmManagerService_bootFromAlarm},
};也就在这个文件中直接对linux的rtc驱动接口进行了直接操作,再往下就进入linux驱动程序。相关阅读:时钟RTC驱动分析 http://www.linuxidc.com/Linux/2013-06/86043.htmS3C2440上RTC时钟驱动开发实例分析 http://www.linuxidc.com/Linux/2013-06/86042.htm实时时钟RTC之hwclock简介 http://www.linuxidc.com/Linux/2012-09/69915.htmS3C6410实时时钟RTC 秒字符设备 http://www.linuxidc.com/Linux/2012-09/69906.htmLinux驱动分析之RTC详解 http://www.linuxidc.com/Linux/2012-08/67808.htm