CN116643782B - 一种ois固件升级方法及电子设备 - Google Patents
一种ois固件升级方法及电子设备 Download PDFInfo
- Publication number
- CN116643782B CN116643782B CN202310487999.6A CN202310487999A CN116643782B CN 116643782 B CN116643782 B CN 116643782B CN 202310487999 A CN202310487999 A CN 202310487999A CN 116643782 B CN116643782 B CN 116643782B
- Authority
- CN
- China
- Prior art keywords
- ois
- firmware
- version number
- instruction
- electronic device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 143
- 230000003993 interaction Effects 0.000 claims abstract description 16
- 238000009434 installation Methods 0.000 claims description 46
- 230000008569 process Effects 0.000 claims description 40
- 230000004044 response Effects 0.000 claims description 10
- 230000006870 function Effects 0.000 description 52
- 238000010586 diagram Methods 0.000 description 19
- 238000003384 imaging method Methods 0.000 description 18
- 230000003287 optical effect Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 16
- 238000007667 floating Methods 0.000 description 16
- 238000007726 management method Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 14
- 238000010295 mobile communication Methods 0.000 description 9
- 210000000988 bone and bone Anatomy 0.000 description 8
- 238000006073 displacement reaction Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 4
- 230000006641 stabilisation Effects 0.000 description 4
- 238000011105 stabilization Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000002138 osteoinductive effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000010349 pulsation Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/617—Upgrading or updating of programs or applications for camera control
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Studio Devices (AREA)
Abstract
本申请实施例提供一种OIS固件升级方法及电子设备,该方法应用于电子设备,包括硬件抽象层在电子设备开机时,生成第一指令,并将第一指令下发至内核层;第一指令用于指示内核层升级电子设备中的OIS固件;内核层响应第一指令,执行OIS固件升级流程。本申请实施例提供的OIS固件升级方法打通了开机阶段硬件抽象层到内核层的OIS交互通路,可以将OIS固件升级的流程前移至电子设备开机阶段执行,可以缩短用户打开相机时的等待时间,能够提升用户体验。
Description
技术领域
本申请实施例涉及固件技术领域,尤其涉及一种OIS固件升级方法及电子设备。
背景技术
随着相机相关技术的不断发展以及用户对相机性能需求的日益提升,光学防抖(optical image stabilization,OIS)功能成为了电子设备的相机必不可少的功能之一。在用户使用电子设备拍照时,如果电子设备配置有具有OIS功能的相机,那么相机可以补偿用户拍摄时手部抖动带来的负面影响,实现清晰成像,能够提升用户的使用体验。
电子设备的相机一般配置有OIS器件,OIS器件中包括OIS驱动芯片(OIS driverIC)及马达,OIS器件可以与陀螺仪传感器配合实现OIS功能。陀螺仪传感器可以测量抖动导致的相机的倾斜角度,并基于测量结果生成抖动信号。OIS器件可以基于抖动信号中的倾斜角度信息,计算补偿位移量,之后控制马达按照补偿位移量移动浮动镜头,以对抖动进行补偿,使得成像更稳定。OIS驱动芯片中存储有OIS固件,运行OIS固件可以使得OIS器件实现OIS功能。该OIS固件一般由OIS器件供应商提供,电子设备厂商可以将OIS固件下载至OIS驱动芯片中。
为了满足使用过程中出现的新的OIS需求,或者为了消除OIS运行缺陷,供应商可以向电子设备厂商提供新版本的OIS固件,以替代旧版本的OIS固件。OIS固件升级过程可以由电子设备厂商指示电子设备来完成。升级方法一般包括:在打开相机时,完成OIS固件升级。但是,由于OIS固件升级流程需要耗费一定时间。因此,该种OIS固件升级方法会导致打开相机时预览画面延迟出现或者出现黑屏现象,导致用户等待时间过长,影响用户体验。
发明内容
本申请实施例提供一种OIS固件升级方法及电子设备,以解决传统OIS固件升级方法导致的用户等待时间过长的问题。
第一方面,本申请实施例提供一种OIS固件升级方法,应用于电子设备,方法包括;硬件抽象层在电子设备开机时,生成第一指令,并将第一指令下发至内核层;第一指令用于指示内核层升级电子设备中的OIS固件;内核层响应第一指令,执行OIS固件升级流程。这样,可以打通开机阶段硬件抽象层到内核层的OIS交互通路,可以将OIS固件升级的流程前移至电子设备开机阶段执行,可以缩短用户打开相机时的等待时间,能够提升用户体验。
在一些可实现的方式中,硬件抽象层在电子设备开机时,生成第一指令,包括:判断电子设备是否支持开机时升级OIS固件;如果电子设备支持开机时升级OIS固件,创建并运行第一线程;在第一线程中,获取第一版本号、第一厂商信息及预设电源配置;第一版本号是目标版本的OIS固件的版本号,第一厂商信息是电子设备中当前版本的OIS固件的厂商信息;基于第一版本号、第一厂商信息及预设电源配置,生成第一指令。这样,可以基于第一指令指示内核层进行OIS固件升级。
在一些可实现的方式中,内核层响应第一指令,执行OIS固件升级流程,包括:从第一指令中获取第一版本号;从电子设备的OIS器件中获取第二版本号,第二版本号是OIS器件中当前版本的OIS固件的版本号;判断第一版本号与第二版本号是否相等;如果第一版本号与第二版本号不相等,将OIS器件中的OIS固件升级至第一版本号对应的目标版本。将OIS器件中的OIS固件升级至第一版本号对应的目标版本,包括:获取第一版本号对应的目标固件安装文件;将目标固件安装文件下载至OIS器件中。这样,可以完成OIS固件升级。
在一些可实现的方式中,第一版本号对应于多个固件安装文件,多个固件安装文件对应的厂商信息不同;获取第一版本号对应的目标固件安装文件的步骤前,方法还包括:内核层从第一指令中获取第一厂商信息;基于第一厂商信息从多个固件安装文件中确定目标固件安装文件。这样,本申请实施例提供的OIS固件升级方法可以适配于多种不同厂家生产的OIS器件,兼容性高。
在一些可实现的方式中,从第一指令中获取第一版本号的步骤前,方法还包括:内核层从第一指令中获取预设电源配置;利用预设电源配置对OIS器件进行上电。
在一些可实现的方式中,方法还包括:硬件抽象层在电子设备打开相机时,创建并运行第二线程;在第二线程中,获取第一版本号、第一厂商信息及预设电源配置;基于第一版本号、第一厂商信息及预设电源配置,生成第二指令;将第二指令下发至内核层。在一些场景中,存在开机阶段升级失败的情况,本申请实施例可以在打开相机后再次执行OIS固件升级。这样,可以提高OIS固件升级的成功率,使得用户可以在打开相机后可以体验到目标版本的OIS固件对应的OIS功能。
在一些可实现的方式中,将第二指令下发至内核层的步骤后,方法还包括:内核层响应于第二指令,在第二指令中获取预设电源配置;如果OIS器件未上电,利用预设电源配置对OIS器件进行上电。
在一些可实现的方式中,方法还包括:内核层从第二指令中获取第一版本号;从OIS器件中获取第二版本号;判断第一版本号与第二版本号是否相等;如果第一版本号与第二版本号相等,基于OIS器件中的OIS固件配置OIS器件;如果第一版本号与第二版本号不相等,将OIS器件中的OIS固件升级至第一版本号对应的目标版本。这样,如果在开机阶段未能完成OIS固件升级,可以在开相机时完成OIS固件升级。
在一些可实现的方式中,方法还包括:硬件抽象层在电子设备开机时,确定电子设备中所有具有OIS固件的摄像头;以及,生成多个第一指令,并将多个第一指令下发至内核层,多个第一指令与摄像头一一对应;内核层响应多个第一指令,对每一摄像头均执行OIS固件升级流程。这样,可以对电子设备中所有具有OIS固件的摄像头均完成OIS固件升级。
第二方面,本申请提供了一种电子设备,包括:处理器和存储器;存储器存储有程序指令,当程序指令被处理器执行时,使得电子设备执行第一方面中任一实现方式提出的OIS固件升级方法。
第三方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当指令在电子设备上运行时,使得电子设备执行如第一方面中任一实现方式提出的OIS固件升级方法。
第四方面,本申请实施例还提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行第一方面中任一实现方式提出的OIS固件升级方法。
可以理解地,上述提供的第二方面的电子设备、第三方面的计算机存储介质,以及第四方面的计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为一种相机模组的结构示意图;
图2为一种OIS工作原理示意图;
图3为一种OIS软件架构示意图;
图4为本申请实施例适用的一种场景示意图;
图5为相机启动示意图;
图6为本申请实施例提供的一种电子设备100的结构示意图;
图7为本申请实施例提供的一种OIS固件升级方法的第一种流程示意图;
图8为本申请实施例提供的OIS器件的结构示意图;
图9为本申请实施例提供的生成第一指令的流程示意图;
图10为本申请实施例提供的OIS固件升级方法的子流程示意图;
图11为本申请实施例提供的电子设备的交互示意图;
图12为本申请实施例提供的确定目标固件安装文件的流程示意图;
图13为本申请实施例提供的打开相机后执行OIS固件升级流程的流程示意图;
图14为本申请实施例提供的OIS固件升级方法的四种升级历程示意图;
图15为本申请实施例提供的OIS固件升级方法的第二种流程示意图;
图16为本申请实施例提供的开机阶段初始化相机模组的流程示意图;
图17为本申请实施例提供的OIS固件升级方法的第三种流程示意图;
图18为本申请实施例提供的OIS固件升级装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述。显然,所描述的实施例是本申请的一部分实施例,而不是全部实施例。基于本申请的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的其他实施例,都属于本申请的保护范围。
本申请说明书和权利要求书中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。在本申请的描述中,除非另有说明,“至少一个”的含义是一个、两个及两个以上。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作示例、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请,下面将结合附图对本申请的实施例进行详细描述。
为了便于技术人员理解本申请实施例的技术方案,下面先对本申请实施例涉及的技术术语进行解释说明。
1、光学防抖(optical image stabilization,OIS)是指在成像仪器例如相机中,通过光学元器件的设置,例如镜头设置,来缓解捕捉光学信号过程中出现的仪器抖动现象,以提高成像质量。OIS器件中一般包括浮动镜头,通常的OIS防抖方法是:通过陀螺仪传感器检测到成像仪器微小的抖动,之后陀螺仪传感器可以生成抖动信号传递至成像仪器对应的微处理器,微处理器可以基于抖动信号计算出需要补偿的位移量,然后可以根据抖动方向及位移量移动浮动镜头,从而补偿曝光期间因成像仪器设备抖动引起的图像模糊。
在一些实现方式中,为了克服因成像仪器的抖动而带来的图像模糊的问题,也可以采用电子防抖(electric image stabilization,EIS)或者O+E混合防抖等方法,此处不做赘述。
图1为一种相机模组的结构示意图。
如图1所示,对于一个电子设备,至少可以包括陀螺仪传感器及相机模组,陀螺仪传感器用于测量抖动导致的倾斜角度,并基于测量结果生成抖动信号。相机模组包括OIS器件,OIS器件可以包括OIS驱动芯片(OIS driver IC)及马达,OIS驱动芯片可以接收陀螺仪传感器生成的抖动信号,并基于抖动信号中的倾斜角度信息计算补偿位移量,之后控制马达按照补偿位移量调整浮动镜头沿X轴和/或Y轴移动,以使成像更稳定。OIS器件还可以包括霍尔传感器(hall sensor),霍尔传感器用于将浮动镜头所在位置信息反馈给OIS驱动芯片,形成闭环控制以使浮动镜头准确移动到所需要的位置。
图1所示相机模组可以受控于应用处理器(application processor,AP)或图像信号处理器(image signal processing,ISP)。相机模组还包括一些其他器件,例如自动对焦(auto focus,AF)器件,AF器件可以包括AF驱动芯片以及马达等。相机模块还可以包括图像传感器(CMOS sensor),用于保存相机标定信息的电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEprom)等,此处不做赘述。
在一些实现方式中,相机模组中可以包括一个或多个摄像头,一个或多个摄像头是否具有OIS器件、AF器件等可以由实际需求确定,本申请实施例对此不做具体限定。进一步的,每一摄像头均可以包括EEprom以及图像传感器等,本申请实施例对此不做具体限定。
在一些实现方式中,同一摄像头的OIS器件和AF器件可以共用同一马达,本申请实施例对此也不做具体限定。
需要补充说明的是,图1所示的相机模组仅为一种示例性描述,不对相机模组的具体构成产生限定。
图2为一种OIS工作原理示意图。
如图2中(a)所示,在正常拍摄时,被摄物体所反射的光线进入相机模组的摄像头时,可以准确落在图像传感器CMOS的成像平面上。当相机模组发生抖动时,如图2中(b)所示,如果未开启光学防抖功能,被摄物体所反射的光线进入相机模组的摄像头时,光轴发生偏移,光线与图像传感器CMOS成像平面存在一定夹角,导致成像模糊。如图2(c)所示,如果开启光学防抖功能,那么OIS驱动芯片可以控制摄像头中的浮动镜头发生移动,使得在发生抖动时,被摄物体所反射的光线仍能准确落在图像传感器CMOS的成像平面上,以实现清晰成像。
上述相机模组可以应用至电子设备例如智能手机中,在实际应用中,相机模组的抖动一般来源于智能手机的持有者拍摄时的手部晃动或抖动。
需要说明的是,图2及上述内容所示的OIS工作过程,仅为示例性描述。在实际应用中,还可以以其他工作原理进行光学防抖,此处不做赘述。
2、OIS固件:对于上述OIS器件,在将其应用至电子设备例如智能手机时,一般需要OIS器件的供应商向电子设备厂商提供OIS固件。OIS固件可以是一种闭源代码,承担着OIS器件的底层工作。在将OIS固件配置至OIS器件之后,OIS固件可以运行于OIS器件,以实现光学防抖的功能。
在OIS器件运行使用过程中,电子设备厂商可以向OIS器件供应商提出对OIS器件的运行需求,OIS器件供应商可以基于需求形成新的OIS固件,并提供给电子设备厂商。之后电子设备厂商可以基于新的OIS固件对OIS器件进行升级,以达到提升用户体验的目的。
3、OIS软件架构:
图3为一种OIS软件架构示意图。
如图3所示,OIS软件架构可以包括应用层(APP)、框架层(framework)、硬件抽象层(hal)、内核层(kernel)及硬件层(hardware)。应用层具体包括相机应用程序包(cameraAPK),应用层可以用于提供和外界交互的接口,以实现人机交互。框架层包括媒体库(MediaFramework),可以用于传递应用层指令。硬件抽象层可以包括电子防抖算法(EIS Algo)及OIS硬件抽象层(OIS hal)。硬件抽象层可以用于接收框架层的控制指令后执行相应的流程、运行O+E算法等,以控制OIS的不同状态。内核层包括OIS驱动(OIS driver),可以用于将硬件抽象层下发的指令通过I2C接口发送给OIS驱动芯片,以最终实现控制OIS的目的。硬件层包括OIS器件,OIS器件可以包括OIS驱动芯片。
随着相机相关技术的不断发展以及用户对相机性能需求的日益提升,光学防抖(optical image stabilization,OIS)功能成为了电子设备的相机必不可少的功能之一。在用户使用电子设备拍照时,如果电子设备配置有具有OIS功能的相机,那么相机可以补偿用户拍摄时手部抖动带来的负面影响,实现清晰成像,能够提升用户的使用体验。
电子设备的相机一般配置有OIS器件,OIS器件中包括OIS驱动芯片(OIS driverIC)及马达,OIS器件可以与陀螺仪传感器配合实现OIS功能。陀螺仪传感器可以测量抖动导致的相机的倾斜角度,并基于测量结果生成抖动信号。OIS器件可以基于抖动信号中的倾斜角度信息,计算补偿位移量,之后控制马达按照补偿位移量移动浮动镜头,以对抖动进行补偿,使得成像更稳定。OIS驱动芯片中存储有OIS固件,运行OIS固件可以使得OIS器件实现上述OIS功能。该OIS固件一般由OIS器件供应商提供,电子设备厂商可以将OIS固件下载至OIS驱动芯片中。
为了满足使用过程中出现的新的OIS需求,或者为了消除OIS运行缺陷,供应商可以向电子设备厂商提供新版本的OIS固件,以替代旧版本的OIS固件。OIS固件升级过程可以由电子设备厂商指示电子设备来完成。升级方法一般包括:在打开相机时,完成OIS固件升级。但是,由于OIS固件升级流程需要耗费一定时间。因此,该种OIS固件升级方法会导致打开相机时预览画面延迟出现或者出现黑屏现象,导致用户等待时间过长,影响用户体验。
图4为本申请实施例适用的一种场景示意图。
图5为相机启动示意图。
下面以电子设备为智能手机为例,对OIS固件升级的场景做示例性介绍。
如图4及图5所示,用户可以手持智能手机对被拍摄物体进行拍摄,具体拍摄流程可以包括:用户打开相机,待预览画面加载完成后,用户可以基于个人需求决定是否按下拍摄键,完成对被拍摄物体的拍摄。预览画面指相机应用界面中用于显示的被拍摄物体图像的界面。随着智能手机的移动,被拍摄物体在预览画面的成像会发生相应的变化。图5中(a)示出了一种预览画面的示意图。
由于OIS固件升级流程需要耗费一定时间,因此在用户打开相机时,如果遇到OIS固件需要升级,那么用户需要等待OIS固件升级完成后,才可以使用相机。在等待过程中,相机应用不能提供人机交互。此时会出现预览画面延时显示的情况,具体表现在相机应用界面中,预览画面相应的位置显示的内容为历史拍摄时的取景,而不是当前用户期望的取景,如图5(b)所示。在另一些情况中,还可能会出现预览画面为黑屏状态,如图5(c)所示,影响用户体验。
为了解决上述技术问题,本申请实施例提供一种OIS固件升级方法,在该方法中可以在电子设备开机时即完成OIS固件升级的流程,不占用打开相机后的时间。这样,可以缩短用户打开相机后的等待时间,改善用户体验。
本申请实施例提供的方法可以应用至具有图像处理功能的设备中,例如智能手机、平板电脑、个人电脑、工作站设备、大屏设备(例如:智慧屏、智能电视等)、可穿戴设备(例如:智能手环、智能手表)、掌上游戏机、家用游戏机、虚拟现实设备、增强现实设备、混合现实设备等、车载智能终端等设备中。
图6为本申请实施例提供的一种电子设备100的结构示意图。
如图6所示,该电子设备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等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-networkprocessing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如Wi-Fi网络),蓝牙等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如文件传输功能,相册功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如文件、照片、视频等)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180A检测所述触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。
陀螺仪传感器180B可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。
气压传感器180C用于测量气压。在一些实施例中,电子设备100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
磁传感器180D包括霍尔传感器。电子设备100可以利用磁传感器180D检测翻盖皮套的开合。在一些实施例中,当电子设备100是折叠屏手机时,电子设备100可以根据磁传感器180D检测折叠屏手机的开合。
加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。
距离传感器180F,用于测量距离。电子设备100可以通过红外或激光测量距离。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备100附近有物体。当检测到不充分的反射光时,电子设备100可以确定电子设备100附近没有物体。
环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测电子设备100是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。在一些实施例中,电子设备100利用温度传感器180J检测的温度,执行温度处理策略。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。
骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。骨传导传感器180M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180M也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。电子设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。
对于本领域的技术人员而言将显而易见的是,上文关于电子设备100所呈现的具体细节中的一些细节可为实践特定的所述实施方案或其等同物所不需要的。类似地,其他电子设备可以包括更多数量模块、部件等。在适当的情况下,一些模块可以被实现为软件或硬件。因此,应当理解,上述描述并非旨在穷举或将本申请限制于本文所述的精确形式。相反,对于本领域的普通技术人员而言将显而易见的是,根据上述教导内容,许多修改和变型是可能的。
图7为本申请实施例提供的一种OIS固件升级方法的第一种流程示意图。
如图7所示,本申请实施例提供的OIS固件升级方法,包括以下步骤:
S400:硬件抽象层200在电子设备100开机时,生成第一指令,并将第一指令下发至内核层300。
其中,第一指令用于指示内核层300升级电子设备100的OIS固件。OIS固件是一种由供应商提供至电子设备厂商的闭源代码,在将OIS固件配置至OIS器件500之后,OIS固件可以运行于OIS器件500,实现光学防抖的功能。
本申请实施例中,电子设备100包括相机模组,相机模组包括一个或多个摄像头,一个或多个摄像头可以实现拍摄功能,且一个或多个摄像头可以独立运行。进一步的,一个或多个摄像头中可以包括OIS器件500,在用户使用电子设备100的相机功能进行拍摄时,OIS器件500可以起到光学防抖的作用,能够实现清晰成像。具体的,各个OIS器件500均可以配置有OIS固件,运行OIS固件,OIS器件500即可实现光学防抖功能。
图8为本申请实施例提供的OIS器件500的结构示意图。
如图8所示,本申请实施例提供的OIS器件500可以包括驱动芯片(OIS driver IC)501以及马达502,马达502可以包裹住浮动镜头,驱动芯片501安装有驱动程序,可以控制马达502推动浮动镜头移动,以实现光学防抖。
进一步的,驱动芯片501可以包括静态随机存取存储器(SRAM)5011和闪存(flash)5012,本申请实施例对此不做具体限定。
进一步的,上述OIS固件可以保存在flash 5012中。本申请实施例提供的OIS固件例如可以实现打开防抖功能、保持浮动镜头置中或者使浮动镜头处于自由状态等。可以基于实际需求确定OIS固件可以实现的功能,本申请实施例对此不做具体限定。
本申请实施例中,相机模组的一个或多个摄像头还可以包括自动对焦(autofocus,AF)器件等。进一步的,相机模组还可以包括图像传感器以及EEprom等器件。同一摄像头的OIS器件500和AF器件还可以共用同一马达,上述浮动镜头也可以是由同一摄像头的OIS器件500及AF器件共同控制的镜头,本申请实施例对此不做具体限定。本申请实施例中,第一指令中还可以包括硬件抽象层(hal)200中获取的各个参数。随着硬件抽象层200与内核层(kernel)300之间的交互,各个参数可以由硬件抽象层200传向内核层300,以供内核层300使用。
在一些实现方式中,第一指令还可以用于指示内核层300执行其他可以在电子设备100开机阶段执行的流程,本申请实施例对此不做具体限定。
需要说明的是,本申请实施例可以对电子设备100中所有具有OIS器件500的摄像头执行OIS固件升级,具体升级步骤将在下文详述,此处不做赘述。
进一步的,本申请实施例的电子设备100的开机流程可以包括:电子设备100的主电源芯片工作,为电子设备100CPU供电,之后主电源芯片可以为晶振供电,以及可以向CPU输出时钟信号CLK。之后主电源芯片可以发出复位信号,以复位CPU,之后CPU可以复位字库。进一步的,CPU可以向主电源芯片发出供电维持信号,使主电源芯片维持供电正常输出。之后CPU可以进行自检。
进一步的,CPU可以使显示电路开始工作,并且可以向显示模块发送显示数据,显示屏可以显示LOGO图标。之后CPU可以读取硬盘系统程序,并加载操作系统。以及,CPU可以开启触摸、音频、WIFI、相机以及其他模块工作。进一步的,CPU可以启动射频部分例如射频IC、功放及天线开关等工作。之后基带CPU可以读取SIM卡信息,信号接收通道可以开始工作,并根据SIM卡信息选择运营商,之后信号发射通带可以开始工作,与运营商基站进行连接确认,进入系统,开机流程结束。
上述电子设备100开机流程仅为示例性描述,实际开机流程可以跟随电子设备100的具体运行情况确定,本申请实施例对此不做具体限定。
其中,可以在CPU可以开启触摸、音频、WIFI、相机以及其他模块工作这一步骤中或者步骤后,增加生成第一指令的流程。还可以在开机流程的其他阶段增加生成第一指令的流程,也可以在开机流程结束后立即开始执行生成第一指令的流程,本申请实施例对此不做具体限定。
本申请实施例所指的硬件抽象层200在电子设备100开机时生成第一指令的步骤,与开机流程原有的步骤可以并行执行,例如可以与CPU开启触摸、音频、WIFI、相机以及其他模块工作这一步骤并行进行。也可以在电子设备100进入系统之后再执行生成第一指令的步骤,本申请实施例对此不做具体限定。
并且,需要说明的是,硬件抽象层200生成第一指令的步骤是否执行完成与原有的开机流程之间不存在依赖关系,也就是说,电子设备100开机流程是否执行结束,与第一指令是否生成无关联。这样,硬件抽象层200在电子设备100开机时生成第一指令的步骤,并不会拖慢电子设备100开机的流程,不会延长开机时间,不会导致用户等待开机的时间过长。
S500:内核层300响应第一指令,执行OIS固件升级流程。
本申请实施例中,内核层300可以响应于第一指令,并执行OIS固件升级的流程。
这样,OIS固件升级的流程可以在开机阶段执行结束。
表1OIS固件升级对比
表1是本申请实施例提供的OIS固件升级的时间轴示意,以及在打开相机阶段进行OIS固件升级的时间轴示意。可见,本申请实施例提供的OIS固件升级方法,可以将OIS固件升级从原始OIS固件升级方法中的开机后等待打开相机才开始执行,前移至开机的前0-40s开始执行,可以缩短用户打开相机时的等待时间。例如,OIS固件升级流程执行需要8s,那么原始OIS固件升级方法中,用户通过交互打开相机之后,至少需要等待8s时间才可以看到预览画面。而本申请实施例提供的OIS固件升级方法,OIS固件升级可以执行开机流程的前40s之内完成,用户打开相机时等待时间明显小于8s。
并且,本申请实施例提供的OIS固件升级方法,最迟可以在执行开机流程后的48s即可完成OIS固件升级。这样,即使用户在电子设备100进入系统后首先选择打开相机,在用户交互界面中点击相机图标时,OIS固件升级同时在执行,因此在用户点击图标之后,等待时间也小于8s。可见,本申请实施例提供的OIS固件升级方法,可以明显缩短用户打开相机之后等待的时间,效果显著。
综上,本申请实施例提供的OIS固件升级方法,可以在开机阶段增加硬件抽象层200与内核层300之间的OIS交互通路。这样,可以将OIS固件升级的流程由打开相机前移至开机阶段,可以避免出现打开相机时因OIS固件升级导致的等待时间过长的问题,可以改善预览效果,能够提升用户体验。另外,本申请实施例在开机阶段增加了硬件抽象层200与内核层300之间的OIS交互通路,也可以将与OIS器件500有关的其他流程提前至开机阶段加载,例如执行OIS开机标定步骤等。在开机阶段执行OIS器件500的标定,同样可以缩短用户打开相机后的等待时间,可以进一步提升用户体验。
开机阶段增加的硬件抽象层200与内核层300之间的OIS交互通路还可以扩展至执行与相机有关的其他步骤,可以基于实际需求进行设计,此处不做具体限定。
由以上技术方案可知,本申请实施例提供一种OIS固件升级方法,该方法打通了开机阶段硬件抽象层200到内核层300的OIS交互通路,可以将OIS固件升级的流程前移至电子设备100开机阶段执行,可以缩短用户打开相机时的等待时间,能够提升用户体验。
需要补充说明的是,本申请实施例所述的OIS固件升级方法包括多种应用场景,应用场景例如可以是对OIS器件500增加新功能,还可以是消除当前OIS固件的运行缺陷等,本申请实施例对此不做具体限定。
示例性的,应用场景可以是:电子设备厂商期望在新版本的OIS固件中增加使浮动镜头置中的功能,此时电子设备厂商可以向OIS器件500供应商提出该需求,供应商可以基于电子设备厂商的需求形成新版本的OIS固件反馈给电子设备厂商。
示例性的,应用场景还可以是:电子设备100用户在使用电子设备100的OIS功能中发现了OIS运行故障,并将故障反馈给了电子设备厂商,之后电子设备厂商向OIS器件500供应商提出需求,供应商可以基于形成新的OIS固件反馈给电子设备厂商,以解决运行故障。本申请实施例对此不做具体限定。
图9为本申请实施例提供的生成第一指令的流程示意图。
如图9所示,硬件抽象层200用于在电子设备100开机时,生成第一指令的步骤中,硬件抽象层200包括以下步骤S401-S404:
可以理解的是,以下步骤S401-S404是由硬件抽象层200执行的。
S401:判断电子设备100是否支持开机时升级OIS固件。
在实际应用中,一些型号的OIS器件500因其硬件构造等因素,并不适用于开机时进行OIS固件升级,或者,一些型号的电子设备100在开机时升级OIS固件会出现不兼容的问题等。本申请实施例中,可以首先判断电子设备100是否支持开机时升级OIS固件。这样,该OIS固件升级方法可以广泛应用至多种机型中,如果某些机型的电子设备100不支持开机时进行OIS固件升级,本申请实施例提供的方法也不会影响该电子设备100的开机流程,适配度高,适用范围广泛。
在一些实现方式中,在步骤S401判断电子设备100是否支持开机时升级OIS固件之前,还可以增加判断摄像头是否存在OIS器件500的步骤,如果确定存在OIS器件500,再继续执行步骤S401。如果确定不存在OIS器件500,结束OIS固件升级流程。
S402:如果电子设备100支持开机时升级OIS固件,创建并运行第一线程。
本申请实施例中,可以在开机阶段创建第一线程,OIS固件升级的步骤可以运行于第一线程,并且第一线程可以与电子设备100开机阶段的其他线程并行进行。可见,本申请实施例采用了创建新线程的方式执行OIS固件升级步骤,第一线程的运行并不影响开机阶段正常流程的执行,不会拖慢开机的正常流程。
S403:在第一线程中,获取第一版本号、第一厂商信息及预设电源配置;第一版本号是目标版本的OIS固件的版本号,第一厂商信息是电子设备100中当前版本的OIS固件的厂商信息。
S404:基于第一版本号、第一厂商信息及预设电源配置,生成第一指令。
其中,第一版本号是目标版本的OIS固件的版本号,本申请实施例在第一指令中配置第一版本号,可以使内核层300基于第一版本号判断电子设备100当前安装的OIS固件是否为目标版本。在第一指令中配置第一厂商信息,可以用于确定目标版本的OIS固件是否与电子设备100的OIS器件500相适配。在第一指令中配置预设电源配置,可以使得内核层300对OIS器件500进行上电,以进一步进行OIS固件升级。需要说明的是,第一版本号、第一厂商信息及预设电源配置等参数,均可以从电子设备100的存储器保存的代码中获取,该代码例如可以是与相机配置相关的代码等。
进一步的,本申请实施例中,硬件抽象层200可以将第一指令下发至内核层300,第一指令可以用于指示内核层300进行OIS固件升级。
可以理解的是,步骤S404也是运行于第一线程的。
继续参见图9,步骤S500响应于第一指令,执行OIS固件升级流程具体包括以下步骤S501-S506:
可以理解的是,步骤S501-S506是由内核层300执行的。
S501:内核层300从第一指令中获取预设电源配置。
可见,本申请实施例中,内核层300在收到第一指令后,可以对第一指令进行解析,得到第一指令中包括的预设电源配置等参数。并且,内核层300在解析第一指令后,可以调用电子设备100中的电源模块,以使电源模块可以基于预设电源配置对电子设备100的OIS器件500进行上电。预设电源配置可以包括预设电压值,电源模块可以基于预设电压值对OIS器件500进行上电,预设电压值例如可是3.6V~4.2V中的任意值,优选为3.6V、3.8V或4.2V,本申请实施例对此不做具体限定。
S502:利用预设电源配置对OIS器件500进行上电。
在上电后,内核层300可以对OIS器件500执行OIS固件升级操作。
继续参见图9,响应于第一指令,执行OIS固件升级流程的步骤中,内核层300还用于执行以下步骤:
S503:从第一指令中获取第一版本号。
例如,第一版本号可以为3.0.0。可以理解的是,此处第一版本号仅为示例性介绍,第一版本号的具体格式可以由实际需求确定,本申请实施例对此不做具体限定。
S504:从电子设备100的OIS器件500中获取第二版本号,第二版本号是OIS器件500中当前版本的OIS固件的版本号。
在一些实现方式中,OIS固件可以保存在flash 5012中。在将OIS固件保存在flash5012之后,OIS driver IC 501可以访问flash 5012,以获得当前OIS固件的版本号。之后,OIS driver IC 501可以将版本号保存在SRAM 5011中。进一步的,本申请实施例中,内核层300可以访问OIS器件500的SRAM 5011,从SRAM 5011中获取OIS固件版本号。
S505:判断第一版本号与第二版本号是否相等。
随着OIS固件版本的更新,其版本号会发生变化,并且版本号与OIS固件之间存在一一对应关系,是OIS固件的身份标识。因此,通过比较版本号是否相等,可以确定OIS器件500中当前保存的OIS固件,是否为目标版本的固件。
例如,从OIS器件500中获取的第二版本号可以为2.0.0。由于第二版本号2.0.0不等于第一版本号3.0.0。因此OIS器件500中保存的OIS固件不是目标版本,应当对OIS器件500中的OIS固件进行升级。再如,从OIS器件500中获取的第二版本号可以为3.0.0。由于第二版本号3.0.0等于第一版本号3.0.0,因此OIS器件500中保存的OIS固件是目标版本,无需进行升级。
在一些实现方式中,为了判断OIS器件500中当前保存的OIS固件是否为目标版本,还可以有其他方式,例如,比较第一版本号与第二版本号的长度,比较第一版本号与第二版本号首位、第二位和/或末位的数字大小等,本申请实施例对此不做具体限定。
S506:如果第一版本号与第二版本号不相等,将OIS器件500中的OIS固件升级至第一版本号对应的目标版本。
这样,可以对OIS器件500中的OIS固件完成升级,以提供更好的用户体验。
可以理解的是,步骤S501-S506均是运行于第一线程的。
需要说明的是,如果第一版本号与第二版本号相等,那么可以确定OIS器件500中的OIS固件是目标版本,因此无需继续执行升级步骤。
图10为本申请实施例提供的OIS固件升级方法的子流程示意图。图11为本申请实施例提供的电子设备100的交互示意图。
如图10及图11所示,步骤S506将OIS器件500中的OIS固件升级至第一版本号对应的版本具体包括以下步骤S5061-S5062:
可以理解的是,步骤S5061-S5062是由内核层300执行的。
S5061:获取第一版本号对应的目标固件安装文件。
需要说明的是,本申请实施例中OIS固件升级可以是伴随电子设备100系统升级共同进行的。具体而言,电子设备厂商可以将目标版本的OIS固件的安装文件打包在系统升级包中。电子设备100例如可以从云端下载系统升级包。这样,在用户选择升级电子设备100系统时,OIS固件的安装文件可以跟随系统升级包被下载至电子设备100的存储器中。
进一步的,本申请实施例中在电子设备100开机时,执行OIS固件升级流程。此处所指的电子设备100开机可以是电子设备100完成系统升级后的自动开机。
在一些实现方式中,如图11所示,系统升级包100a的格式例如是.apk,固件安装文件503的格式例如可以是.hex。此处仅为示例性介绍,可以基于实际情况确定系统升级包100a及固件安装文件503的格式。
需要说明的是,在一些情况中,可能会导致OIS固件升级失败。例如电子设备100完成系统升级后的自动开机,由于OIS器件500未能成功上电等问题,导致此次开机未能实现OIS固件升级。本申请实施例为了使OIS固件升级顺利进行,设计了每次电子设备100开机时均执行OIS固件升级流程的方案。也就是说,在每次电子设备100开机时,均执行步骤S400及S500,以及均执行S400及S500的各个子步骤,以保证OIS固件可以顺利完成升级。
可以理解的是,步骤S5061中,内核层300可以访问电子设备100的存储器,以获取目标固件安装文件503a。
在一些实现方式中,还可以采用其他方法将固件安装文件503下发至电子设备100,本申请实施例对此不做具体限定。
S5062:将目标固件安装文件下载至OIS器件500中。
本申请实施例中,内核层300可以访问OIS器件500的flash 5012,将目标固件安装文件503a下载至flash 5012中。下载完成后,内核层300还可以将flash 5012中保存的第二版本号对应的OIS固件(旧版本)删除。
需要说明的是,本申请实施例中,第一版本号可以对应于多个固件安装文件503,多个固件安装文件503对应的厂商信息不同。例如,对于多个型号相同的电子设备100,该多个电子设备100的OIS器件500可能来自不同的厂家。或者,同一型号的电子设备100,其多个摄像头(例如后摄像头模组的多个摄像头)中均配置了OIS器件500,且各个摄像头的OIS器件500来自不同的厂家。因此,为了顺利完成OIS固件升级,电子设备厂商会将不同厂家的OIS器件500对应的OIS固件安装文件503均打包在系统升级包中。本申请实施例可以基于厂商信息,从多个OIS固件安装文件503中确定目标固件安装文件503a。
图12为本申请实施例提供的确定目标固件安装文件的流程示意图。
如图12所示,步骤S5061获取第一版本号对应的目标固件安装文件的步骤前,本申请实施例提供的方法还包括以下步骤S507-S508:
可以理解的是,步骤S507-S508是由内核层300执行的。
S507:内核层300从第一指令中获取第一厂商信息。
S508:基于第一厂商信息从多个固件安装文件503中确定目标固件安装文件503a。
本申请实施例中,内核层300可以从多个固件安装文件503的代码中获取固件安装文件503对应的厂商信息。之后,内核层300可以对第一厂商信息及从代码中获取的厂商信息进行对比,以从多个固件安装文件503中确定目标固件安装文件503a。
可以理解的是,步骤S5061-S5062及步骤S507-S508均是运行于第一线程的。
综上,本申请实施例提供的OIS固件升级方法可以包括两个阶段,其中一个阶段为OIS固件加载请求阶段,对应于步骤S400及其各个子步骤,另一个阶段为OIS固件加载执行阶段,对应于步骤S500及其各个子步骤。
本申请实施例中,还存在一些升级OIS固件的场景。例如,电子设备100完成系统升级后的自动开机时,OIS固件升级失败。在该种情况下,用户可能会打开相机,为了保证新版本的OIS固件可以为用户提供服务,提升用户体验。本申请实施例还可以在用户打开相机时,再次执行以下步骤:
图13为本申请实施例提供的打开相机后执行OIS固件升级流程的流程示意图。
如图13所示,本申请实施例提供的方法还包括以下步骤S601-S604:
可以理解的是,步骤S601-S604是由硬件抽象层200执行的。
S601:硬件抽象层200在电子设备100打开相机时,创建并运行第二线程。
S602:在第二线程中,获取第一版本号、第一厂商信息及预设电源配置。
S603:基于第一版本号、第一厂商信息及预设电源配置,生成第二指令。
其中,第一版本号是目标版本的OIS固件的版本号,本申请实施例在第二指令中配置第一版本号,可以使内核层300基于版本号判断电子设备100当前安装的OIS固件是否为目标版本。在第二指令中配置第一厂商信息,可以用于确定目标版本的OIS固件是否与电子设备100的OIS器件500相适配。在第二指令中配置预设电源配置,可以使得内核层300对OIS器件500进行上电,以进一步进行OIS固件升级。需要说明的是,第一版本号、第一厂商信息及预设电源配置等参数,均可以从电子设备100的存储器保存的代码中获取,该代码例如可以是与相机配置相关的代码等。
S604:将第二指令下发至内核层300。
硬件抽象层200将第二指令下发至内核层300,这样。第二指令可以用于指示内核层300进行OIS固件升级。
可以理解的是,步骤S603-S604运行于第二线程。
继续参见图13,本申请实施例中,步骤S604之后,还包括以下步骤S701-S707:
可以理解的是,步骤S701-S707是由内核层300执行的。
S701:内核层300响应于第二指令,在第二指令中获取预设电源配置。
可见,本申请实施例中,内核层300在收到第二指令后,可以对第二指令进行解析,得到第二指令中包括的预设电源配置等参数。并且,内核层300在解析第二指令后,可以调用电子设备100中的电源模块,以使电源模块可以基于预设电源配置对电子设备100的OIS器件500进行上电。
S702:如果OIS器件500未上电,利用预设电源配置对OIS器件500进行上电。
本申请实施例中,如果在开机阶段,OIS器件500上电失败,步骤S701-S702可以重新为OIS器件500上电,以使相机运行过程中OIS器件500可以正常工作。
S703:内核层300从第二指令中获取第一版本号。
其中,第一版本号是目标版本的OIS固件的版本号。
S704:从OIS器件500中获取第二版本号。
其中,第二版本号是OIS器件500中当前版本的OIS固件的版本号。
S705:判断第一版本号与第二版本号是否相等。
S706:如果第一版本号与第二版本号相等,基于OIS器件500中的OIS固件配置OIS器件500。
可以理解的是,如果第一版本号与第二版本号相等,可以表示OIS器件500中的OIS固件为目标版本不需要进行升级。在一些实现方式中,第一版本号和第二版本号相等,对应于电子设备100在开机阶段OIS固件升级成功。因此在确定第一版本号与第二版本号相等之后,本申请实施例可以基于OIS器件500中当前的OIS固件配置OIS器件500。配置OIS器件500的步骤也可以称为开相机阶段初始化OIS器件500。
开相机阶段初始化OIS器件500例如可以包括打开防抖功能、保持浮动镜头置中或者使得浮动镜头处于自由状态等,具体配置步骤由第一版本号对应的OIS固件的实际代码决定,本申请实施例对此不做具体限定。
S707:如果第一版本号与第二版本号不相等,将OIS器件500中的OIS固件升级至第一版本号对应的目标版本。
可以理解的是,如果第一版本号与第二版本号不相等,那么表示在开机阶段OIS固件升级失败,此时本申请实施例可以在打开相机后再次执行升级。具体升级步骤可以参照步骤S5061-S5062及步骤S507-S508,此处不做赘述。
本申请实施例中,内核层300可以访问OIS器件500的flash 5012,将目标固件安装文件503a下载至flash 5012中。下载完成后,内核层300还可以将flash 5012中保存的第二版本号对应的OIS固件(旧版本)删除。之后,本申请实施例可以基于OIS器件500中当前的OIS固件(新版本)配置OIS器件500。
在一些实现方式中,本申请实施例还可以打开相机时不进行OIS固件升级,也就是说,不执行步骤S602-S604,以及不执行步骤S701-S706,而是直接在第二线程中基于OIS器件500中的OIS固件配置OIS器件500。这样,可以明确缩短用户打开相机时的等待时间,进一步提升用户体验。
可以理解的是,步骤S701-S707运行于第二线程。
需要补充说明的是,对于电子设备100,其相机模组中各个摄像头除包括OIS器件500外,还可以包括其他器件,例如AF器件、闪光灯(Flash)以及用于保存相机标定信息的电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEprom)等,马达可以由同一摄像头的OIS器件500及AF器件共用,闪光灯可以由多个摄像头共用,此处不做赘述。在打开相机后,可以包括初始化相机模组中各器件的步骤。例如,对AF器件、闪光灯等器件上电,这些打开相机时的初始化步骤可以与步骤S601-S604以及步骤S701-S707并行进行。
因此,本申请实施例可以在打开相机之后,创建第三线程,该第三线程为打开相机后创建的主线程。在第三线程中运行初始化相机模组中AF器件、闪光灯各器件的步骤。
在一些实现方式中,第三线程可以与第二线程并行处理。
在一些实现方式中,本申请实施例可以不创建第二线程,而是在第三线程中执行步骤S602-S604,以及执行步骤S701-S706,实现打开相机时相机模组初始化与OIS固件升级的串行处理。可以基于实际情况从串行处理和并行处理中做选择,本申请实施例对此不做具体限定。
需要补充说明的是,由上述内容可知,本申请实施例提供的OIS固件升级方法,可以在每次开机及每次打开相机时,均判断是否需要升级OIS固件。
图14为本申请实施例提供的OIS固件升级方法的四种升级历程示意图。
需要说明的是,图14中仅为四种示例性历程示意。在实际应用中,本申请实施例提供的OIS固件升级方法还可以包括其他升级历程,本申请对此不做具体限定。
如图14中(a)所示,系统升级后电子设备100开机,之后可以执行OIS固件升级任务。进一步的,OIS固件升级成功。之后如果用户选择打开相机,此时可以初始化相机模组中各器件,并且可以进行版本号比较,并最终确定第一版本号与第二版本号相等,不需要进行OIS固件升级,进一步的,可以基于OIS器件500中的OIS固件配置OIS器件500,之后可以向用户提供相机功能。
如图14中(b)所示,系统升级后电子设备100开机,之后可以执行OIS固件升级任务。进一步的,OIS固件升级失败。之后如果用户选择打开相机,此时可以初始化相机模组中各器件,并且可以进行版本号比较,并最终确定第一版本号与第二版本号不相等,需要进行OIS固件升级,因此可以将OIS器件500中的OIS固件升级至第一版本号对应的版本。升级完成后可以基于OIS器件500中的OIS固件配置OIS器件500,之后可以向用户提供相机功能。
如图14中(c)所示,系统升级后电子设备100开机,之后可以执行OIS固件升级任务。进一步的,OIS固件升级失败,并且直至下一次电子设备100重新启动开机前,用户都未打开相机。此时本申请实施例可以在下一次电子设备100重新启动开机时,再次执行OIS固件升级任务,将第一版本号对应的目标固件安装文件下载至OIS器件500中,以成功升级OIS固件。
如图14中(d)所示,系统升级后电子设备100开机,之后可以执行OIS固件升级任务。进一步的,OIS固件升级失败。之后如果用户选择打开相机,此时可以初始化相机模组中各器件,并且可以进行版本号比较,并最终确定第一版本号与第二版本号不相等,需要进行OIS固件升级,因此可以将OIS器件500中的OIS固件升级至第一版本号对应的版本。如果此时OIS固件仍升级失败,本申请实施例可以在下一次电子设备100重新启动开机时,再次执行OIS固件升级任务,将第一版本号对应的目标固件安装文件503a下载至OIS器件500中,以成功升级OIS固件。
本申请实施例中,电子设备100的相机模组中可以包括多个摄像头,例如电子设备100包括后置摄像头和前置摄像头,并且后置摄像头中包括一个主摄像头和若干个副摄像头。进一步的,多个摄像头中均可以设置OIS器件500。因此,多个摄像头均应当进行OIS固件升级。
图15为本申请实施例提供的OIS固件升级方法的第二种流程示意图。
如图15所示,本申请实施例提供的方法还包括以下步骤S801-S803:
需要说明的是,步骤S801-S802是硬件抽象层200执行的,步骤S803是由内核层300执行的。
S801:硬件抽象层200在电子设备100开机时,确定电子设备100中所有具有OIS固件的摄像头。
可见,本申请实施例可以遍历各个摄像头,确定各个摄像头是否具有OIS器件500,确定具有OIS器件500的摄像头的数量等,最终确定电子设备100中所有具有OIS固件的摄像头。
S802:生成多个第一指令,并将多个第一指令下发至内核层300,多个第一指令与摄像头一一对应。
本申请实施例中,生成多个第一指令的步骤可以是运行于多个不同线程并行进行的。第一指令可以用于指示内核层300执行OIS固件升级流程。
内核层300还用于:
S803:内核层300响应多个第一指令,对每一摄像头均执行OIS固件升级流程。
本申请实施例中,响应于多个第一指令,对每一摄像头均执行OIS固件升级流程的步骤,可以是运行于多个不同线程并行进行的。
需要说明的是,生成第一指令的步骤,以及响应第一指令,对摄像头执行OIS固件升级流程的步骤,可以参照前述内容,此处不做赘述。
图16为本申请实施例提供的开机阶段初始化相机模组的流程示意图。
如图16所示,在电子设备100开机时,硬件抽象层200可以执行初始化相机模组的步骤:
硬件抽象层200可以通过调用函数CreateSensorSubModules执行开机时初始化相机模组的步骤。初始化的过程中可以创建并初始化相机模组各个子模块,例如EEprom子模块,AF子模块、Flash子模块及OIS子模块。
对于AF子模块,初始化的步骤可以包括获取AF子模块的通信地址,或者初始化其每次移动动作的步长等,本申请实施例对此不做具体限定。
对于EEprom子模块,初始化的步骤可以包括获取EEprom子模块的通信地址,读取EEprom中存储的相机标定信息例如白平衡等。
对于OIS子模块,初始化的步骤完成了data变量初始化及相关信息获取。其中,data变量初始化例如可以包括读取probeFWDownload的值,probeFWDownload可以位于与相机配置相关的代码中,通过函数调用可以获取到probeFWDownload的值,probeFWDownload=0时,表示电子设备100不支持开机时升级OIS固件,probeFWDownload=1时,表示电子设备100支持开机时升级OIS固件。probeFWDownload的实际数值,可以由电子设备厂商决定。进一步的,相关信息的获取可以包括感度参数等物理参数的获取,以及第一厂商信息的获取等。
可见,前述步骤S401可以在初始化的过程中完成。进一步的,步骤S404中获取厂商信息的步骤,可以不在第一线程中执行,而是在初始化过程各子模块的步骤中即完成获取。步骤S603中获取第一厂商信息的步骤,可以不在第二线程中执行,而是在初始化各子模块的步骤中即完成获取。
需要补充说明的是,硬件抽象层200调用函数CreateSensorSubModules之前,还包括其他调用关系,例如调用初始化函数InitCaps、模块初始化函数InitializeSensorSubModules()等,此处未做展开叙述。
图17为本申请实施例提供的OIS固件升级方法的第三种流程示意图。
如图17所示,在上述内容的基础上,硬件抽象层200可以调用StartOISProbeThread,创建并运行第一线程,之后在第一线程中调用OIS Probe等函数,实现步骤S403-S404,形成第一指令“CAM_OIS_PROBE_CMD”,此处不对在第一线程中调用的各个函数做具体限定。之后,硬件抽象层200通过调用ioctl将第一指令下发至内核层300。
进一步的,内核层300接收到ioctl后可以解析第一指令,基于第一指令调用cam_ois_fw_download,执行步骤S501-S506、S5061-S5062以及S507-S508等步骤,最终实现OIS固件更新。
需要说明的是,如果电子设备100包括多个具有OIS器件500的摄像头,那么在执行OIS固件升级流程时,硬件抽象层200可以通过多次调用函数CreateSensorSubModules,对多个摄像头分别执行初始化步骤。例如,电子设备100包括5个具有OIS器件500的摄像头,那么需要调用5次函数CreateSensorSubModules。进一步的,在各次调用函数CreateSensorSubModules后,均可以调用StartOISProbeThread,创建并运行第一线程。这样,对于每一具有OIS器件500的摄像头均可以实现OIS固件升级。
需要说明的是,图17中调用StartOISProbeThread、创建并运行第一线程的步骤,可以与电子设备100开机阶段的其他流程并行进行。可见,开机阶段进行OIS固件升级不会影响开机的正常流程。
继续参见图17,内核层300还可以向硬件抽象层200返回结果(return result),以将OIS固件是否升级成功的消息反馈至硬件抽象层200。
需要说明的是,图17中所示的虚线框中的内容,即为硬件抽象层200与内核层300之间新增的OIS交互通路所执行的步骤。
上述本申请提供的实施例中,从电子设备100的角度对本申请提供的OIS固件升级方法的各方案进行了介绍。可以理解的是,电子设备100为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
图18为本申请实施例提供的OIS固件升级装置的结构示意图。
如图18所示,本申请实施例提供的OIS固件升级装置可以包括:显示屏1001、存储器1002、处理器1003和通信模块1004。上述各器件可以通过一个或多个通信总线1005连接。显示屏1001可以包括显示面板10011和触摸传感器10012,其中,显示面板10011用于显示图像,触摸传感器10012可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型,通过显示面板10011提供与触摸操作相关的视觉输出。处理器1003可以包括一个或多个处理单元,例如:处理器1003可以包括应用处理器,调制解调处理器,图形处理器,图像信号处理器,控制器,视频编解码器,数字信号处理器,基带处理器,和/或神经网络处理器等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。存储器1002与处理器1003耦合,用于存储各种软件程序和/或计算机指令,存储器1002可包括易失性存储器和/或非易失性存储器。当处理器1003执行计算机指令时,OIS固件升级装置可执行上述方法实施例中电子设备100执行的各个功能或者步骤。
在一些实施例中,当存储器1002中的软件程序和/或多组指令被处理器1003运行时,使得该装置用于执行如下方法步骤:硬件抽象层200在电子设备100开机时,生成第一指令,并将第一指令下发至内核层300;第一指令用于指示内核层300升级电子设备100中的OIS固件;内核层300响应第一指令,执行OIS固件升级流程。
在一些实施例中,当存储器1002中的软件程序和/或多组指令被处理器1003运行时,使得该装置用于执行如下方法步骤:判断电子设备100是否支持开机时升级OIS固件;如果电子设备100支持开机时升级OIS固件,创建并运行第一线程;在第一线程中,获取第一版本号、第一厂商信息及预设电源配置;第一版本号是目标版本的OIS固件的版本号,第一厂商信息是电子设备100中当前版本的OIS固件的厂商信息;基于第一版本号、第一厂商信息及预设电源配置,生成第一指令。
在一些实施例中,当存储器1002中的软件程序和/或多组指令被处理器1003运行时,使得该装置用于执行如下方法步骤:从第一指令中获取第一版本号;从电子设备100的OIS器件500中获取第二版本号,第二版本号是OIS器件500中当前版本的OIS固件的版本号;判断第一版本号与第二版本号是否相等;如果第一版本号与第二版本号不相等,将OIS器件500中的OIS固件升级至第一版本号对应的目标版本。
在一些实施例中,当存储器1002中的软件程序和/或多组指令被处理器1003运行时,使得该装置用于执行如下方法步骤:获取第一版本号对应的目标固件安装文件;将目标固件安装文件下载至OIS器件500中。
在一些实施例中,第一版本号对应于多个固件安装文件,多个固件安装文件对应的厂商信息不同。当存储器1002中的软件程序和/或多组指令被处理器1003运行时,使得该装置用于执行如下方法步骤:内核层300从第一指令中获取第一厂商信息;基于第一厂商信息从多个固件安装文件中确定目标固件安装文件。
在一些实施例中,当存储器1002中的软件程序和/或多组指令被处理器1003运行时,使得该装置用于执行如下方法步骤:内核层300从第一指令中获取预设电源配置;利用预设电源配置对OIS器件500进行上电。
在一些实施例中,当存储器1002中的软件程序和/或多组指令被处理器1003运行时,使得该装置用于执行如下方法步骤:硬件抽象层200在电子设备100打开相机时,创建并运行第二线程;在第二线程中,获取第一版本号、第一厂商信息及预设电源配置;基于第一版本号、第一厂商信息及预设电源配置,生成第二指令;将第二指令下发至内核层300。
在一些实施例中,当存储器1002中的软件程序和/或多组指令被处理器1003运行时,使得该装置用于执行如下方法步骤:内核层300响应于第二指令,在第二指令中获取预设电源配置;如果OIS器件500未上电,利用预设电源配置对OIS器件500进行上电。
在一些实施例中,当存储器1002中的软件程序和/或多组指令被处理器1003运行时,使得该装置用于执行如下方法步骤:内核层300从第二指令中获取第一版本号;从OIS器件500中获取第二版本号;判断第一版本号与第二版本号是否相等;如果第一版本号与第二版本号相等,基于OIS器件500中的OIS固件配置OIS器件500;如果第一版本号与第二版本号不相等,将OIS器件500中的OIS固件升级至第一版本号对应的目标版本。
在一些实施例中,当存储器1002中的软件程序和/或多组指令被处理器1003运行时,使得该装置用于执行如下方法步骤:硬件抽象层200在电子设备100开机时,确定电子设备100中所有具有OIS固件的摄像头;以及,生成多个第一指令,并将多个第一指令下发至内核层300,多个第一指令与摄像头一一对应;内核层300响应多个第一指令,对每一摄像头均执行OIS固件升级流程。
以上的具体实施方式,对本申请实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本申请实施例的具体实施方式而已,并不用于限定本申请实施例的保护范围,凡在本申请实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请实施例的保护范围之内。
Claims (11)
1.一种OIS固件升级方法,其特征在于,应用于电子设备,所述方法包括;
硬件抽象层在所述电子设备开机阶段生成第一指令,并将所述第一指令下发至内核层;在所述开机阶段增加所述硬件抽象层与所述内核层之间的OIS交互通路;所述开机阶段是指电子设备启动且未进入操作系统的阶段,所述第一指令用于指示所述内核层升级所述电子设备中的所述OIS固件;
所述内核层响应所述第一指令,执行所述OIS固件升级流程,以在所述开机阶段基于所述硬件抽象层与所述内核层之间的所述OIS交互通路,实现所述OIS固件升级。
2.根据权利要求1所述的OIS固件升级方法,其特征在于,所述硬件抽象层在所述电子设备开机时,生成第一指令,包括:
判断所述电子设备是否支持开机时升级所述OIS固件;
如果所述电子设备支持开机时升级所述OIS固件,创建并运行第一线程;
在所述第一线程中,获取第一版本号、第一厂商信息及预设电源配置;所述第一版本号是目标版本的所述OIS固件的版本号,所述第一厂商信息是所述电子设备中当前版本的所述OIS固件的厂商信息;
基于所述第一版本号、所述第一厂商信息及所述预设电源配置,生成所述第一指令。
3.根据权利要求2所述的OIS固件升级方法,其特征在于,所述内核层响应所述第一指令,执行所述OIS固件升级流程,包括:
从所述第一指令中获取所述第一版本号;
从所述电子设备的OIS器件中获取第二版本号,所述第二版本号是所述OIS器件中当前版本的所述OIS固件的版本号;
判断所述第一版本号与所述第二版本号是否相等;
如果所述第一版本号与所述第二版本号不相等,将所述OIS器件中的所述OIS固件升级至所述第一版本号对应的目标版本。
4.根据权利要求3所述的OIS固件升级方法,其特征在于,所述将所述OIS器件中的所述OIS固件升级至所述第一版本号对应的目标版本,包括:
获取所述第一版本号对应的目标固件安装文件;
将所述目标固件安装文件下载至所述OIS器件中。
5.根据权利要求4所述的OIS固件升级方法,其特征在于,所述第一版本号对应于多个固件安装文件,多个所述固件安装文件对应的厂商信息不同;
所述获取所述第一版本号对应的目标固件安装文件的步骤前,所述方法还包括:
所述内核层从所述第一指令中获取所述第一厂商信息;
基于所述第一厂商信息从多个所述固件安装文件中确定所述目标固件安装文件。
6.根据权利要求3所述的OIS固件升级方法,其特征在于,所述从所述第一指令中获取所述第一版本号的步骤前,所述方法还包括:
所述内核层从所述第一指令中获取所述预设电源配置;
利用所述预设电源配置对所述OIS器件进行上电。
7.根据权利要求3所述的OIS固件升级方法,其特征在于,所述方法还包括:
所述硬件抽象层在所述电子设备打开相机时,创建并运行第二线程;
在所述第二线程中,获取所述第一版本号、所述第一厂商信息及所述预设电源配置;
基于所述第一版本号、所述第一厂商信息及所述预设电源配置,生成第二指令;
将所述第二指令下发至所述内核层。
8.根据权利要求7所述的OIS固件升级方法,其特征在于,所述将所述第二指令下发至所述内核层的步骤后,所述方法还包括:
所述内核层响应于所述第二指令,在所述第二指令中获取所述预设电源配置;
如果所述OIS器件未上电,利用所述预设电源配置对所述OIS器件进行上电。
9.根据权利要求7所述的OIS固件升级方法,其特征在于,所述方法还包括:
所述内核层从所述第二指令中获取所述第一版本号;
从所述OIS器件中获取所述第二版本号;
判断所述第一版本号与所述第二版本号是否相等;
如果所述第一版本号与所述第二版本号相等,基于所述OIS器件中的所述OIS固件配置所述OIS器件;
如果所述第一版本号与所述第二版本号不相等,将所述OIS器件中的所述OIS固件升级至所述第一版本号对应的目标版本。
10.根据权利要求1所述的OIS固件升级方法,其特征在于,还包括:
所述硬件抽象层在所述电子设备开机时,确定所述电子设备中所有具有所述OIS固件的摄像头;以及,生成多个所述第一指令,并将多个所述第一指令下发至所述内核层,多个所述第一指令与所述摄像头一一对应;
所述内核层响应多个所述第一指令,对每一所述摄像头均执行所述OIS固件升级流程。
11.一种电子设备,其特征在于,包括:处理器和存储器;所述存储器存储有程序指令,当所述程序指令被所述处理器执行时,使得所述电子设备执行权利要求1-10中任一项所述的OIS固件升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310487999.6A CN116643782B (zh) | 2023-04-28 | 2023-04-28 | 一种ois固件升级方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310487999.6A CN116643782B (zh) | 2023-04-28 | 2023-04-28 | 一种ois固件升级方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116643782A CN116643782A (zh) | 2023-08-25 |
CN116643782B true CN116643782B (zh) | 2024-05-28 |
Family
ID=87614449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310487999.6A Active CN116643782B (zh) | 2023-04-28 | 2023-04-28 | 一种ois固件升级方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116643782B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104166577A (zh) * | 2014-08-26 | 2014-11-26 | 深圳市中兴移动通信有限公司 | 一种移动终端系统升级的方法和装置 |
CN108073420A (zh) * | 2016-11-07 | 2018-05-25 | 杭州海康威视数字技术股份有限公司 | 一种系统无盘启动方法及装置 |
CN112732310A (zh) * | 2021-01-22 | 2021-04-30 | 深圳市信义科技有限公司 | 基于嵌入式引导分区固件升级方法、系统、设备及介质 |
CN112817634A (zh) * | 2021-01-29 | 2021-05-18 | Oppo广东移动通信有限公司 | Cota包下载方法及装置 |
CN114461239A (zh) * | 2021-06-30 | 2022-05-10 | 荣耀终端有限公司 | 软件升级系统和软件升级方法 |
CN115951919A (zh) * | 2022-11-02 | 2023-04-11 | 深圳市酷开网络科技股份有限公司 | 操作系统的升级方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8418163B2 (en) * | 2008-04-16 | 2013-04-09 | Ciena Corporation | Stacked hardware abstraction layer methods for maintaining software/hardware backward compatibility |
-
2023
- 2023-04-28 CN CN202310487999.6A patent/CN116643782B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104166577A (zh) * | 2014-08-26 | 2014-11-26 | 深圳市中兴移动通信有限公司 | 一种移动终端系统升级的方法和装置 |
CN108073420A (zh) * | 2016-11-07 | 2018-05-25 | 杭州海康威视数字技术股份有限公司 | 一种系统无盘启动方法及装置 |
CN112732310A (zh) * | 2021-01-22 | 2021-04-30 | 深圳市信义科技有限公司 | 基于嵌入式引导分区固件升级方法、系统、设备及介质 |
CN112817634A (zh) * | 2021-01-29 | 2021-05-18 | Oppo广东移动通信有限公司 | Cota包下载方法及装置 |
CN114461239A (zh) * | 2021-06-30 | 2022-05-10 | 荣耀终端有限公司 | 软件升级系统和软件升级方法 |
CN115951919A (zh) * | 2022-11-02 | 2023-04-11 | 深圳市酷开网络科技股份有限公司 | 操作系统的升级方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116643782A (zh) | 2023-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020000448A1 (zh) | 一种柔性屏幕的显示方法及终端 | |
CN110362328B (zh) | Ota升级的方法、装置和计算机设备 | |
US11625066B2 (en) | Foldable electronic device and photographing method using multiple cameras in foldable electronic device | |
CN110308956B (zh) | 一种应用界面显示方法、装置及移动终端 | |
CN108717365B (zh) | 在应用程序中执行功能的方法和装置 | |
CN111191224B (zh) | 虚拟机检测的对抗方法、装置及计算机可读存储介质 | |
CN114257670B (zh) | 一种具有折叠屏的电子设备的显示方法 | |
CN111190748A (zh) | 数据共享方法、装置、设备及存储介质 | |
CN111159604A (zh) | 图片资源加载方法及装置 | |
US20240095000A1 (en) | Plug-In Installation Method, Apparatus, and Storage Medium | |
CN113867848A (zh) | 图形接口的调用方法、装置、设备及可读存储介质 | |
CN114257671B (zh) | 一种图像显示方法及电子设备 | |
CN114237413A (zh) | 处理交互事件的方法和装置 | |
CN109783176B (zh) | 切换页面的方法和装置 | |
CN111897465B (zh) | 弹窗显示方法、装置、设备及存储介质 | |
CN112612539A (zh) | 数据模型卸载方法、装置、电子设备及存储介质 | |
CN116643782B (zh) | 一种ois固件升级方法及电子设备 | |
CN110086814B (zh) | 一种数据获取的方法、装置及存储介质 | |
CN111324293B (zh) | 一种存储系统、存储数据的方法、读取数据的方法及装置 | |
CN111580892B (zh) | 一种业务组件调用的方法、装置、终端和存储介质 | |
CN113784331A (zh) | 更新用户身份识别模块卡系统数据的方法及装置 | |
CN113885928B (zh) | 程序更新方法和电子设备 | |
CN113843814A (zh) | 机械臂设备的控制系统、方法、装置和存储介质 | |
CN108881715B (zh) | 拍摄模式的启用方法、装置、终端及存储介质 | |
CN117135268B (zh) | 拍摄的方法和电子设备、芯片、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |