开机方法及电子设备、可读存储介质、计算机程序产品与流程

文档序号:31150638发布日期:2022-08-17 02:21阅读:268来源:国知局
开机方法及电子设备、可读存储介质、计算机程序产品与流程

1.本发明涉及电子技术领域,尤其涉及开机方法及电子设备、可读存储介质、计算机程序产品。


背景技术:

2.随着消费电子行业的迅猛发展,嵌入式设备越来越多的被人们关注。嵌入式设备的系统,例如,嵌入式linux系统在开机时,需要小系统多个阶段初始化,最终启动系统,完成开机。例如,android系统的手机,开机流程需要片上系统运行、bootloader小系统的第一阶段和bootloader小系统的第二阶段的初始化,最终引导启动kernel内核和android系统,完成开机过程。
3.目前,在设备开机过程中,由于在小系统的阶段增加有提升设备安全性的可执行环境(trusted execution environment,tee),以保证加载到该环境内部的代码和数据的安全性、机密性以及完整性,提升设备的安全性。但是由于tee会增加耗时,使得设备开机的时间增加,降低了用户的体验。


技术实现要素:

4.有鉴于此,本发明提供一种开机方法及电子设备、可读存储介质、计算机程序产品,用以提高用户开机体验。
5.本技术的一些实施方式提供了一种开机方法。以下从多个方面介绍本技术,以下多个方面的实施方式和有益效果可互相参考。
6.第一方面,本发明提供一种开机方法,应用于电子设备,方法包括:
7.电子设备检测到第一开机触发事件,例如,用户按压电子设备的电源开机键,或者由其他设备发送的指示电子设备开机的信号等;响应于第一开机触发事件,依次运行预设的感知类程序、可信执行环境,并启动内核,以完成开机,其中,所述预设的感知类程序为运行时使所述电子设备输出被用户感知的效果的程序。其中,用户感知的效果包括用户可以看到、听到或身体感觉到的效果。例如,用户可以感知的震动、画面显示、声音等效果。
8.根据本技术实施例的开机方法,增加了定制引导程序,该定制引导程序能够完成用户的感知类的程序,并且该定制化引导程序在可信执行环境tee运行之前运行,在接收到触发事件后,手机可以快速的输出用户可以感知的效果,例如震动、显示的logo,声音等,提高了用户的开机体验。
9.在上述第一方面的一种可能的实现中,所述电子设备响应于所述第一开机触发事件,运行第一引导程序镜像(bootloader1),并在运行所述第一引导程序镜像的过程中,触发运行定制引导程序镜像,运行预设的感知类程序,以输出被用户感知的效果。也就是说,定制化引导程序镜像在第一引导程序镜像运行时运行。
10.在上述第一方面的一种可能的实现中,所述电子设备将运行所述预设的感知类程序的执行状态存储至共享内存。以便于引导程序运行的两个阶段都可以访问,了解定制引
导程序镜像的执行状态。
11.在上述第一方面的一种可能的实现中,所述电子设备响应于所述第一开机触发事件,依次运行预设的感知类程序、可信执行环境,并启动内核,以完成开机,包括:所述电子设备响应于所述开机触发事件,运行第一引导程序镜像,并在运行所述第一引导程序镜像的过程中,触发运行定制引导程序镜像,以运行预设的感知类程序;所述电子设备由运行所述定制引导程序镜像跳回至所述第一引导程序镜像,在继续运行所述第一引导程序镜像的过程中,触发运行可信执行环境,并在运行所述可信执行环境之后,运行第二引导程序镜像(bootloader2);所述电子设备运行所述第二引导程序镜像时,基于所述共享内存中的所述执行状态确定定制引导程序镜像的运行状态,例如,根据执行状态数据,判断感知类程序是否有效被运行等,以便于后续程序根据确定的结果,执行是否重新执行定制引导程序执行的内容。
12.在上述第一方面的一种可能的实现中,在所述定制引导程序镜像的所述运行状态为异常的情况下,所述电子设备在运行所述第二引导程序镜像时,将所述定制引导程序镜像运行异常的程序重新加载和运行,以确保开机过程的顺利进行。
13.在上述第一方面的一种可能的实现中,所述定制引导程序镜像的所述运行状态为异常,包括:所述执行状态至少包括所述定制引导程序镜像未加载设备树块dtb文件至所述共享内存,或,所述定制引导程序镜像利用设备树块dtb文件运行感知类程序存在异常。
14.在上述第一方面的一种可能的实现中,当所述电子设备运行所述定制引导程序镜像并将所述设备树块dtb文件加载至共享内存,bootloader2镜像直接使用共享内存中的dtb文件,bootloader2镜像不需要加载,可以直接使用,提高开机运行速度。
15.在上述第一方面的一种可能的实现中,电子设备运行bootloader2镜像,并启动内核,包括:电子设备由运行bootloader2镜像跳转至启动内核时,将dtb文件释放,不占用额外内存。
16.在上述第一方面的一种可能的实现中,所述电子设备将运行所述定制引导程序镜像过程中生成的日志,记录在所述共享内存中,并在所述电子设备由运行所述第一引导程序镜像跳转至运行所述第二引导程序镜像时,保存所述日志。这些记录,可以在处理器在启动kernel阶段查看,在发生不开机等稳定性异常问题时能够获取到日志,判断异常发生的位置和原因。
17.在上述第一方面的一种可能的实现中,还包括:所述电子设备检测到第二开机触发事件,例如,预设时长的短按电源键;所述电子设备响应于所述第二开机触发事件,运行所述预设的感知类程序,并在运行所述预设的感知类程序后关机。该方法可以应用于在手机电量不足,或者用户只是想观看时间等情况下,快速获得用户需要的时间信息等,关机,节约电源。
18.在上述第一方面的一种可能的实现中,所述电子设备在运行所述预设的感知类程序时,输出被用户感知的效果达到预定时长时关机,例如,显示屏显示时间达到2秒时关机。
19.在上述第一方面的一种可能的实现中,所述第一开机触发事件为正常开机触发事件,所述第二开机触发事件为短暂开机触发事件。
20.在上述第一方面的一种可能的实现中,所述第一开机触发事件和所述第二开机触发事件为不同类型的用户操作触发的事件。例如,可以是用户手动按压电源键,也可以是用
户通过设定闹钟,到达设定时间后自动触发开机事件,在此并不作为限定。
21.在上述第一方面的一种可能的实现中,所述第一开机触发事件为长按电源键的操作触发的事件,所述第二开机触发事件为短按电源键的操作触发的事件。
22.在上述第一方面的一种可能的实现中,预设的感知类程序,包括:图片显示程序、震动程序、闹钟、时钟显示程序中的一个或多个程序。
23.第二方面,本发明还提供一种开机方法,应用于电子设备,方法包括:
24.所述电子设备检测到第二开机触发事件,例如短时间按压电源0.5秒;所述电子设备响应于所述第二开机触发事件,运行所述预设的感知类程序,并在运行所述预设的感知类程序后关机。其中,运行所述预设的感知类程序之前不运行可执行环境。该方法可以应用于在手机电量不足,或者用户只是想观看时间等情况下,快速获得用户需要的时间信息等,关机,节约电源。
25.在上述第二方面的一种可能的实现中,所述电子设备响应于所述第二开机触发事件,运行所述预设的感知类程序,并在运行所述预设的感知类程序后关机,包括:所述电子设备响应于所述第二开机触发事件,运行第一引导程序镜像,并在运行所述第一引导程序过程中,触发运行定制引导程序镜像,以运行预设的感知类程序,并输出被用户感知的效果。
26.在上述第二方面的一种可能的实现中,所述第二开机触发事件为不同类型的用户操作触发的事件。
27.在上述第二方面的一种可能的实现中,所述第二开机触发事件为短按电源键的操作触发的事件。
28.第三方面,本技术还提供一种电子设备,包括:
29.检测模块,用于检测到开机触发事件;
30.处理模块,用于响应于所述开机触发事件,并先运行预设的感知类程序,再运行可信执行环境,启动内核,并完成开机,其中,所述预设的感知类程序为运行时使所述处理模块输出被用户感知的效果的程序。
31.根据本技术实施例的电子设备,增加了定制引导程序,该定制引导程序能够完成用户的感知类的程序,并且该定制化引导程序在可信执行环境tee运行之前运行,在接收到触发事件后,手机可以快速的输出用户可以感知的效果,例如震动、显示的logo,声音等,提高了用户的开机体验。
32.在上述第三方面的一种可能的实现中,所述处理模块还用于:响应于所述第一开机触发事件,运行第一引导程序镜像,并在运行所述第一引导程序镜像过程中,触发运行定制引导程序镜像,以运行预设的感知类程序。
33.在上述第三方面的一种可能的实现中,所述处理模块运行所述预设的感知类程序的执行状态存储至共享内存。
34.在上述第三方面的一种可能的实现中,所述处理模块还用于:响应于所述第一开机触发事件,运行第一引导程序镜像,并在运行所述第一引导程序过程中,触发运行定制引导程序镜像,以运行预设的感知类程序;所述处理模块由运行所述定制引导程序镜像跳回至所述第一引导程序镜像,在继续运行所述第一引导程序镜像的过程中,触发运行可信执行环境,并在运行所述可信执行环境之后,运行第二引导程序镜像;所述处理模块运行所述
第二引导程序镜像时,基于所述共享内存中的所述执行状态确定定制引导程序镜像的运行状态,例如,根据执行状态数据,判断感知类程序是否有效被运行等,以便于后续程序根据确定的结果,执行是否重新执行定制引导程序执行的内容。
35.在上述第三方面的一种可能的实现中,在所述定制引导程序镜像的所述运行状态为异常的情况下,所述处理模块在运行所述第二引导程序镜像时,将所述定制引导程序镜像运行异常的程序重新加载和运行。
36.在上述第三方面的一种可能的实现中,所述定制引导程序镜像的所述运行状态为异常,包括:所述执行状态至少包括所述定制引导程序镜像未加载设备树块dtb文件至所述共享内存,或,所述加载至所述共享内存中的所述设备数块dtb文件存在异常。
37.在上述第三方面的一种可能的实现中,当加载至所述共享内存中的所述设备数块dtb文件无异常,则所述处理模块运行所述第二引导程序镜像时,直接使用所述共享内存中的dtb文件。
38.在上述第三方面的一种可能的实现中,处理模块由运行bootloader2镜像跳转至启动内核时,将定制引导程序镜像运行过的dtb文件释放,不占用额外内存。
39.在上述第三方面的一种可能的实现中,所述处理模块将运行所述定制引导程序镜像过程中生成的日志,记录在所述共享内存中,并在所述处理模块由运行所述第一引导程序镜像跳转至运行所述第二引导程序镜像时,保存所述日志。这些记录,可以在处理模块在启动kernel阶段查看,在发生不开机等稳定性异常问题时能够获取到日志,判断异常发生的位置和原因。
40.在上述第三方面的一种可能的实现中,还包括:所述处理模块检测到第二开机触发事件,例如,预设时长的短按电源键;所述电子设备响应于所述第二开机触发事件,运行所述预设的感知类程序,并在运行所述预设的感知类程序后关机。该方法可以应用于在手机电量不足,或者用户只是想观看时间等情况下,快速获得用户需要的时间信息等,关机,节约电源。
41.在上述第三方面的一种可能的实现中,所述处理模块在运行所述预设的感知类程序时,使显示屏显示时间达到预定时长时关机。
42.在上述第三方面的一种可能的实现中,所述第一开机触发事件为正常开机触发事件,所述第二开机触发事件为短暂开机触发事件。
43.在上述第三方面的一种可能的实现中,所述第一开机触发事件和所述第二开机触发事件为不同类型的用户操作触发的事件。例如,可以是用户手动按压电源键,也可以是用户通过设定闹钟,到达设定时间后自动触发开机事件,在此并不作为限定。
44.在上述第三方面的一种可能的实现中,所述第一开机触发事件为长按电源键的操作触发的事件,所述第二开机触发事件为短按电源键的操作触发的事件。
45.在上述第三方面的一种可能的实现中,预设的感知类程序,包括:图片显示程序、震动程序、闹钟、时钟显示程序中的一个或多个程序。
46.第四方面,本技术还提供一种电子设备,包括:
47.存储器,用于存储由设备的一个或多个处理器执行的指令;
48.处理器,用于执行指令,使得电子设备执行上述第一方面或第二方面实施例的方法。
49.第五方面,本技术提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器运行时,使得处理器执行上述第一方面或第二方面实施例的方法。
50.第六方面,本技术的公开了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面实施例的方法。
附图说明
51.图1a为现有手机开机流程的示意图;
52.图1b为现有手机开机流程的示意图;
53.图2为本技术一个实施例的开机过程的框架图;
54.图3为本技术一个实施例的电子设备结构示意图;
55.图4为本技术一个实施例的手机开机方法的流程图;
56.图5为本技术一个实施例的手机开机过程的框架图;
57.图6为本技术一个实施例的手机结构中的各模块的结构示意图;
58.图7为本技术一个实施例的手机结构中的各模块的运行时的时序图;
59.图8为本技术一个实施例的电子设备的结构示意图;
60.图9为本技术一个实施例的设备的框图;
61.图10为本技术一些实施例的一种片上系统的框图。
具体实施方式
62.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
63.下面结合现有设备开机的流程对本技术实施例的开机方法进行描述。
64.以手机的开机过程为例,图1a为现有手机开机流程的示意图,如图1a所示,手机的开机过程分为三个阶段,分别为片上系统运行阶段、小系统引导阶段和启动系统阶段。通常在小系统引导阶段进一步分为第一引导阶段,该阶段为第一引导程序bootloarder1(简称:bl1)运行阶段,可以完成小系统、内存、安全上下文等的初始化,以及加载程序等;第二引导阶段,该阶段为第二引导程序运行bootloarder2(简称:bl2)运行阶段,执行外设硬件的初始化,加载内核等。在片上系统运行阶段,手机上电后首先在引导内存(bootrom)运行,bootrom是嵌入处理器芯片内的一小块掩模或写保护闪存。bootrom的内部包含处理器在上电或复位时执行的第一个代码,并决定从哪里加载要执行的代码的下一部分。对静态随机存取存储器(static random-access memory,sram),非易失性存储器,例如,嵌入式多媒体卡(embedded multi media card,emmc)进行初始化,并加载第一引导程序bootloarder1镜像至sram并跳转运行。如图1a所示,在emmc中包括,bootloarder1、bootloarder2、引导镜像bootimage、安卓系统android和可执行环境tee等程序或系统代码。在小系统引导阶段中的第一引导阶段,bl1运行,并完成小系统的初始化,动态随机存取存储器(synchronous dynamic random access memory,sdram)初始化,环境安全上下文初始化,并加载bl2镜像至sdram并跳转,以执行小系统引导阶段的第二引导阶段。在第二引导阶段中,bl2镜像运行,执行部分外设的初始化,以及运行用户感知类的程序等,加载kernel并进行跳转。第三
阶段,启动android系统,完成手机开机。
65.为了进一步说明技术问题,对上述描述进一步说明,如图1b为手机开机流程的示意图,该流程的示意图对图1a的进一步细化。在上述的开机过程中,为了提升手机的安全性,以及保证加载到环境内部的代码和数据的安全性、机密性以及完整性,会在小系统引导阶段中的第二引导阶段之前,引入可执行环境系统(trusted execution environment operating system,teeos)。如图1b所示,用户能够体验到的感知类程序,如,震动,品牌标识(logo)的显示和声音类等等的这些可被用户感知到的程序。这些程序在小系统引导阶段的bl2运行阶段完成。而teeos系统需要在bl2运行阶段之前运行。由于teeos系统的运行时间较长,因而用户感知类的程序会因为teeos系统的运行而向后推迟,这将使得用户开机感知的时间推后,而降低用户的体验。
66.为了解决上述问题,本技术提出了一种开机方法。该开机方法应用于电子设备中,包括,当电子设备检测到开机触发事件,例如,用户手动按压电源键以使电子设备执行开机指令(手动触发开机)。或者,通过时钟设置,在到达设定时间时,电子设备自动执行开机指令,又或者,电子设备在预设闹钟时间到达时,自动执行开机指令(非手动触发开机)。在执行开机指令时,电子设备依次运行预设的感知类程序、teeos,并启动内核,以完成开机。其中,所述预设的感知类程序为运行时使所述电子设备输出被用户感知的效果的程序,例如,开机logo,闹钟响声,显示时间等。
67.需要说明的是,本技术实施例中的依次运行指的是运行预设的感知类程序和teeos的先后顺序,即预设的感知类程序在teeos之前执行,并不限定预设的感知类程序和teeos之间的是否有其他程序执行,也不限定检测到开机触发事件和运行预设的感知类程序之间不执行其他的程序指令。
68.本技术的开机方法,将用户感知类的运行程序在teeos系统之前运行,用户可以更早的感知到手机的开机动作,进而提高用户的体验。
69.下面结合附图对开机的过程进行描述。
70.参考图2,图2示出了本技术的开机过程的框架图,如图2所示,该框架图中,包括bootrom,sram,dram和emmc。在emmc中存储有“bootloarder1”、“bootloarder2”、“bootimage”、“android”和“tee”等程序代码。举例来说,用户长按开机键3秒作为开机触发事件(第一开机触发事件)。当手机检测到用户针对开机事件,手机响应该开机事件,并执行开机的操作。当片上系统上电后,bootrom作为起始点开始运行一段固定代码,对sram和外部存储器,如非易失性存储器的emmc进行初始化,并从emmc中加载bl1镜像至sram中,并跳转,使手机执行第一引导阶段。在第一引导阶段,bl1运行时,加载定制引导程序bootloarder-cust(简称:blcust)镜像和bl2镜像到dram,在dram中blcust运行结束,能够完成“设备初始化”和“环境初始化”,并完成用户开机时能够体验类的感知类程序,例如,用户能够感知的震动、显示的“logo”,以及非开机体验的“快速闹钟”和“时钟快速显示”等程序。在用户感知类程序运行结束后,手机由在dram中运行blcust跳转回至在sram中运行第一引导阶段,以使bl1镜像之后的tee程序运行。其中,tee程序包括可信固件(arm-trusted-firmware,atf)和teeos两部分。如图2所示,在blcust运行结束后,手机的运行阶段跳转回bl1运行阶段,并运行tee程序。其中,在运行tee程序时,首先在sram中运行atf镜像,以解密环境初始化,随后跳转至dram中运行teeos,以完成设备可执行环境初始化,提高手机的安
全性。随后依次运行bootloader2镜像,加载并启动内核、android系统,以完成开机。
71.在本技术的实施例中,由于在bl1和bl2之间增加了blcust,且该blcust在tee运行之前就开始运行,使得用户在按下开机键后能够快速的感受到手机是否已经开机,这将使得用户感知类程序不受到tee运行时间的影响,并且,提高了用户开机体验。
72.在上述实施例中以手机作为电子设备进行了说明。本技术的开机方法还可以应用在其他的电子设备中,例如,电子设备可以是手机、平板电脑、笔记本电脑、超级移动个人计算机、个人数字助理(personal digital assistant,pda)、电视,或者可穿戴的电子设备,如手表、手环等。本技术中对电子设备的设备类型不予具体限定。
73.下面结合手机的具体结构对本技术实施例的开机方法进行描述。
74.图3示出了手机100的结构示意图。手机100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接头130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,sim)卡接口195等。其中传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。
75.可以理解的是,本发明实施例示意的结构并不构成对手机100的具体限定。在本技术另一些实施例中,手机100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
76.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
77.处理器110可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
78.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
79.在一个实施例中,处理器110接收用户的指令,例如,用户开机的指令。用户开机后,系统上电,程序计数器(program counter,pc)指针指向芯片内部的boot rom地址并开始运行。处理器110的bootrom从外部存储器中(如emmc)加载bl1镜像到sram中,并运行bl1镜像,以完成sram的初始化,在由bl1加载blcust和bl2至dram中,处理器运行blcust镜像。其中,blcust镜像运行可完成设备运行环境的初始化,以及预设定感知类程序的运行。在
blcust镜像运行结束后跳回bl1运行阶段,并依次运行可信执行环境tee、bl2镜像,启动内核,android系统,完成手机的开机过程。在该过程中,由于用户感知类程序在执行tee之前完成,使得用户能够更早的感知到手机的开机,提高用户体验。
80.手机100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
81.显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,手机100可以包括1个或n个显示屏194,n为大于1的正整数。
82.在本技术的一个实施例中,在处理器110运行blcust时,用户感知类的程序,例如静态logo、动态logo画面,可通过显示屏194展示给用户,使用户通过观看到显示屏194上显示的logo而确定手机已经开机。
83.内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的感知类的应用程序,声音播放功能,图像播放功能和震动功能等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行手机100的各种功能应用以及数据处理。
84.在本技术的一个实施例中,内部存储器121中可以存储有开机方法的指令,处理器110通过开机方法指令,使得手机100能够快速的提示用户已经开机的感知,提高用户的开机体验。
85.手机100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
86.音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
87.在一些实施例中,音频模块170可以播放开机时的提示音,例如,一段开机音乐,或者一句语音提醒等,以提醒用户手机100已开机。
88.本技术实施例提供的开机方法可以应用于具有如图2所示的硬件结构的手机中。或者比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置等类似的硬件结构和软件结构的手机中。
89.下面结合本发明实施例应用在上述图3所示的手机结构中,对手机的开机方法进行详细的说明。
90.参考图4所示,图4示出了手机开机方法的流程图,该流程图为手机正常开机的流程,该方法包括s410-s440。
91.s410,手机检测到开机触发事件(表示为第一开机触发事件)。举例说明,已经关机的手机,当用户对手机100按键190进行按压时,例如,长按3秒,按键190检测到被长按的操作后,向处理器110发送指令,该指令用于指示手机100开机,处理器110接收到开机指令,并执行开机过程。在本技术的其他实施例中,也可以是使用其他设备发送开机指令。例如,当电子设备为电视等设备时,也可以是通过遥控器等其他设备向电视发送开机指令,以控制电视开机。或者是通过设置时钟来开机,即非手动触发开机。例如,用户在关机前设置12小时开机。当距离开始设定时间有12小时,自动触发手机执行开机的过程,又或者,在设置的闹钟时间到达是,自动触发手机执行开机。本技术对此不作限定。
92.s420,手机加载bl1镜像至静态存储器,bl1镜像初始化动态存储器。手机响应于开机操作,首先片上(syetem on chip,soc)系统运行,实现系统资源初始化,加载引导程序。例如,对sram,emmc等进行初始化。可以理解为,在soc的只读内存(read-only memery,rom)中可以有一段最基本固定的不可更改的代码,在soc上电后进行soc初始化的位置,手机通过运行这段代码可以实现对soc的资源初始化,并且将bl1加载至sram中。
93.手机100的处理器110运行bl1,并完成bl1的初始化,bl1完成动态存储器(dynamic random access memory,dram)的初始化。
94.在本技术的实施例中,bl1具有对内存空间布局的能力,为其他程序预留内存空间,例如,为定制引导程序预留空间。
95.s430,手机加载定制引导程序镜像blcust和第二引导程序bootloader2镜像至动态随机存取存储器,并运行blcust。可以理解为,在bl1初始化,dram初始化之后,bl1加载定制引导程序镜像blcust和bl2至sram中,并运行定制引导程序镜像。这里blcust还可以包括对内存管理的程序,以使得内存的感知类程序有序的存放。
96.在本技术的实施例中,定制引导程序镜像运行过程中,可以完成设备运行环境初始化、设备初始化,以及预设的感知类程序。其中,预设的感知类程序可以包括开机体验类的程序,例如,logo的显示程序或声音的播放程序等。也可以包括其他的并非想要开机的感知类的应用程序,例如,闹钟、时钟、充电的提示程序等。该定制引导程序镜像在可信执行环境tee运行之前运行,使得用户更快的感知到手机的开机的动作。
97.此外,在本技术的实施例中,第二引导程序镜像的加载时间可以与定制引导程序镜像blcus不同步,只要在运行第一引导程序镜像之前加载完成即可,在此并不限定。并且,当本技术的实施例中,当开机触发事件为第二开机触发事件,例如,短按电源键1秒,在手机运行制引导程序镜像结束后,直接关机,而该开机过程中,并不需要加载第二引导程序镜像。从而加快定制引导程序镜像的运行。s440,手机运行blcust镜像结束后跳转回bl1运行阶段,并依次运行可信执行环境tee、bootloader2镜像,并启动内核,以完成开机。在下面的实施例中对bl2的运行过程进一步描述。
98.本技术的实施例的开机方法,在bl1和bl2之间增加了定制引导程序blcust,该定制引导程序能够完成用户的感知类的程序,并且该定制化引导程序在可信执行环境tee运行之前运行,在接收到触发事件后,手机可以快速的输出用户可以感知的效果,例如震动、显示的logo,声音等,提高了用户的开机体验。
99.参考图5,并结合图4进一步对s430和s440进行说明。
100.图5示出了手机开机过程的框架图。该框架图中,关于emmc、bootrom、sram的解释,已经在上述实施例中进行说明,具体可参照上述实施例中的描述,此处不再赘述。本实施例中重点描述第一引导阶段中的blcust运行阶段,和第二引导阶段的bl2。如图4所示,在s430中,手机运行定制引导程序镜像blcust。如图5所示,在blcust镜像的运行过程中,blcust可以完成“环境初始化”、“设备初始化”以及完成“感知类程序”的运行。blcust运行过程中,将初始化和对各类程序的执行状态,以文件的形式临时存储在“共享内存”中。当第一引导阶段运行结束后,手机运行第二引导阶段。在第二运行阶段,bl2可以从共享内存中读取这些文件。即在图5所示的步骤s440中,当手机运行bl2时,bl2可以读取共享内存中的文件,并且可以根据共享内存中的文件判断在定制引导程序镜像运行是否异常。当在手机判断定制引导程序镜像运行异常时,则在bl2运行阶段重新加载并运行在blcust运行过的出现运行异常的程序,以完成设备、环境初始化,或使程序正常运行。从而确保手机能够正常开机,以及用户感知类的程序能够被用户感知。如图5所示,以设备树块(device tree block,dtb)文件为例,dtb文件用户实现被用户感知的效果,例如显示屏显示等。定制引导程序镜像blcust可以加载并解析设备数块dtb文件,并将解析的“dtb”文件存储在“共享内存”。在bl2运行时,通过dtb文件判断设备初始化是否完成等。当bl2判断设备初始化已经完成,则不再对设备进行初始化。当手机判断运行预设的感知类程序出现异常,如加载dtb文件至共享内存失败,或所述定制引导程序镜像利用设备树块dtb文件运行感知类程序存在异常等,则由bl2再次执行预设的感知类程序。以确保手机能够正常的实现开机过程。
101.在本技术的实施例中,在bl2运行结束后,手机由运行bl2跳转至内核时,将共享内存中的文件释放,避免占用额外的内存空间。
102.在本技术的另一个实施例中,blcust程序执行过程中生成的日志,记录在共享空间,以使得在bl1和bl2阶段均能够访问,在bl1跳转至bl2时统一拷贝保存,随小系统日志记录功能统一进行记录,可以在处理器110在启动kernel阶段查看blcust阶段生成的日志,或者在发生不开机等稳定性异常问题时能够获取到blcust阶段生成的日志,判断异常发生的位置和原因。
103.下面结合图6和图7对手机结构中的各模块对本技术的开机方法进行说明。
104.参考图6,图6示出了手机结构中的各模块的结构示意图。如图6所示,该手机包括检测模块610,处理模块620,bl1模块630,blcust模块640、tee模块650和bl2模块660。
105.检测模块610用于检测开机事件,并在检测到开机事件后,将开机指令发送给处理模块620。处理模块620根据开机指令,使得芯片上的第一段代码运行,加载bl1程序至内存。bl1模块630运行bl1程序,完成小系统的初始化,sdram初始化,环境安全上下文初始化,并加载blcust程序镜像至blcust模块640,加载bl2程序镜像至内存。bl2模块660运行blcust程序镜像。其中,blcust程序中可以包括用户感知类程序,例如,震动、声音、动态画面等程序。blcust模块640运行结束后跳转至bl1模块610,在由bl1模块610的运行跳转至tee模块650的运行,tee模块650运行其内部的程序,并完成可执行环境的初始化,确保手机的安全运行。tee模块650运行结束跳转至bl2模块660运行。bl2模块660运行bl2程序。此后启动内核、系统完成开机。
106.参考图7,图7示出了手机结构中的各模块的运行时的时序图,如图6所示,手机包
括bl1模块,blcust模块、tee模块和bl2模块,这些模块可以集成在芯片上。在该时序图中,整个运行的状态从bl1模块跳转到blcust模块,在blcust模块可以包括对空间的初始化过程,加载dtb文件完成设备初始化,环境初始化,执行感知类程序等,例如,“马达震”、“界面显示”等感知程序。在blcust模块运行结束跳转至bl1模块,在bl1作为出发点,依次运行tee模块和bl2模块,在bl2模块中,若判断blcust模块中感知类程序运行异常时,需要对blcust模块中运行的程序,重新运行,例如,对“马达震”、“界面显示”再一次加载和运行。本技术中的blcust模块具有管理内存的能力,例如,可以通过设置内存管理模块,对内存进行管理,便于各类程序文件的存放。
107.本技术的实施例中,由于在在bl1模块和bl2模块之间增加了blcust模块,使得用户感知类程序在tee模块运行之前被运行,并输出响应的开机动作,因而用户能够更早的感知到手机开机的动作,提升开机体验。本技术中各模块的具体的作用可参考上述实施例中开机方法的描述,在此不在赘述。
108.下面以具体实施例对手机开机的速度测试及优势进行描述。
109.在实施例中,将开机震动程序、开机logo显示程序设置在blcust模块内完成,当用户按压开机电源键,并在用户按下电源键开始计时,直到手机开始震动和首帧logo显示的时间间隔,均在3秒内完成。以同样的测试方法对现有的手机进行测试,开机震动和首帧画面显示的时间间隔远都大于3秒,具体参见表1。
110.表1
111.被测试样品震动(秒)首帧画面显示(秒)tel(hisi)3.34.3优秀竞品(mtk6873)na5.6优秀竞品(qcom)na3.7业界标杆na3.4华为产品(mtk6765)3.74.9华为产品(mtk6853&6873)56.5
112.由表1可以看出,被测试样品中,其中有震动提示的三个被测试样品中,从按下开机电源键到震动的间隔时间分别为3.3秒,3.7秒以及5秒。六个被测试样品中首帧画面显示的间隔时间分别为4.3秒,5.6秒,3.7秒,3.4秒,4.9秒和6.5秒。而应用本技术实施例的开机方法的手机,本技术的手机可以将震动和首帧画面显示的时间均在3秒内完成,首帧画面显示的时间甚至可以在2秒左右完成。相比之下,本技术的手机使得用户更快的感受到开机行为(如震动、显示画面)的时间缩短,与有竞争力的产品相比具有明显的优势。
113.在一个实施例中,将闹钟设置在blcust模块内完成。在手机开机时设置闹钟的定时时间,关机进行测试。闹钟设定的定时时间之后3秒内完成闹钟的响铃和震动。而现有的手机在闹钟设定时间之后的30秒之后完成,与用户设定的时间相比,本技术的手机更接近用户设定的时间。并且,现有的设备闹铃开机需要在启动内核阶段进行响铃,若遇到bl2阶段、启动内核阶段手机发生故障或者开机速度慢时,闹钟容易出现不响或者响的时间推迟问题。而本技术将闹铃设置在bl2运行阶段之前的独立的blcust模块内完成,开机慢的问题发生概率大幅度降低,有效提高闹钟使用的稳定性和准确性。
114.此外,还可以将时间显示程序设置在blcust模块内完成。该设置方式适用于用户
在户外而手机没电的特殊环境下,用户又想要知道当前的时间的场景。该设置方式能够实现,在用户按下电源键后(表示第二开机触发事件),仅需要较低的电量就可以支撑blcust模块的运行,完成时间的显示。例如,当正常开机时,第一开机事件是用户长按电源键3秒。而短按电源键1秒时,则判断用户是第二开机触发事件,则手机在blcust模块运行时,显示用户想要的时间的显示后,关机。本技术的其他实施例中,也可以是在手机接收到第二开机触发事件之后的预定时长内自动关机,该预定时长的设定以确保时间的显示完成。
115.本技术实施例的开机方法,与现有的电子设备开机显示时间相比,现有的设备,如手机,需要开机结束后才能够显示时间,而在手机没电的情况下很难完成时间的显示。而本技术的开机方法,仅需要很少的电量维持blcust模块运行并显示时间后,关机。可以满足用户在特殊环境下的基础需求。此外,在上述的几个实施例中,对设置于blcust模块内的感知类程序进行了说明,在本技术的其他实施例中,也可以设置其他的程序,例如,充电的提示程序等。也可以防止非感知类程序等,本技术对此不作限定。
116.根据本技术实施例的电子设备,由于在bl1和bl2之间增加了blcust程序,且该blcust定制引导程序在tee运行之前就开始运行。使得用户感知类程序不受到tee运行时间的影响,并且用户在按下开机键后能够快速的感受到手机是否已经开机,提高了用户开机体验。
117.参考图8,本技术还提供一种电子设备,包括:
118.存储器810,用于存储由设备的一个或多个处理器执行的指令,以及
119.处理器820,用于执行上述实施例中结合图4至图5所解释的方法。
120.本技术还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器运行时,使得处理器执行上述实施例中图4至图5所解释的方法。
121.本技术还提供一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得处理器执行上述实施例中图4至图5所示的方法。
122.现在参考图9,所示为根据本技术的一个实施例的设备1200的框图。设备1200可以包括耦合到控制器中枢1203的一个或多个处理器1201。对于至少一个实施例,控制器中枢1203经由诸如前端总线(front side bus,fsb)之类的多分支总线、诸如快速通道互连(quick path interconnect,qpi)之类的点对点接口、或者类似的连接1206与处理器1201进行通信。处理器1201执行控制一般类型的数据处理操作的指令。在一实施例中,控制器中枢1203包括,但不局限于,图形存储器控制器中枢(graphics memory controller hub,gmch)(未示出)和输入/输出中枢(input output hub,ioh)(其可以在分开的芯片上)(未示出),其中gmch包括存储器和图形控制器并与ioh耦合。
123.设备1200还可包括耦合到控制器中枢1203的协处理器1202和存储器1204。或者,存储器和gmch中的一个或两者可以被集成在处理器内(如本技术中所描述的),存储器1204和协处理器1202直接耦合到处理器1201以及控制器中枢1203,控制器中枢1203与ioh处于单个芯片中。存储器1204可以是例如动态随机存取存储器(dynamic random access memory,dram)、相变存储器(phase change memory,pcm)或这两者的组合。在一个实施例中,协处理器1202是专用处理器,诸如例如高吞吐量mic处理器(many integerated core,mic)、网络或通信处理器、压缩引擎、图形处理器、通用图形处理器(general purpose computing on gpu,gpgpu)、或嵌入式处理器等等。协处理器1202的任选性质用虚线表示在
图9中。
124.存储器1204作为计算机可读存储介质,可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性计算机可读介质。例如,存储器1204可以包括闪存等任何合适的非易失性存储器和/或任何合适的非易失性存储设备,例如一个或多个硬盘驱动器(hard-disk drive,hdd(s)),一个或多个光盘(compact disc,cd)驱动器,和/或一个或多个数字通用光盘(digital versatile disc,dvd)驱动器。
125.在一个实施例中,设备1200可以进一步包括网络接口(network interface controller,nic)1206。网络接口1206可以包括收发器,用于为设备1200提供无线电接口,进而与任何其他合适的设备(如前端模块,天线等)进行通信。在各种实施例中,网络接口1206可以与设备1200的其他组件集成。网络接口1206可以实现上述实施例中的通信单元的功能。
126.设备1200可以进一步包括输入/输出(input/output,i/o)设备1205。i/o 1205可以包括:用户界面,该设计使得用户能够与设备1200进行交互;外围组件接口的设计使得外围组件也能够与设备1200交互;和/或传感器设计用于确定与设备1200相关的环境条件和/或位置信息。
127.值得注意的是,图9仅是示例性的。即虽然图9中示出了设备1200包括处理器1201、控制器中枢1203、存储器1204等多个器件,但是,在实际的应用中,使用本技术各方法的设备,可以仅包括设备1200各器件中的一部分器件,例如,可以仅包含处理器1201和nic1206。图9中可选器件的性质用虚线示出。
128.根据本技术的一些实施例,作为计算机可读存储介质的存储器1204上存储有指令,该指令在计算机上执行时使系统1200执行根据上述实施例中的切换应用和应用中任务的方法,具体可参照上述实施例的开机方法,在此不再赘述。
129.现在参考图10,所示为根据本技术的一实施例的soc(system on chip,片上系统)1300的框图。在图10中,相似的部件具有同样的附图标记。另外,虚线框是更先进的soc的可选特征。在图10中,soc1300包括:互连单元1350,其被耦合至应用处理器1310;系统代理单元1380;总线控制器单元1390;集成存储器控制器单元1340;一组或一个或多个协处理器1320,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(static random access memory,sram)单元1330;直接存储器存取(dma)单元1360。在一个实施例中,协处理器1320包括专用处理器,诸如例如网络或通信处理器、压缩引擎、gpgpu、高吞吐量mic处理器、或嵌入式处理器等。
130.静态随机存取存储器(sram)单元1330中可以包括用于存储数据和/或指令的一个或多个计算机可读介质。计算机可读存储介质中可以存储有指令,具体而言,存储有该指令的暂时和永久副本。该指令可以包括:由处理器中的至少一个单元执行时使soc1300执行根据上述实施例中的设备通信连接建立方法,具体可参照上述实施例图4至图5所解释的开机方法,在此不再赘述。
131.本技术公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本技术的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
132.可将程序代码应用于输入指令,以执行本技术描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的,处理系统包括具有诸如例如数字信号处理器(digital signal processor,dsp)、微控制器、专用集成电路(application specific integrated circuit,asic)或微处理器之类的处理器的任何系统。
133.程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本技术中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
134.在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、光盘只读存储器(compact disc read only memory,cd-roms)、磁光盘、只读存储器(read only memory,rom)、随机存取存储器(ram)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)、电可擦除可编程只读存储器(electrically erasable programmable read only memory,eeprom)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
135.在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明书附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
136.需要说明的是,本技术各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本技术所提出的技术问题的关键。此外,为了突出本技术的创新部分,本技术上述各设备实施例并没有将与解决本技术所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
137.需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
138.虽然通过参照本技术的某些优选实施例,已经对本技术进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本技术的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1