一种终端定时开机的方法及终端与流程

文档序号:26746225发布日期:2021-09-24 23:24阅读:121来源:国知局
一种终端定时开机的方法及终端与流程

1.本发明涉及嵌入式设备技术领域,尤其涉及一种终端定时开机的方法及终端。


背景技术:

2.对于嵌入式设备而言,例如智能手机,用户为了避免在工作时间段以外受到来电或者短信打扰,可以对智能手机进行关机。同时在对智能手机进行关机之前开启定时开机功能,从而避免用户下次使用时需要手动进行开机。
3.智能手机在关机之后,系统级芯片(system on chip,soc)处于掉电状态,而电源管理单元(power management unit,pmu)仍然处于上电状态,通过内部的时钟芯片(real time clock,rtc)进行计时,当rtc指示的时间大于或等于用户的预设开机时间时,pmu将执行上电程序为soc重新上电。soc上电后,将继续执行相应的开机程序,进而完成智能手机的定时开机功能。
4.但是在某些特殊情况下,例如当智能手机关机且处于安卓充电模式时,soc也可以重新进行上电,pmu可以通过i2c总线获知soc当前的上电状态,此时pmu认为soc已经重新上电,那么当rtc指示的时间大于或等于用户的预设开机时间时,pmu不会执行上电程序为soc上电,同时soc也不会执行后续的开机程序,即可以认为此时pmu对soc的定时开机功能失效。
5.可见,现有技术中某些特殊情况下嵌入式设备的定时开机功能可能会失效。


技术实现要素:

6.本发明实施例提供一种终端定时开机的方法及终端,该方法和终端能够解决现有技术中充电模式下终端定时开机功能失效的问题。
7.第一方面,本发明实施例提供一种终端定时开机的方法,所述方法包括:
8.针对所述终端处于关机且充电时,系统级芯片soc获取时钟芯片rtc的定时时刻以及系统时刻,所述定时时刻为所述终端预设的开机时刻,所述系统时刻为所述终端的基准时刻;
9.若所述soc确定所述系统时刻大于或等于所述定时时刻,则所述soc进行重启并执行开机程序。
10.终端关机且充电的模式可以认为是系统级芯片soc处于上电状态,而终端自身却处于关机状态的模式。此时pmu对soc的定时开机功能失效。而本发明实施例中,soc主动获取rtc的定时时刻与系统时刻,并通过对rtc的定时时刻与系统时刻进行比较,从而对终端定时开机的时机进行判断。当系统时刻与定时时刻满足预设条件,例如系统时刻大于或等于定时时刻,则soc进行重启并执行开机程序,进而完成终端的定时开机。该方法通过soc对定时开机功能进行管理,能够解决现有技术中充电模式下终端定时开机功能失效的问题。
11.可选的,系统级芯片soc获取时钟芯片rtc的定时时刻以及系统时刻,包括:
12.所述soc创建第一线程与第二线程,所述第一线程用于获取所述rtc的定时时刻,
所述第二线程用于获取所述终端的系统时刻。
13.本发明实施例中,为了能够实现充电模式下终端的定时开机,soc需要获取rtc的定时时刻以及系统时刻,而这对于soc而言为新增的功能,那么soc可以单独创建两个线程,例如第一线程与第二线程,来获取rtc的定时时刻以及系统时刻,从而避免对soc的其他任务造成影响。
14.可选的,所述soc创建所述第二线程,包括:
15.所述soc获取所述rtc的时钟参数;
16.若所述时钟参数指示所述rtc处于使能状态,则所述soc创建所述第二线程,所述使能状态用于表征所述rtc设置有定时时刻。
17.本发明实施例中,当rtc处于使能状态时,可以认为用户对终端设置有定时时刻,也可以认为用户对终端设置的定时开机功能为有效,那么soc则需要耗费一定的计算资源对终端的系统时刻进行监控,例如通过创建第二线程对终端的系统时刻进行监控,从而确保终端能够定时开机。
18.可选的,所述第一线程与所述第二线程均为内核级线程。
19.本发明实施例中,第一线程与第二线程均为内核级线程,即使终端运行不同的操作系统,例如,linux系统、安卓系统或者unix系统,系统级芯片都可以通过第一线程与第二线程对终端的定时开机功能进行管理。
20.可选的,系统级芯片获取时钟芯片的定时时刻以及系统时刻之后,还包括:
21.若所述定时时刻采用第一时间格式,则所述系统级芯片将所述定时时刻从所述第一时间格式转换为所述系统时刻对应的时间格式。
22.本发明实施例中,由于定时时刻采用的时间格式与系统时刻采用的时间格式不相同,例如,定时时刻采用的是第一时间格式,系统时刻采用的是其他的时间格式。因此,系统级芯片分别获取定时时刻以及系统时刻后,需要将定时时刻的时间格式转换为系统时刻所对应的时间格式,以便于对定时时刻与系统时刻进行比较。
23.可选的,系统级芯片获取时钟芯片的定时时刻以及系统时刻之前,还包括:
24.所述系统级芯片接收来自电源管理单元的电压信号,所述电压信号用于在所述终端处于关机状态时启动所述系统级芯片。
25.本发明实施例中,当终端处于关机状态时,电源管理单元仍处于上电状态;此时若终端检测到自身处于充电状态,那么电源管理单元可以向系统级芯片发送电压信号,从而使系统级芯片进行启动。
26.可选的,还包括:
27.所述系统级芯片周期性地获取所述系统时刻。
28.本发明实施例中,系统级芯片可以周期性地获取系统时刻,那么获取的系统时刻更加准确,进而使得定时开机的时刻更加准确。
29.可选的,还包括:
30.针对所述终端关机之前,所述系统级芯片接收针对所述终端运行的第三方应用的操作指令,所述操作指令用于设置所述终端的开机时刻;
31.所述系统级芯片将所述开机时刻写入所述时钟芯片。
32.本发明实施例中,第三方应用可以认为是定时开关应用,用户通过对第三方应用
进行操作,可以设置终端的定时开机时刻。系统级芯片在接收到用户对第三方应用的操作指令后,可以将用户设置的定时开机时刻写入时钟芯片中,以便于时钟芯片对定时开机过程进行管理。
33.可选的,所述系统级芯片将所述开机时刻写入所述时钟芯片,包括:
34.若所述开机时刻采用第二时间格式,则所述系统级芯片将所述开机时刻从所述第二时间格式转换为所述时钟芯片对应的时间格式;
35.所述系统级芯片将所述开机时刻以与所述时钟芯片对应的时间格式写入所述时钟芯片。
36.本发明实施例中,用户设置的开机时刻采用的时间格式,例如第二时间格式,与时钟芯片所对应的时间格式不相同,那么系统级芯片可以将开机时刻的时间格式从第二时间格式转换为时钟芯片所对应的时间格式,以便于时钟芯片对终端的定时开机过程进行管理。
37.可选的,所述系统级芯片将所述开机时刻以与所述时钟芯片对应的时间格式写入所述时钟芯片之后,还包括:
38.所述系统级芯片向所述时钟芯片发送控制指令,所述控制指令用于将所述时钟芯片的时钟参数设置为预设值。
39.本发明实施例中,系统级芯片通过将时钟芯片中的时钟参数设置为预设值,从而使时钟芯片可以得知用户设置的定时时刻为有效,那么时钟芯片就可以开始进行计时。
40.第二方面,本发明实施例提供一种系统级芯片,所述终端处于关机且充电时,所述系统级芯片包括:
41.获取单元,用于获取时钟芯片的定时时刻以及系统时刻,所述定时时刻为所述终端预设的开机时刻,所述系统时刻为所述终端的基准时刻;
42.开机单元,用于当确定所述系统时刻大于或等于所述定时时刻,则对所述系统级芯片进行重启并执行开机程序。
43.可选的,还包括:
44.创建单元,用于创建第一线程与第二线程,所述第一线程用于获取所述时钟芯片的定时时刻,所述第二线程用于获取所述终端的系统时刻。
45.可选的,所述创建单元具体用于:
46.获取所述rtc的时钟参数;
47.若所述时钟参数指示所述rtc处于使能状态,则创建所述第二线程,所述使能状态用于表征所述rtc设置有定时时刻。
48.可选的,所述第一线程与所述第二线程均为内核级线程。
49.可选的,还包括:
50.转换单元,用于若所述定时时刻采用第一时间格式,则所述系统级芯片将所述定时时刻从所述第一时间格式转换为所述系统时刻对应的时间格式。
51.可选的,还包括:
52.第一接收单元,用于接收来自电源管理单元的电压信号,所述电压信号用于在所述终端处于关机时启动所述系统级芯片。
53.可选的,所述获取单元具体用于:
54.周期性地获取所述系统时刻。
55.可选的,还包括:
56.第二接收单元,用于所述终端处于关机且充电之前,所述系统级芯片接收针对所述终端运行的第三方应用的操作指令,所述操作指令用于设置所述终端的开机时刻;
57.写入单元,用于将所述开机时刻写入所述时钟芯片。
58.可选的,所述写入单元具体用于:
59.若所述开机时刻采用第二时间格式,则所述系统级芯片将所述开机时刻从所述第二时间格式转换为所述时钟芯片所对应的时间格式;
60.所述系统级芯片将所述开机时刻以与所述时钟芯片所对应的时间格式写入所述时钟芯片。
61.可选的,还包括:
62.发送单元,用于向所述时钟芯片发送控制指令,所述控制指令用于将所述时钟芯片的时钟参数设置为预设值。
63.第三方面,本发明实施例提供一种终端,所述终端处于关机且充电时,所述终端包括:
64.时钟芯片rtc;
65.系统级芯片soc,与所述rtc电性连接,所述soc用于获取所述rtc的定时时刻以及系统时刻,所述定时时刻为所述终端预设的开机时刻,所述系统时刻为所述终端的基准时刻;
66.其中,若所述soc确定所述系统时刻大于或等于所述定时时刻,则所述soc进行重启并执行开机程序。
67.第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面实施例所述方法的步骤。
附图说明
68.图1为本发明实施例提供的终端定时开机设置界面示意图;
69.图2为本发明实施例提供的一种终端的架构示意图;
70.图3为本发明实施例提供的一种终端的架构示意图;
71.图4为本发明实施例提供的一种终端定时开机的方法的流程示意图;
72.图5为本发明实施例提供的一种系统级芯片的结构示意图;
73.图6为本发明实施例提供的一种终端的结构示意图。
具体实施方式
74.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
75.请参见图1,为本发明实施例提供的终端定时开机设置界面的示意图。该定时开机设置界面可以认为是定时开关类应用的显示界面,该显示界面包括三个子区域,例如第一子区域、第二子区域以及第三子区域。用户可以分别对该三个子区域进行设置,从而达到开启定时开机功能的目的。
76.例如,第一子区域包括两个按钮,例如“开”按钮与“关”按钮。若选择第一子区域中的“开”按钮,那么终端的定时开机功能开启;若选择第一子区域中的“关”按钮,那么终端的定时开机功能关闭。第二子区域采用24小时制进行显示,用于设置定时开机时间,例如可以将终端的开机时间设置为8点整。第三子区域用于设置定时开机的频率。考虑到用户一般在睡觉前关闭手机,而在醒来之后开启手机,因此可以将定时开机的频率设置为“每天”。
77.应理解,第一子区域中的“开”按钮与“关”按钮具有最高的优先级,即当选择“开”按钮后,无论第二子区域与第三子区域如何设置,终端确定能够在将来的某一时刻进行定时开机;反之,当选择“关”按钮后,无论第二子区域与第三子区域如何设置,终端确定无论何时都不会进行定时开机。
78.请参见图2,为一种现有的终端的架构示意图。图2中包括:电源管理单元(power management unit,pmu)201与系统级芯片(system on chip,soc)202,其中pmu201包括rtc2011。soc202通过自身运行的第三方应用接收用户输入的定时信息,例如该第三方应用可以为定时开关应用。soc202将用户输入的定时信息发送给自身内核中的rtc驱动程序,即可以认为rtc驱动程序中携带有用户预设的定时开机信息。soc202通过i2c(inter-intergrated circuit)总线与pmu201进行通信,那么soc202可以通过rtc驱动程序将用户预设的定时开机信息写入rtc2011。当定时开机信息写入完成后,可以将终端进行关机。现有技术中,此时可以认为soc202处于掉电状态,而pmu201处于上电状态,pmu201中rtc2011开始进行计时。当rtc1011指示的时间大于或等于用户预设的定时开机时间时,rtc2011开启中断,即通过rtc控制程序调用上电程序为soc102上电。soc202上电后,则调用开机程序,进而终端完成定时开机。
79.上述方法仅针对普通情况下的定时开机过程,但是在某些特殊情况下,例如充电模式时,终端关机后soc202将处于上电状态,pmu201可能误认为终端已经启动。若此时终端的定时开机功能处于开启状态,那么当定时时刻到达时,pmu201将不再为soc202重新上电且不会调用开机程序,最终导致终端定时开机功能失效。
80.鉴于此,本发明实施例提供一种终端定时开机的方法,该方法将原本运行于pmu上的部分程序移植到了soc上,使得soc能够获取rtc的定时时刻以及系统时刻,从而解决现有技术中充电模式下终端定时开机功能失效的问题,提升用户体验。
81.为了便于理解,首先介绍本发明实施例的一种应用场景。请参见图3,为本发明实施例提供的一种终端的架构示意图。图3与图2的不同之处在于,图3中将原本运行于pmu201上的部分程序移植到soc202。例如,部分rtc控制程序,使得so202可以获取与终端定时开机功能相关的信息,例如,定时时刻与系统时刻,从而对终端的定时开机功能进行管理。
82.基于图3所示的架构示意图,下面结合附图对本发明实施例提供的技术方案进行介绍。请参见图4,本发明实施例提供了一种终端定时开机的方法,该方法的流程描述如下。
83.步骤401:soc202获取时钟芯片rtc2011的定时时刻以及系统时刻。
84.pmu201与soc202之间可以通过i2c总线进行信息传输,那么pmu201可以获知soc202当前的状态信息,例如soc202处于上电状态或者掉电状态。现有技术中,当soc202在关机且充电模式下重新上电之后,pmu201认为soc202已经启动。那么即使pmu201中rtc2011指示的时间达到用户预设的开机时间,pmu201也不会调用上电程序为soc202重新上电,进而soc202也无法执行开机程序。此时可以认为pmu201对soc202的定时开机功能失效。即对
于soc202而言,在pmu201对定时开机功能失效后,soc202不确定何时进行上电并执行开机程序。而本发明实施例中,为了实现关机且充电模式下的定时开机,可以将部分原本运行于pmu201中的部分程序移植至soc202,使得soc202可以通过自身获取rtc的定时信息以及终端的系统时间信息,从而对定时开机任务进行管理。
85.作为一种可能的实施方式,soc202可以获取rtc2011的定时时刻以及系统时刻。
86.rtc2011的定时时刻可以认为是用户预设的开机时刻,系统时刻可以认为是终端的基准时刻。那么soc202通过比较rtc2011的定时时刻以及系统时刻,可以确定出自身何时执行开机程序。例如,当确定系统时刻大于或等于定时时刻时,soc202可以控制重启机构对自身进行重启,进而执行开机程序。同时为了使soc202能够更加准确地对定时开机过程进行管理,本发明实施例中,soc202可以周期性地获取系统时刻,例如每隔500ms获取一次系统时刻,从而使得获取的系统时刻更加准确。
87.在一些实施例中,soc202在获取rtc2011的定时时刻以及系统时刻之前,考虑到终端处于关机状态,此时soc202处于掉电状态。那么当终端在关机状态下进入充电模式时,soc202需要进行启动才能对后续的定时开机功能进行管理。因此,本发明实施例中,soc202可以接收来自pmu201的电压信号,该电压信号用于在终端处于关机状态时启动soc202。
88.例如,pmu201中可以检测是否有电平输入,例如当充电电极插入pmu201时可以产生高电平,该高电平可以触发pmu201调用上电程序为soc202上电,即为soc202施加额定的电压,使其进行启动。
89.在一些实施例中,考虑到soc202的现有机制是通过并行线程的方式对任务进行管理,例如通过不同的线程分别管理语音通话任务和短信发送与接收任务,那么对于soc202而言,终端的定时开机任务可以认为是新增加的任务。因此,在本发明实施例中,soc202可以创建第一线程与第二线程,第一线程用于获取rtc2011的定时时刻,第二线程用于获取终端的系统时刻。
90.由于第一线程与第二线程是新建的,因此第一线程与第二线程可以认为与soc202中现有的并行线程是彼此独立的。那么通过第一线程与第二线程对终端的定时开机任务进行管理不会对soc202的现有任务造成影响。
91.在一些实施例中,考虑到终端可能包括不同的类型,例如智能手机(如android手机、ios手机)、平板电脑、笔记本电脑、掌上电脑、穿戴式智能设备等电子设备。也可以是别的电子设备,在此,就不一一举例了。上述不同类型的终端可能搭载不同的操作系统,例如,linux系统、安卓系统或者unix系统,为了确保在不同的操作系统下,soc202都可以获取到定时时刻与系统时刻,本发明实施例中,第一线程与第二线程均为内核级线程,从而使得soc202在不同的操作系统中都可以对终端的定时开机功能进行管理。
92.在一些实施例中,第一线程与第二线程可以认为无需同时进行创建。第一线程是soc202上电之后创建的,用于获取rtc2011的定时时刻。若用户对pmu201中rtc2011设置有定时时刻,也可以认为用户设置了定时开机功能,那么soc202则创建第二线程获取系统时刻;若用户对pmu201中rtc2011未设置有定时时刻,也可以认为用户未设置定时开机功能,那么soc202则不必创建第二线程,从而可以节约计算资源。因此soc202在创建第二线程之前,需要对rtc2011是否设置有定时时刻进行判断。
93.作为一种可能的实施方式,soc202可以获取rtc2011的时钟参数,若时钟参数指示
rtc2011处于使能状态,则soc202创建第二线程。
94.应理解,soc202可以通过第一线程获取rtc2011的时钟参数,或者通过其他线程,例如第三线程,获取rtc2011的时钟参数,此处不对获取rtc2011时钟参数的方式进行特别限定。
95.例如,soc202可以运行以下程序获取rtc2011的时钟参数alarm。
96.struct rtc_wkalrm{
97.unsigned char enabled;/0=禁止alarm,1=使能alarm/
98.unsigned char pending;/0=alarm未挂起,1=alarm挂起(已发生)/
99.struct rtc_time time;/设置的alarm中断发生的时刻/
100.}
101.时钟参数alarm的使能位取值为0或1。例如,时钟参数alarm的使能位为1则对应使能状态,时钟参数alarm的使能位为0则对应禁止状态;或者,时钟参数alarm的使能位为0则对应使能状态,则时钟参数alarm的使能位为1则对应禁止状态。此处不对时钟参数alarm的取值与rtc2011的状态之间的对应关系作出特别限定。使能状态可以认为是用户对rtc2011设置的定时时刻为有效的状态;禁止状态可以认为是用户对rtc2011设置的定时时刻为无效的状态。
102.在一些实施例中,soc202从rtc2011获取的定时时刻是在终端进入关机且充电模式之前进行设置的。例如,在终端进行关机之前,soc202可以接收针对终端运行的第三方应用的操作指令,该操作指令用于设置终端的开机时刻。
103.具体的,第三方应用可以认为是定时开关类应用。soc202通过自身运行的第三方应用接收用户输入的定时信息,soc202将用户输入的定时信息发送给自身内核中的rtc驱动程序,即可以认为rtc驱动程序中携带有用户预设的定时开机信息。soc202通过i2c总线与pmu201进行通信,那么soc202可以通过rtc驱动程序将用户预设的定时开机信息写入rtc2011。
104.在一些实施例中,用户通过定时开关类应用设置的开机时刻采用第一时间格式进行表示,例如第一时间格式为unix时间,而这与rtc2011所对应的时间格式不相同,例如,rtc2011所对应的时间格式为rtc时间。因此,为了能够将开机时刻写入rtc2011,本发明实施例中,soc202可以将开机时刻从第一时间格式转换为rtc2011所对应的时间格式。
105.例如,soc202可以首先将开机时刻第一时间格式,即unix时间,转换为通用协调时(universal time coordinated,utc)。例如,可以通过以下程序将unix时间转换为utc时间。
106.struct tm timeptr;/utc时间/;
107.time_t timestamp;/unix时间/
108.timestamp=millis/1000;
109.gmtime_r(&timestamp.&timeptr);/unix时间转换为utc时间/
110.soc202在将unix时间转换为utc时间后,进一步的,需要将utc时间转换为rtc2011可以识别的时间格式,即rtc时间。例如,soc202可以通过以下程序将utc时间转换为rtc时间。
111.rtctime.tm_sec=timeptr.tm_sec;/秒转换/
112.rtctime.tm_min=timeptr.tm_min;/分转换/
113.rtctime.tm_hour=timeptr.tm_hour;/时转换/
114.rtctime.tm_mday=timeptr.tm_mday;/一月的第n天转换/
115.rtctime.tm_mon=timeptr.tm_mon;/月转换/
116.rtctime.tm_year=timeptr.tm_year;/年转换/
117.rtctime.tm_wday=timeptr.tm_wday;/一周中的第n天转换/
118.rtctime.tm_yday=timeptr.tm_yday;/一年中的第n天转换/
119.rtctime.tm_isdst=timeptr.tm_isdst;/夏令时标志转换/
120.soc202将utc时间转换为rtc时间后,可以将定时时刻设置到rtc2011。
121.具体的,首先可以打开rtc2011的定时器。例如可以通过以下程序实现:
122.int fd=open("/dev/rtc0",o_rdonly);/打开rtc定时器/
123.将rtc时间指示的定时时刻设置到rtc2011。例如定时时刻的设置过程可以通过以下程序进行实现。
124.int ret1=ioctl(fd,rtc_alm_set,&rtctime);/将rtc定时时刻设置到rtc定时器/
125.soc202在将开机时刻写入rtc2011之后,rtc2011无法得知何时开始进行计时。因此本发明实施例中,soc202可以向rtc2011发送控制指令,该控制指令用于将rtc2011的时钟参数设置为预设值。
126.具体的,时钟参数的预设值可以为1,表示对rtc2011设置的定时时刻为有效,此时rtc2011开始计时;反之,时钟参数的预设值也可以为0,表示对rtc2011设置的定时时刻为无效,此时rtc2011不动作。例如,可以通过以下程序对rtc2011的时钟参数进行设置。
127.int ret2=ioctl(fd,rtc_aie_on,1);/设置为使能状态,表示定时设置有效/
128.int ret2=ioctl(fd,rtc_aie_on,0);/设置为禁止状态,表示定时设置无效/
129.步骤402:soc202确定系统时刻大于或等于定时时刻,则soc202进行重启并执行开机程序。
130.当系统时刻与rtc2011的定时时刻之间满足预设关系,例如系统时刻大于rtc2011的定时时刻,则表明已经达到用户预设的定时开机时刻。此时soc202已经处于上电状态,但是该上电状态并不是由定时开机功能触发的,导致soc202无法在该上电状态下直接执行开机程序。因此为了达到定时开机的目的,在系统时刻与rtc2011的定时时刻满足预设关系时,可以触发对soc202进行重启进而执行开机程序。
131.作为一种可能的实施方式,若确定系统时刻大于或等于定时时刻,soc202可以进行重启并执行开机程序。
132.soc202进行重启的过程可以认为是定时开机功能触发soc202重新上电的过程。因此当soc202进行重启后,便可以根据内部的程序设定继续执行开机程序,使得终端进行定时开机。
133.在一些实施例中,soc202在对系统时刻与定时时刻进行比较之前,需要将定时时刻与系统时刻转换为相同的时间格式。对于定时时刻而言,由于该定时时刻保存在rtc2011中,因此定时时刻采用第一时间格式为rtc2011所对应的时间格式,即rtc时间,而系统时刻通常采用unix时间进行表示。为便于soc202对定时时刻与系统时刻进行比较,本发明实施
例中,soc202可以将定时时刻从第一时间格式转换为系统时刻所对应的时间格式。
134.具体的,当终端进入关机且充电模式时,soc202可以向rtc2011获取rtc2011中保存的定时时刻。例如,soc202可以通过运行以下程序读取rtc2011的定时时刻。
135.struct rtc_time{
136.inttm_sec;/秒,0~60(60是闰秒的需要)/
137.inttm_min;/分钟,0~59/
138.inttm_hour;/小时,0~23/
139.inttm_mday;/本月中的第几天,1~31/
140.inttm_mon;/自一月以来的第几个月,0~11/
141.inttm_year;/自1900年以来的年数/
142.inttm_wday;/本周的第几天,0~6,星期天是0/
143.inttm_yday;/一年当中的第几天,0~365/
144.inttm_isdst;/夏令时标志/
145.}
146.soc202获取到rtc2011中保存的定时时刻之后,由于该定时时刻采用的是rtc时间,因此为了便于对定时时刻与系统时刻进行比较,那么可以将定时时刻的时间格式从rtc时间转换为unix时间。
147.例如,首先soc202可以通过运行以下程序将定时时刻的rtc时间格式转换为utc时间格式。
148.rtctrstruct.tm_sec=alarm.time.tm_sec;/秒转换/
149.rtctrstruct.tm_min=alarm.time.tm_min;/分转换/
150.rtctrstruct.tm_hour=alarm.time.tm_hour;/时转换/
151.rtctrstruct.tm_mday=alarm.time.tm_mday;/一月的第n天转换/
152.rtctrstruct.tm_mon=alarm.time.tm_mon;/月转换/
153.rtctrstruct.tm_year=alarm.time.tm_year;/年转换/
154.rtctrstruct.tm_wday=alarm.time.tm_wday;/一周中的第n天转换/
155.rtctrstruct.tm_yday=alarm.time.tm_yday;/一年中的第n天转换/
156.rtctrstruct.tm_isdst=alarm.time.tm_isdst;/夏令时标志转换/
157.soc202将utc时间格式转换为unix时间格式。例如,soc202可以运行以下程序将定时时刻从utc时间格式转换为unix时间格式。
158.rtctrseconds=mktime(&rtctrstruct);//utc时间转换成系统unix时间
159.应理解,定时时刻写入rtc2011的过程可以认为是unix时间转换为rtc时间,soc202获取定时时刻的过程可以认为是rtc时间转换为unix时间。而soc202获取的系统时刻采用的是unix时间格式,那么在同一时间格式下,soc202通过周期性比较定时时刻与系统时刻,从而可以较为准确的判断出终端的定时开机时刻。
160.本发明中,soc可以主动获取rtc的定时时刻与系统时刻,并通过对rtc的定时时刻与系统时刻进行比较,从而对终端定时开机的时机进行判断。当系统时刻与定时时刻满足预设条件,例如系统时刻大于或等于定时时刻,则soc进行重启并执行开机程序,进而完成终端的定时开机。该方法通过soc对定时开机功能进行管理,能够解决现有技术中充电模式
下终端定时开机功能失效的问题。
161.请参见图5,基于同一发明构思,并结合如图3所示的终端的架构示意图,本发明实施例提供一种系统级芯片soc202,当终端处于关机且充电时,该soc202包括获取单元501与开机单元502。
162.获取单元501,用于获取时钟芯片rtc2011的定时时刻以及系统时刻,定时时刻为终端预设的开机时刻,系统时刻为终端的基准时刻;
163.开机单元502,用于当确定系统时刻大于或等于定时时刻,则对soc202进行重启并执行开机程序。
164.可选的,soc202还包括:
165.创建单元,用于创建第一线程与第二线程,第一线程用于获取rtc2011的定时时刻,第二线程用于获取终端的系统时刻。
166.可选的,创建单元具体用于:
167.获取rtc2011的时钟参数;
168.若所述时钟参数指示rtc2011处于使能状态,则创建所述第二线程,所述使能状态用于表征rtc2011设置有定时时刻。
169.可选的,所述第一线程与所述第二线程均为内核级线程。
170.可选的,还包括:
171.转换单元,用于若所述定时时刻采用第一时间格式,则所述系统级芯片将所述定时时刻从所述第一时间格式转换为所述系统时刻所对应的时间格式。
172.可选的,还包括:
173.第一接收单元,用于接收来自电源管理单元的电压信号,该电压信号用于在终端处于关机状态时启动soc202。
174.可选的,获取单元501具体用于:
175.周期性地获取系统时刻。
176.可选的,还包括:
177.第二接收模块,用于在终端处于关机且充电之前,soc202接收针对终端运行的第三方应用的操作指令,该操作指令用于设置终端的开机时刻;
178.写入模块,用于将开机时刻写入rtc2011。
179.可选的,所述写入单元具体用于:
180.若开机时刻采用第二时间格式,则soc202将开机时刻从第二时间格式转换为rtc2011所对应的时间格式;
181.soc202将开机时刻以与rtc2011所对应的时间格式写入rtc2011。
182.可选的,还包括:
183.发送单元,用于向时钟芯片发送控制指令,该控制指令用于将rtc2011的时钟参数设置为预设值。
184.请参见图6,基于同一发明构思,本发明实施例提供一种终端,该终端处于关机且充电时,该终端包括:
185.时钟芯片rtc601;
186.系统级芯片soc602,与rtc601电性连接,soc602用于获取rtc601的定时时刻以及
系统时刻,定时时刻为终端预设的开机时刻,系统时刻为终端的基准时刻;
187.其中,若soc602确定系统时刻大于或等于定时时刻,则soc602进行重启并执行开机程序。
188.本发明实施例还提供一种计算机存储介质,其中,计算机存储介质存储有计算机指令,当计算机指令在计算机上运行时,使得计算机执行如图4所述的方法。
189.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1