终端启动方法和装置技术领域
本公开涉及计算机应用技术领域,特别涉及一种终端启动方法和装置。
背景技术
终端中,为保证足够的内存空间运行系统主程序,大都进行内存空间预设,将使用
的内存空间固化。系统主程序在固化的一内存空间中运行,并且也为应用层程序预留空间,
以使得应用层程序在另一固化的内存空间中运行。
也就是说,终端启动中,系统主程序是在固定的内存空间中运行。系统主程序则是
一直使用其所固定的内存空间的。
因此,对于系统主程序所一直使用的内存空间,将会使得此内存空间产生累积损
坏,影响此内存空间的寿命。
系统主程序所一直使用的内存空间的寿命决定了终端的产品寿命,从而制约了终
端的产品寿命,即损坏以后将导致终端无法启动。
发明内容
为了解决相关技术中为系统主程序所固化的内存空间存在累积损环,制约终端的
产品寿命的技术问题,本公开提供了一种终端启动方法和装置,所述终端启动方法和装置,
能够避免内存空间的累积损坏,提高终端的产品寿命。
一种终端启动方法,所述方法包括:
触发启动的终端中引导Boot程序运行;
在所述Boot程序的运行中确定触发的偏移标记;
根据触发的所述偏移标记确定指向的内存空间,所述偏移标记用于指示本次启动
中系统主程序运行的内存空间;
引导系统主程序在指向的所述内存空间运行;
所述系统主程序运行后,调用应用层程序进入其它内存空间。
一种终端启动装置,所述装置包括:
Boot引导模块,用于触发启动的终端中引导Boot程序运行;
标记变换模块,用于在所述Boot程序的运行中确定触发的偏移标记;
空间确定模块,用于根据触发的所述偏移标记确定指向的内存空间,所述偏移标
记用于指示本次启动中系统主程序运行的内存空间;
主程序引导模块,用于引导系统主程序在指向的所述内存空间运行;
应用层调用模块,用于所述系统主程序运行后,调用应用层程序进入其它内存空
间。
本公开的实施例提供的技术方案可以包括以下有益效果:
触发启动的终端中,首先引导Boot程序运行,在Boot程序的运行中确定触发的偏
移标记,此偏移标记指向一内存空间,因此,根据触发的偏移标记确定指向的内存空间,引
导系统主程序在此内存空间中运行,后续所调用的应用层程序则进入其它内存空间,由此,
将使得每一次终端启动中,偏移标记相对上一次终端启动动态变化,通过动态变化的偏移
标记,动态变化系统主程序所使用的内存空间,而不再为此系统主程序固化内存空间,进而
能够避免内存空间的累积损坏,提高终端的产品寿命。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施
例,并于说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种装置的框图
图2是根据一示例性实施例示出的一种终端启动的方法的流程图;
图3是根据一示例性实施例示出的对根据上一次启动中系统主程序回传的环境变
量将存储的偏移标记变换为环境变量关联的偏移标记步骤的细节进行描述的流程图;
图4是根据一示例性实施例示出的对引导系统主程序在指向的内存空间运行步骤
的细节进行描述的流程图;
图5是根据根据一示例性实施例示出的终端中处理器的实现框图;
图6是根据一示例性实例示出的现有技术中终端启动的实现流程图;
图7是根据一示例性实施例示出的本公开所实现的终端启动的应用示意图;
图8是根据一示例性实施例示出的一种终端启动装置的框图;
图9是根据一示例性实施例示出的对标记变换模块的细节进行描述的框图;
图10是根据一示例性实施例示出的对主程序引导模块的细节进行描述的框图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及
附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例
中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附
权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是一示例性实施例示出的一种装置100的框图。例如,装置100可以是智能终
端,例如,智能电视终端。
参照图1,装置100可以包括以下一个或多个组件:处理组件102,存储器104,电源
组件106,多媒体组件108,音频组件110,传感器组件114以及通信组件116。
处理组件102通常控制装置100的整体操作,诸如与显示,电话呼叫,数据通信,相
机操作以及记录操作相关联的操作等。处理组件102可以包括一个或多个处理器118来执行
指令,以完成下述的方法的全部或部分步骤。此外,处理组件102可以包括一个或多个模块,
便于处理组件102和其他组件之间的交互。例如,处理组件102可以包括多媒体模块,以方便
多媒体组件108和处理组件102之间的交互。
存储器104被配置为存储各种类型的数据以支持在装置100的操作。这些数据的示
例包括用于在装置100上操作的任何应用程序或方法的指令。存储器104可以由任何类型的
易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦
除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器
(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储器104中还存储有一个
或多个模块,该一个或多个模块被配置成由该一个或多个处理器118执行,以完成下述图2、
图3和图4任一所示方法中的全部或者部分步骤。
电源组件106为装置100的各种组件提供电力。电源组件106可以包括电源管理系
统,一个或多个电源,及其他与为装置100生成、管理和分配电力相关联的组件。
多媒体组件108包括在所述装置100和用户之间的提供一个输出接口的屏幕。在一
些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏
幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感
器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作
的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。屏幕还可以包括有机
电致发光显示器(OLED)。
音频组件110被配置为输出和/或输入音频信号。例如,音频组件110包括一个麦克
风(MIC),当装置100处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配
置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器104或经由通信组
件116发送。在一些实施例中,音频组件110还包括一个扬声器,用于输出音频信号。
传感器组件114包括一个或多个传感器,用于为装置100提供各个方面的状态评
估。例如,传感器组件114可以检测到装置100的打开/关闭状态,组件的相对定位,传感器组
件114还可以检测装置100或装置100一个组件的位置改变以及装置100的温度变化。在一些
实施例中,该传感器组件114还可以包括磁传感器,压力传感器或温度传感器。
通信组件116被配置为便于装置100和其他设备之间有线或无线方式的通信。装置
100可以接入基于通信标准的无线网络,如WiFi。在一个示例性实施例中,通信组件116经由
广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例
中,所述通信组件116还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于
射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他
技术来实现。
在示例性实施例中,装置100可以被一个或多个应用专用集成电路(ASIC)、数字信
号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列
(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行下述方法。
图2是根据一示例性实施例示出的一种终端启动的方法的流程图。该终端启动方
法适用于智能终端,该智能终端在一个示例性实施例中可以是图1所示的装置。如图2所示,
该终端启动的方法,可以包括以下步骤。
在步骤210中,触发启动的终端中引导Boot程序运行。
其中,终端开机,便进入终端中的启动流程。终端中的启动流程,包括Boot程序的
运行阶段、系统主程序的运行阶段、系统层的运行阶段和应用层程序的运行阶段。
因此,触发启动的终端中,首先引导Boot程序运行,Boot程序为终端启动中的引导
加载程序。
此时,终端便进入Boot的运行阶段。
在步骤230中,在Boot程序的运行中确定触发的偏移标记,触发的偏移标记相对上
一次启动中触发的偏移标记动态变化。
其中,终端的每一次启动中,都将触发一偏移标记,因此,将在Boot程序的运行中
确定触发的偏移标记。对于触发的偏移标记,可以是通过终端中硬件系统的硬件触发,也可
以是通过预先配置的标记程序触发。
在终端启动时,可以通过硬件系统中硬件的上电触发相应的偏移标记,以在硬件
系统中硬件的控制下使得终端启动中触发的偏移标记区别于上一次启动中触发的偏移标
记。
除此之外,将在Boot程序中存储偏移标记。在终端启动时,将通过预先配置的标记
程序在Boot的运行阶段中运行,触发上一次启动中回传的偏移标记,以使用触发的偏移标
记变换Boot程序中存储的偏移标记。
偏移标记是在Boot程序中存储的标记位,其被Boot程序存放在一固有位置。首先
需要说明的是,对于偏移标记,存在着两类偏移标识,而存储的偏移标记为其中一类。
在Boot程序的运行中,即Boot程序启动以后,将对存储的偏移标记进行修改,将此
偏移标记修改为另一偏移标记,以实现Boot程序中标记的动态变换。
在一个示例性实施例的具体实现中,偏移标记可以是一为零的数值,也可以是一
非零数值,以此来区分两类偏移标记。
可以理解的,由于系统主程序和应用层程序的存在,需要相应配置两类偏移标记,
以此来控制系统主程序和应用程序所分别使用的内存空间的交换。
在步骤250中,根据变换的偏移标记确定指向的内存空间,偏移标记用于指示本次
启动中系统主程序运行的内存空间。
其中,偏移标记实质为一地址索引或地址指向。偏移标记是与对应于一偏移地址
的,因此,其指向了相应的内存空间。在Boot程序的运行中,获得此偏移标记,即变换的偏移
标记,因此,能够确定后续程序运行所使用的内存空间。
由于偏移标记是进行动态变化的,因此,后续程序运行所使用的内存空间也将是
动态变化的,而不在是通过固化内存空间的方式来实现后续程序的运行,能够合理化资源
的调试和使用。
在Boot程序的运行中,根据变换的偏移标记确定指向的内存空间,在此,此内存空
间即可用于后续系统主程序的运行,即终端的本次启动中系统主程序的运行。
也就是说,将通过偏移地址来实现内存空间的切换,此内存空间,可以是32位的,
在一个示例性实施例中,所定义的内存空间为0~2的32次方-1。
所用于进行切换的两个内存空间,将以高位+低位的形式进行区分。具体的,对于
一内存空间,其对应的是高位补0(32位)+低位地址的内存空间,对于另一内存空间,其对应
的是高位地址+低位补0(32位)的内存空间。
在步骤270中,引导系统主程序在指向的内存空间运行。
其中,系统主程序,即为系统内核,系统主程序的运行,在一个示例性实施例中,是
指Kernel层运行。
Boot程序引导系统主程序在偏移标记指向的内存空间中运行,由此,将使得本次
启动中系统主程序所使用的内存空间与上一次启动中所使用的内存空间各不相同。
由此可知,对于可供系统主程序和应用层程序运行的两个内存空间,系统主程序
将均衡使用这两个内存空间,即一次启动中在一内存空间运行,则下一次启动将是在另一
内存空间运行,通过此内存空间的均衡使用,使得各个内存空间的使用频次、使用时间都较
为均衡,不会出现一内存空间由于被系统主程序固化使用而相对另一内存空间在使用频次
和使用时间上都存在非常大的区别,通过平衡两个内存空间的使用而提高终端的寿命。
在步骤290中,系统主程序运行后,调用应用层程序进入其它内存空间。
其中,系统主程序和应用层程序分别运行于不同的内存空间,以保证系统主程序
和应用层程序的顺畅运行。
系统主程序在偏移标记指向的内存空间中运行之后,将进入系统层运动,此系统
层运行与系统主程序的运行在同一内存空间,完成了系统层运行之后,方可启动应用层。
对于应用层程序的运行,将在另一内存空间实现。
由此,相对上一次终端的启动过程,系统主程序和应用层程序所使用的内存空间
将进行了一次交换,对内存空间进行有效的均衡使用。
通过如上所述的终端启动过程,在偏移标记的作用下,实现了系统主程序和应用
层程序所使用内存空间的动态调整,对于持续运行的系统主程序,即系统主程序所在的内
存空间是被持续使用的,因此,其所使用的内存空间的动态调整,将避免了一内存空间的过
度使用,以及过程的累积损坏,不再使得由于一内存空间的限制而制约终端的产品寿命。
在一个示例性实施例中,步骤230,可以包括以下步骤。
在Boot程序的运行中,将存储的偏移标记变换为与硬件系统中硬件上电的标记相
符的偏移标记,确定变换所得到的偏移标记为触发的偏移标记。
其中,如前所述的,两类偏移标记将是相对设置的,即一类偏移标记在本次终端启
动时被触发,则另一类偏移标记则在下一次终端启动时被触发,也就是说,在硬件系统中硬
件的控制下,将在每一次终端启动中相对上一次终端启动实现偏移。
具体而言。终端的硬件系统中存在着STRAP电路或者congfig电路,STRAP电路或者
congfig电路的功能是确定系统启动的运行入口地址,因此,可以通过控制硬件上电的标记
来决定所触发的偏移标记,进而指示本次启动中系统主程序运行的内存空间。
具体而言,可在硬件系统中设置与STRAP电路或者congfig电路匹配的一硬件电
路,通过该硬件电路来实现上电标记的变换。在一个示例性实施例的具体实现中,硬件电路
可以是开关电路,在开关闭合时,上电的标记为0,进而所对应触发的偏移标记相应为0;在
开关断开时,上电的标记为1,进而所对应触发的偏移标记相应为1。
通过如上所述的偏移标记变换的具体实现,将保证了终端启动中优先运行过程的
彻底性,使得终端启动中的内存空间合理化调度是通过硬件触发实现的,因此,能够具备非
常高的可靠性和稳定性,也降低了实现的复杂性。
在另一个示例性实施例中,步骤230,可以包括以下步骤。
根据上一次启动中系统主程序回传的环境变量将存储的偏移标记变换为环境变
量关联的偏移标记,确定变换所得到的偏移标记为触发的偏移标记。
其中,环境变量为一偏移地址,环境变量是对应于一偏移标记的,因此,根据上一
次启动中系统主程序所回传的环境变量确定偏移标记,进而将存储的偏移标记变换为此偏
移标记。环境变量规定了内存空间的范围,即起始逻辑地址和结束地址、地址长度等。
具体而言,上一次启动中Boot程序会接收到系统主程序回传的环境变量,在本次
启动中,Boot程序将根据回传的环境变量修改存储的偏移标记。
如上所述的过程,为确定触发的偏移标记提供了软件维度上的具体实现,进而使
得本次启动能够在偏移标记的触发下相对上一次启动交互内存空间。
图3是根据一示例性实施例示出的对根据上一次启动中系统主程序回传的环境变
量将存储的偏移标记变换为环境变量关联的偏移标记步骤的细节进行描述的流程图。该根
据上一次启动中系统主程序回传的环境变量将存储的偏移标记变换为环境变量关联的偏
移标记步骤,如图3所示,可以包括以下步骤。
在步骤231中,确定上一次启动中系统主程序回传的环境变量以及备份的环境变
量。
其中,Boot程序启动后,将确定上一次启动中系统主程序向Boot程序回传的环境
变量,此环境变量指示了上一次启动中系统主程序使用的内存空间。
备份的环境变量,则被在存储于一固有位置,启动后的Boot程序从此固有位置确
定备份的环境变量。备份的环境变量,指示了相对本次启动的上一次启动,所对应的上一次
启动中系统主程序使用的内存空间。
在步骤233中,比对上一次启动中系统主程序回传的环境变量以及备份的环境,在
二者不相一致时启用备份的环境变量。
其中,在上一次启动中系统主程序回传的环境变量与备份的环境变量不相一致
时,可以确认上两次启动中,均实现了内存空间的交换,而本次启动应当启用备份的环境变
量来指示系统主程序运行所使用的内存空间,以实现本次启动中的内存空间交换。
在步骤235中,将存储的偏移标记变换为启动的环境变量关联的偏移标记。
通过如上所述的过程,为软件维度上的偏移标记变换提供了具体实现,即通过系
统主程序中维护的环境变量来实现偏移标记的变换。
在完成了偏移标记的变换之后,将清除备份的环境变量,备份上一次启动中系统
主程序回传的环境变量,以方便下一次启动中实现偏移标记的变换。
图4是根据一示例性实施例示出的对步骤270的细节进行描述的流程图。该步骤
270,如图4所示,可以包括以下步骤。
在步骤271中,解压系统主程序。
在步骤273中,在指向的内存空间中运行解压的系统主程序。
其中,通过图2对应实施例中的步骤250确定了指向的内存空间之后,即可解压系
统主程序,并将此系统主程序载入指向的内存空间中运行。
在此实现过程中,将使得系统主程序与Boot程序所使用的内存空间可能相同,也
可能不相同。
Boot程序运行时,并未执行内存空间的交换,因此,其运行所在的内存空间是在初
始所指定的。而系统主程序,由于进行了内存空间的交换,因此,并不仅限于Boot程序所使
用的内存空间。
在一个示例性实施例中,环境变量被系统主程序自身存储,则步骤273,可以包括
以下步骤。
对偏移标记关联的环境变量和系统主程序自身存储的环境变量进行比对,在二者
不相一致时,在指向的内存空间中运行解压的系统主程序。
其中,在系统主程序运行之前,将进行环境变量的比对确认,以防止传输错误,进
而避免由于传输错误导致的异常。
系统主程序存储的环境变量,一方面自身进行了存储,另一方面,也在上一次启动
时向Boot程序回传。
偏移标记关联的环境变量,则是Boot程序中备份的环境变量,在发生传输错误时,
系统主程序回传的环境变量将是与Boot程序中备份的环境变量相一致的,因此,将通过上
述环境变量的比对确认来确保终端的正常启动。
在步骤275中,根据指向的内存空间确定偏移地址,由偏移地址确定环境变量。
其中,内存空间唯一对应着一逻辑地址,逻辑地址是基址+偏移地址的形式,因此,
偏移地址的变化即对应了内存空间的变化。
运行的系统主程序根据当前所使用的内存空间确定偏移地址,将此偏移地址作为
环境变量,以此来实现系统主程序中环境变量的维护。
在步骤277中,向Boot程序回传环境变量。
其中,系统主程序在确定了当前所对应的环境变量之后,便向Boot程序回传此环
境变量,以使得在下一次启动中,Boot程序能够以此为依据实现偏移标记的变换。
通过如上所述的过程,在运行的系统主程序中实现了环境变量的维护,进而为后
续启动所进行的内存空间交换提供依据。
结合具体应用场景,描述该终端启动方法。在此首先需要进行说明的是,终端中处
理器的PHY层控制器,用于处理与内存空间相关的逻辑。图5是根据一示例性实施例示出的
终端中处理器的实现框图。
如图5所示的,通过PHY层控制器中的PHY0控制DDR1和DDR2,标记为内存空间
DDRX0,PHY1控制DDR3和DDR4,标记为内存空间DDR1。
在现有技术的实现中,每一次终端开机,Boot程序运行完毕之后,进入第主程序运
行时,会通过PHY0控制在DDRX0运行,系统主程序属于常态工作状态。
而应用层程序是通过PHY1控制在DDRX1运行,并且应用层程序是在用户运行应用
时才运行的。
图6是根据一示例性实例示出的现有技术中终端启动的实现流程图。如前所述的,
终端中的启动流程,包括Boot程序的运行阶段、系统主程序的运行阶段、系统层的运行阶段
和应用层程序的运行阶段,即分别对应于图6所示的Boot程序运行310、Kernel层运行330、
系统层运行350和应用层运行370。
其中,Boot程序运行310、Kernel层运行330、系统层运行350将是在DDRX0实现,应
用层运行370则在DDRX1实现。
具体而言,终端中片上系统(SOC)运行引导Boot程序运行,即进行Boot程序运行
310这一阶段。
Boot程序在EMMC(Embedded Multi Media Card,内嵌式存储器)中低速运行后进
行DDRX0高速运行,进而引导Kernel层进行运行。
在结束Kernel层的运行时,系统层运行,并在其后启动应用层进行DDRX1高速运
行。
由此过程可以看出,现有的终端启动实现中,整个系统运行体系都在DDRX0中运
行,只有用户运行的应用层在DDRX1中运行,DDRX1运行是建立在DDRX0基础之上。
因此DDRX0处于常态动作,而DDRX1却在大部分时间处于空闲状态,造成了DDRX0和
DDRX1的不均衡使用。
通过本公开所实现的终端启动方法,来解决DDRX0和DDRX1的不均衡使用的缺陷。
图7是根据一示例性实施例示出的本公开所实现的终端启动的应用示意图。首先
需要说明的是,在图7所实现的终端启动中,依然经历上述启动流程,即Boot程序运行310、
Kernel层运行330、系统层运行350和应用层运行370。
但是,在此启动流程中,Boot程序中存在着偏移标记,以此偏移标记来触发内存空
间的切换。而如Boot程序运行310阶段所标示的,此偏移标记将通过环境变量或者硬件实现
偏移标记的触发。此后,如步骤410所示的,将根据偏移标记决定下一步系统主程序走向是
走DDRX0还是DDRX1,在Kernel层启动时进行环境变量的维护和确定,以此来作为后续系统
主程序导入空间的决策。
在具体实现上,如图6中启动流程右侧所标示的,Boot程序中记录第一次的偏移地
址和第二次的偏移地址,以此来决定引导系统主程序进入哪一个DDRX中运行。
由此,方能使得第一次系统主程序解压缩后进行DDRX0高速运行,第二次通过判断
进入到DDRX1进行运行。
与之相对应的,第一次系统层运行后启动应用层进行DDRX1高速运行,第二次系统
层运行后启动应用层则进入到DDRX1运行。
对于Boot程序中偏移标记的记录,只需要在Boot程序中进行一维护,示例如下:
![]()
其中,00000001对应于DDRX0,10000001对应于DDRX1。
通过如上所述的实现过程,将能够提升50%的产品寿命,DDRX0和DDRX1的均衡使
用也将提升了系统的可靠性和使用性能。
下述为本公开装置实施例,可以用于执行本公开上述终端执行的终端启动方法实
施例。对于本公开装置实施例中未披露的细节,请参照本公开终端启动方法实施例。
图8是根据一示例性实施例示出的一种终端启动装置的框图。该终端启动装置,如
图8所示,可以包括但不限于:Boot引导模块510、标记变换模块530、空间确定模块550、主程
序引导模块570和应用层调用模块590。
Boot引导模块510,用于触发启动的终端中引导Boot程序运行。
标记变换模块530,用于在Boot程序的运行中确定触发的偏移标记,触发的偏移标
记相对上一次启动中触发的偏移标记动态变化。
空间确定模块550,用于根据触发的偏移标记确定指向的内存空间,偏移标记用于
指示本次启动中系统主程序运行的内存空间。
主程序引导模块570,用于引导系统主程序在指向的内存空间运行。
应用层调用模块590,用于系统主程序运行后,调用应用层程序进入其它内存空
间。
在一个示例性实施例中,标记变换模块530进一步用于在Boot程序的运行中,根据
硬件系统中硬件的上电触发偏移标记。
在另一个示例性实施例中,标记变换模块530进一步用于根据上一次启动中系统
主程序回传的环境变量将存储的偏移标记变换为环境变量关联的偏移标记,确定变换所得
到的偏移标记为触发的偏移标记。
图9是根据一示例性实施例示出的对标记变换模块的细节进行描述的框图。该标
记变换模块530,如图9所示,可以包括但不限于:环境变量确定单元531、比对单元533和变
换执行单元535。
环境变量确定单元531,用于确定上一次启动中系统主程序回传的环境变量以及
备份的环境变量。
比对单元533,用于比对上一次启动中系统主程序回传的环境变量以及备份的环
境变量,在判断二者不相一致时启用备份的环境变量。
变换执行单元535,用于将存储的偏移标记变换为启用的环境变量关联的偏移标
记。
图10是根据一示例性实施例示出的对主程序引导模块的细节进行描述的框图。该
主程序引导模块570,可以包括但不限于:主程序解压单元571、主程序运行单元573、偏移确
定单元575和变量回传单元577。
主程序解压单元571,用于解压系统主程序。
主程序运行单元573,用于在指向的内存空间中运行解压的系统主程序。
偏移确定单元575,用于根据指向的内存空间确定偏移地址,由偏移地址确定环境
变量。
变量回传单元577,用于向Boot程序回传环境变量。
在一个示例性实施例中,环境变量被系统主程序自身存储,主程序运行单元573进
一步用于对偏移标记关联的环境变量和系统主程序自身存储的环境变量进行比对,在二者
不相一致时,在指向的内存空间中运行解压的系统主程序。
可选的,本公开还提供一种智能终端,该智能终端可以用于图1所示实施环境中,
执行图2、图3和图4任一所示的终端启动方法的全部或者部分步骤。所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行:
触发启动的终端中引导Boot程序运行;
在所述Boot程序的运行中变换存储的偏移标记;
根据变换的所述偏移标记确定指向的内存空间,所述偏移标记用于指示本次启动
中系统主程序运行的内存空间;
引导系统主程序在指向的所述内存空间运行;
所述系统主程序运行后,调用应用层程序进入其它内存空间。
该实施例中的装置的处理器执行操作的具体方式已经在有关该终端启动方法的
实施例中执行了详细描述,此处将不做详细阐述说明。
在示例性实施例中,还提供了一种存储介质,该存储介质为计算机可读存储介质,
例如可以为包括指令的临时性和非临时性计算机可读存储介质。该存储介指例如包括指令
的存储器104,上述指令可由装置100的处理器118执行以完成上述终端启动方法。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并
且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。