CN112214235A - 快充固件升级方法、装置、移动终端和存储介质 - Google Patents
快充固件升级方法、装置、移动终端和存储介质 Download PDFInfo
- Publication number
- CN112214235A CN112214235A CN202011152208.7A CN202011152208A CN112214235A CN 112214235 A CN112214235 A CN 112214235A CN 202011152208 A CN202011152208 A CN 202011152208A CN 112214235 A CN112214235 A CN 112214235A
- Authority
- CN
- China
- Prior art keywords
- firmware
- charging
- quick
- upgrading
- array
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000005192 partition Methods 0.000 claims abstract description 130
- 230000008569 process Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 9
- 238000003491 array Methods 0.000 claims description 6
- 239000010410 layer Substances 0.000 description 27
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- 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
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种快充固件升级方法。该快充固件升级方法包括:读取移动终端数据分区的快充固件数组的版本信息以及读取移动终端处理器中存储的快充固件的版本信息;在数据分区的快充固件数组的版本信息与移动终端处理器中存储的快充固件的版本信息不一致时,将数据分区的快充固件数组从移动终端***的用户态复制到移动终端***的内核态,通知终端的内核层完成快充固件的升级操作。本申请还提出一种快充固件升级装置,移动终端和存储介质。本申请区分于目前的快充固件升级的方式,可准确合适的完成快充固件升级的判断,无需不断的做快充固件内核态升级的通知,降低了CPU的资源消耗。
Description
技术领域
本申请涉及快充技术领域,尤其涉及一种快充固件升级方法、装置、移动终端和存储介质。
背景技术
随着手机行业充电技术不断发展,涌现一大批快充技术,总体的特征是充电的功率越来越大,充电速度也越来越快,快充逻辑是固化在快充驱动的固件中的,因此当快充需求变更时就需要更改快充逻辑,也就是更新快充固件。
快充固件升级分为两大块,一个是移动终端***用户态的升级程序,另外一个移动终端***内核态的升级程序,用户态和内核态是移动终端操作***的CPU的两种运行状态,而对于用户态,运行用户程序,内核态是运行操作***程序,操作硬件;对于快充固件升级的顺序是先是跑用户态的升级程序,将要升级的快充固件数组通过firmware(固件)的方式传送给内核态,然后由内核态的升级程序来检测是否要升级,如果要升级就执行真正固件升级。
但是以上快充固件升级方案的缺陷是:实际应用过程中固件实际改动需要升级的次数比较少,可能几个月的项目期间就那么4-5次的改动。但是现在的固件升级方案会不断的做升级检查,不管固件实际是否需要升级,均会将固件数组从用户态copy到内核态,严重耗费了CPU的资源。
发明内容
本申请实施例通过提供一种快充固件升级方法,装置,移动终端和存储介质,旨在解决的现在的固件升级方案会不断的做升级检查,不管固件实际是否需要升级,均会将固件数组从用户态copy到内核态,严重耗费了CPU的资源的技术问题。
为实现上述目的,本申请实施例提供一种快充固件升级方法,所述快充固件升级方法包括:
读取移动终端数据分区的快充固件数组的版本信息以及读取移动终端处理器中存储的快充固件的版本信息;
在数据分区的快充固件数组的版本信息与移动终端处理器中存储的快充固件的版本信息不一致时,将数据分区的快充固件数组从移动终端***的用户态复制到移动终端***的内核态,通知终端的内核层完成快充固件的升级操作。
本申请还提供了一种快充固件升级装置,所述装置包括:
读取模块,用于读取移动终端数据分区的快充固件数组的版本信息以及读取移动终端处理器中存储的快充固件的版本信息;
升级模块,用于在移动终端数据分区的快充固件数组的版本信息与移动终端处理器中存储的快充固件的版本信息不一致时,将移动终端数据分区的快充固件数组从移动终端***的用户态复制到移动终端***的内核态,通知终端的内核层完成快充固件的升级操作。
本申请还提供了一种移动终端,所述移动终端包括:存储器、处理器、通信总线以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器执行时实现以下步骤:
读取移动终端数据分区的快充固件数组的版本信息以及读取移动终端处理器中存储的快充固件的版本信息;
在数据分区的快充固件数组的版本信息与移动终端处理器中存储的快充固件的版本信息不一致时,将数据分区的快充固件数组从移动终端***的用户态复制到移动终端***的内核态,通知终端的内核层完成快充固件的升级操作。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有快充固件升级程序,所述快充固件升级程序被处理器执行时实现以下步骤:
读取移动终端数据分区的快充固件数组的版本信息以及读取移动终端处理器中存储的快充固件的版本信息;
在数据分区的快充固件数组的版本信息与移动终端处理器中存储的快充固件的版本信息不一致时,将数据分区的快充固件数组从移动终端***的用户态复制到移动终端***的内核态,通知终端的内核层完成快充固件的升级操作。
本申请通过提前获取移动终端数据分区中的快充固件数组的版本信息,以及读取处理器中存储的快充固件的版本信息,区分于目前的快充固件升级的方式(现在的固件升级方案会不断的做升级检查,不管固件实际是否需要升级,均会将固件数组从用户态copy到内核态,严重耗费了CPU的资源),准确合适的完成快充固件升级的判断,无需不断的做快充固件内核态升级的通知,降低了CPU的资源消耗。
附图说明
图1为本申请快充固件升级方法一实施例的流程示意图;
图2为本申请快充固件升级方法另一实施例的流程示意图;
图3为本申请一实施例中执行其他分区的固件升级操作的流程示意图;
图4为本申请快充固件升级方法又一实施例的流程示意图;
图5为本申请快充固件升级方法又一实施例的流程示意图;
图6为本申请一实施例中快充固件升级的流程示意图;
图7为本申请实施例方法涉及的硬件运行环境的设备结构示意图;
图8为本申请快充固件升级装置一实施例的架构示意图;
图9为本申请快充固件升级装置另一实施例的架构示意图;
图10为本申请快充固件升级装置又一实施例的架构示意图;
图11为本申请快充固件升级装置又一实施例的架构示意图;
图12为本申请快充固件升级装置又一实施例的架构示意图。
具体实施方式
为了能够更清楚地理解本申请的上述目的、特征和优点,下面结合附图和具体实施方式对本申请进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
本申请实施例的主要解决方案是:读取移动终端数据分区的快充固件数组的版本信息以及读取移动终端处理器中存储的快充固件的版本信息;在数据分区的快充固件数组的版本信息与移动终端处理器中存储的快充固件的版本信息不一致时,将数据分区的快充固件数组从移动终端***的用户态复制到移动终端***的内核态,通知终端的内核层完成快充固件的升级操作。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
本申请中运用到的一些词语的解释如下:
缩写 | 中文解释 | 英文解释 |
SUPER_VOOC | 超级闪充 | SUPER_VOOC |
VOOC | 闪充 | VOOC |
QC | 高压快充 | Quick charge |
kernel层 | 内核层 | -- |
firmware | 固件 | -- |
proc_fastchg_info | 过程快速更改信息 | |
AP端 | 应用控制器 | Application processor |
本申请提供一种快充固件升级方法,在快充固件升级方法的一实施例中,参照图1,所述快充固件升级方法包括:
步骤S10,读取移动终端数据分区的快充固件数组的版本信息以及读取移动终端处理器中存储的快充固件的版本信息;
终端会设置或者划分多个分区,例如包括存储分区、***分区,也可以包括数据分区和其他分区,所述数据分区为data分区,其他分区为vendor分区,vendor分区为厂商***修改的存储位置。
所述终端支持快充,在终端中运行快充固件,通过快充固件、快充电路和快充适配器来完成终端的快充。所述数据分区中不一定会存在快充固件数组,但在vendor分区中一定存在快充固件数组。
判断终端是否需要进行快充固件的升级操作,包括读取数据分区的快充固件数组的版本信息,当然是在数据分区存储有快充固件数组的前提下,才能知晓快充固件数组的版本信息,以及读取处理器MCU中存储的快充固件的版本信息,这里的MCU是快充MCU,为快充处理器中存储的快充固件的版本信息,将两者中存储的快充数组的版本信息作出比对,以判断两者是否一致,通过两者是否一致来判定是否执行快充的升级操作。
步骤S20,在移动终端数据分区的快充固件数组的版本信息与移动终端处理器中存储的快充固件的版本信息不一致时,将数据分区的快充固件数组从移动终端的用户态复制到移动终端的内核态,通知终端的内核层完成快充固件的升级操作。
所述用户态就是提供应用程序运行的空间,为了使应用程序访问到内核管理的资源例如CPU,内存,I/O。内核必须提供一组通用的访问接口,这些接口就叫***调用。而用户态的运转会使用到***调用,利用接口访问内核态来实现应用的功能。只有在判断在数据分区的快充固件数的版本信息与控制器中快充固件的版本信息不一致时,执行用户态的快充固件升级,然后将数据分区的快充固件数组从移动终端的用户态复制到移动终端的内核态,通知终端的内核层完成快充固件的升级操作。其中,,用户态和内核态是移动终端操作***的CPU的两种运行状态,而对于用户态,运行用户程序,内核态是运行操作***程序,操作硬件。
可选地,所述通知终端的内核层完成快充固件的升级操作的步骤包括:将指示内核层快充固件升级的节点的信息写为预设数值。可选地,所述预设数值为1,所述指示内核层快充固件升级的节点为proc_fastchg_info,写为1的操作具体为:proc_fastchg_update=1。通过节点写为1的操作,通知终端的内核来完成快充固件的升级操作。本申请实施例的快充固件升级方式可选地应用于终端侧,对于终端侧-AP端的快充固件升级,而不是适配器侧的升级。
本实施例通过提前获取数据分区-data数据分区中的快充固件数组的版本信息,以及读取处理器中存储的快充固件的版本信息,区分于目前的快充固件升级的方式(现在的固件升级方案会不断的做升级检查,不管固件实际是否需要升级,均会将固件数组从用户态copy到内核态,严重耗费了CPU的资源),准确合适的完成快充固件升级的判断,无需不断的做快充固件内核态升级的通知,降低了CPU的资源消耗。
在本申请一实施例中,参考图2,所述方法,还包括:
步骤S30,在检测到数据分区的快充固件数组是非法的快充固件数组时,执行其他分区的固件升级操作。
先检测数据分区的快充固件数组是否合法,在为非法时,不执行升级操作,需要跨区到其他分区-vendor分区执行固件升级操作,即跨区到其他分区执行用户态的快充固件的升级操作。
可选地,所述在检测到数据分区的快充固件数组是非法的快充固件数组时,执行其他分区的固件升级操作的步骤之前,还包括:
检查数据分区的固件数组的魔数是否匹配,检查固件数组的头部的固件存放路径是否和设定的固件数组路径匹配;
在魔数未匹配或者固件数组的头部的固件存放路径和设定的固件数组路径未匹配时,判定数据分区的快充固件数组是非法的快充固件数组。
而在一实施例中,同样提供一种判断方式来判断是否要执行数据分区的升级操作,所述读取数据分区的快充固件数组的版本信息的步骤之后,还包括:
在数据分区中不存在快充固件数组时,执行其他分区的固件升级操作。数据分区-data分区不一定存在快充固件数组的版本信息,而其他分区-vendor分区必然存在快充固件数组的版本信息,在数据分区不存在快充固件数组的版本信息时,跳转到其他分区执行快充固件的升级操作。
本实施例通过判断数据分区中快充固件数组的合法性来判定是否需要做数据分区的固件升级,避免固件升级的误操作而导致资源浪费,节省了***计算资源。
在一实施例中,参考图3,所述执行其他分区的固件升级操作包括:
步骤S31,获取其他分区的固件数组的固件版本号和控制器的固件版本号;
步骤S32,在其他分区的固件数组的固件版本号大于处理器存储的固件版本号时,执行拷贝操作和指示内核层快充固件升级的节点写为预设数值的操作升级快充固件。
其他分区的快充固件升级与数据分区不同的是,其他分区的升级操作执行必须建立在数据分区的固件数组的固件版本号大于处理器中存储的固件版本号的基础上,才执行通知内核态完成固件升级的操作。所述执行拷贝操作的步骤包括:将其他分区的固件数组复制到内核态。可选地,所述预设数值为1,所述指示内核层快充固件升级的节点为proc_fastchg_info,写为1的操作具体为:proc_fastchg_update=1。通过节点写为1的操作,通知终端的内核来完成快充固件的升级操作。
本实施例通过其他分区的固件升级操作的判断来执行内核态升级的通知,提高了内核态升级通知的准确性,避免内核升级误操作,进一步提高了内核升级通知的准确性。
参考图4,在一实施例中,所述方法,还包括:
步骤S40,在处理器获取到快充适配器存在码后,判断快充是否为假充;
步骤S50,在判定快充为假充时,切换快充开关至普充,而确定指示内核层快充固件升级的节点为预设数值时,启动内核态的固件升级的线程,控制处理器进入固件升级程序完成内核态的固件升级;
步骤S60,在固件升级完成时,复位快充控制器后判定假充时,清除与假充对应的变量;
步骤S70,重新切换快充开关和复位快充控制器,获取到适配器类型,显示快充显示动画。
AP端(应用控制器)拿到快充适配器存在码后,就会判断是否假充(电量太高),如果是假充这时就会切快充开关到普充,然后这时刚好用户态写proc_fashchg_update=1然后会开启固件升级的线程。
快充MCU会直接进入固件升级程序中,等到固件升级完时,会重新的复位快充MCU,如果在正常情况下(符合快充电量条件),因为快充开关并没有切走,此时一复位就会立马开始快充;而如果是假充情况下,由于在接收到适配器存在码时已经切走了快充开关,因此需要将假充dummy等相关的变量给清除掉,这样在AP端的5s充电线程里面会重新切快充开关和复位MCU,会重新判定为假充,此时没有固件升级的打断,假充的逻辑会经历:快充适配器存在码-->快充适配器类型码-->快充适配器退出码,因为拿到了适配器类型码,自然能正确的显示快充动画。实际上用户态写proc_fastchg_update=1可能发生在任何一个时间节点,并不是一直是当AP端接收到适配器存在码的时候。
本实施例在快充为假充时,修改了获取适配器类型码的逻辑,使得在完成固件升级后,还是可以拿到适配器类型码,可以显示快充动画,不会因为固件升级而导致快充动画的显示。
在一实施例中,参考图5,所述方法,还包括:
步骤S80,在连接适配器重启充电时,快充驱动初始化,运用快充的接口读取快充控制器的固件版本号;
步骤S90,将快充控制器的固件版本号保存在过程快速更改信息的节点中,其中用户态读取过程快速更改信息节点的信息来判断是否执行用户态快充固件的升级操作。
固件升级只发生在连接适配器重启充电,重启过程中,***首次跑起来的时候,很多的外设驱动需要初始化,以及***服务需要跑起来,其中跟快充相关的就是,快充IC的驱动初始化。
快充驱动的初始化中,有项重要的操作就是会通过I2C的接口去读快充MCU的固件版本号,并将其保存在节点proc_fastchg_info中,以便用户态去读取这个节点来判断是否要升级。
驱动准备好了,***适配器会有VBUS中断提示有外部供电,然后会去做BC1.2充电器类型识别,识别成DCP就会切快充开关以及复位MCU,正常情况下1s左右就会有快充中断发给AP,AP响应中断就会去读快充MCU发送给AP的数据,起始的数据是适配器存在码。
本实施例在重启充电执行快充驱动初始化的操作,读取过程快速更改信息节点的信息,来判定是否执行内核态的快充固件升级操作,提供准确的内核态快充固件升级的节点,提高了快充固件升级的准确性。
在一实施例中,参考图6,快充固件升级的过程包括:用户态侧的体现以及内核态的体现;
用户态的固件升级程序:
Data分区(用户数据分区):
1、首先会去读data分区的固件数组信息,如果有读到data分区的信息,则往2走;否则data分区没有信息,就会去找vendor分区的有没有固件版本信息(正常情况下vendor分区是必有固件数组的)。
2、将data分区的固件数组读出并检查固件的魔数是否匹配,检查固件数组的头部的固件存放的路径是否和指定的固件数组路径匹配,如果其中有一项不匹配,则表明该固件数组是非法的固件数组,则直接跳转到升级vendor分区的流程,否则进行步骤3;
3、会读data分区的固件数组的固件版本号信息并记做V1,同时会去读proc_fastchg_info节点,该节点会保存mcu中固件的版本信息,然后比对两者的版本信息,只要两者不一致,则会走第4步,否则就表明data分区要升级的固件和MCU里面的固件是一致的,并不需要升级;
4、会将data分区的固件数组去掉头部和尾部的校验信息,然后通过firmware的方式将data分区的数组从用户态copy到内核态,同时写节点proc_fastchg_update=1通知kernel层去进行升级。
Vendor分区:vendor分区和data分区的两者的升级的流程基本一致,有点区别的地方就是vendor分区的固件数组的固件版本号要比MCU的固件版本号大才会拷贝和写proc_fastchg_update=1进行升级。之所以要设计vendor分区和data分区,是因为正常的用户版本是只有vendor分区的,data分区是为了紧急升版本而直接推送的,并不需要经过版本编译,更方便快捷和高效。因此data分区只要是版本号不一样就会升级,而vendor分区是版本更迭,固件版本号更高才会去进行升级。
内核态的固件升级:
1、固件升级只发生在连接适配器重启充电,重启过程中,***首次跑起来的时候,很多的外设驱动需要初始化,以及***服务需要跑起来,其中跟快充相关的就是,快充IC的驱动初始化。
2、快充驱动的初始化中,有项重要的操作就是会通过I2C的接口去读快充MCU的固件版本号,并将其保存在节点proc_fastchg_info中,以便用户态去读取这个节点来判断是否要升级。
3、驱动准备好了,***适配器会有VBUS中断提示有外部供电,然后会去做BC1.2充电器类型识别,识别成DCP就会切快充开关以及复位MCU,正常情况下1s左右就会有快充中断发给AP,AP响应中断就会去读快充MCU发送给AP的数据,起始的数据是适配器存在码;
4、AP端拿到快充适配器存在码后,就会判断是否假充(电量太高),如果是假充这时就会切快充开关到普充,然后这时刚好用户态写proc_fashchg_update=1然后会开启固件升级的线程;
5、快充MCU会直接进入固件升级程序中,等到固件升级完时,会重新的复位快充MCU,如果在正常情况下(符合快充电量条件),因为快充开关并没有切走,此时一复位就会立马开始快充;而如果是假充情况下,由于在接收到适配器存在码时已经切走了快充开关,因此需要将假充dummy等相关的变量给清除掉,这样在AP端的5s充电线程里面会重新切快充开关和复位MCU,会重新判定为假充,此时没有固件升级的打断,假充的逻辑会经历:快充适配器存在码-->快充适配器类型码-->快充适配器退出码,因为拿到了适配器类型码,自然能正确的显示快充动画。
上面的逻辑逻辑框图是为了说明效果而作,实际上用户态写proc_fastchg_update=1可能发生在任何一个时间节点,并不是一直是当AP接收到适配器存在码的时候。
另外需要说明的是,由于固件平时改动次数有限,而用户态的固件升级程序和底层快充充电线程是并行跑的,该方案在一定程度上能加快充电速度(固件升级的过程中只能普充,固件升级过程需要几秒,当大电流快充时还是有影响的)。另外由于重启过程需要十多秒,在此过程中,升级已经完成,即使是假充,再重新来一遍判断假充的时间也是足够的,不会出现开机到桌面,先显示普充后再显示快充的动画。正是因为用户态直接拿到快充MCU里的固件版本号比较来判断升级与否,而kernel层完全听从用户态升级的指导,因此绝大多数情况下,kernel里面是不会进行固件升级操作的,这样很多的优化项和逻辑不会跑,进而会降低CPU的负载。
参照图7,图7是本申请实施例方法涉及的硬件运行环境的设备结构示意图。
本申请实施例移动终端可以是PC,也可以是智能手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group AudioLayer IV,动态影像专家压缩标准音频层面4)播放器、便携计算机等终端设备。
如图7所示,该移动终端可以包括:处理器1001,例如CPU,存储器1004,通信总线1005。其中,通信总线1005用于实现处理器1001和存储器1004之间的连接通信。存储器1004可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,该移动终端还可以包括用户接口1002、网络接口1003、用于监测的应用1006等。用户接口1002可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选地,用户接口1002还可以包括标准的有线接口、无线接口。网络接口1003可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。
本领域技术人员可以理解,图7中示出的移动终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图7所示,作为一种计算机存储介质的存储器1004中可以包括操作***、网络通信模块、用户接口模块以及快充固件升级应用程序。操作***是管理和控制移动终端硬件和软件资源的程序,支持监测事件的存储程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1004内部各组件之间的通信,以及与移动终端中其它硬件和软件之间通信。
在图7所示的移动终端中,处理器1001用于执行存储器1004中存储的计算机程序,实现以下步骤:
读取移动终端数据分区的快充固件数组的版本信息以及读取移动终端处理器中存储的快充固件的版本信息;
在数据分区的快充固件数组的版本信息与移动终端处理器中存储的快充固件的版本信息不一致时,将数据分区的快充固件数组从移动终端***的用户态复制到移动终端***的内核态,通知终端的内核层完成快充固件的升级操作。
本申请移动终端的具体实施方式与上述快充固件升级方法各实施例基本相同,在此不再赘述。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于:
读取移动终端数据分区的快充固件数组的版本信息以及读取移动终端处理器中存储的快充固件的版本信息;
在数据分区的快充固件数组的版本信息与移动终端处理器中存储的快充固件的版本信息不一致时,将数据分区的快充固件数组从移动终端***的用户态复制到移动终端***的内核态,通知终端的内核层完成快充固件的升级操作。
本申请计算机可读存储介质具体实施方式与上述快充固件升级方法各实施例基本相同,在此不再赘述。所述计算机可读存储介质可以是移动的硬盘、U盘或者计算机的存储设备等。
本申请还提供了一种快充固件升级装置,参考图8,所述装置包括:读取模块10和升级模块20,
读取模块,用于读取移动终端数据分区的快充固件数组的版本信息以及读取移动终端处理器中存储的快充固件的版本信息;
升级模块,用于在移动终端数据分区的快充固件数组的版本信息与控制器中快充固件的版本信息不一致时,将数据分区的快充固件数组从移动终端***的用户态复制到移动终端***的内核态,通知终端的内核层完成快充固件的升级操作。
可选地,所述升级模块,用于指示内核层快充固件升级的节点的信息写为预设数值。
可选地,所述升级模块,还用于在数据分区中不存在快充固件数组时,执行其他分区的固件升级操作。
可选地,所述升级模块,还用于在检测到数据分区的快充固件数组是非法的快充固件数组时,执行其他分区的固件升级操作。
参考图9,所述装置还包括:检测模块30和判定模块40,
所述检查模块30,用于检查数据分区的固件数组的魔数是否匹配,检查固件数组的头部的固件存放路径是否和设定的固件数组路径匹配;
所述判定模块40,用于在魔数未匹配或者固件数组的头部的固件存放路径和设定的固件数组路径未匹配时,判定数据分区的快充固件数组是非法的快充固件数组。
可选地,在一实施例中,参考图10,所述装置还包括获取模块50,
所述获取模块50,用于获取其他分区的固件数组的固件版本号和控制器的固件版本号;
所述升级模块20,还用于在其他分区的固件数组的固件版本号大于控制器的固件版本号时,执行拷贝操作和指示内核层快充固件升级的节点写为预设数值的操作升级快充固件;
所述执行拷贝操作的步骤包括:
将其他分区的固件数组复制到移动终端***的内核态。
可选地,参考图11,所述装置还包括处理模块60,
所述判定模块40,还用于在处理器获取到快充适配器存在码后,判断快充是否为假充;
所述处理模块60,用于在判定快充为假充时,切换快充开关至普充,而确定指示内核层快充固件升级的节点为预设数值时,启动内核态的固件升级的线程,控制处理器进入固件升级程序完成内核态的固件升级。
可选地,参考图12,所述装置还包括显示模块70,
所述处理模块60,还用于在固件升级完成时,复位快充控制器后判定假充时,清除与假充对应的变量;重新切换快充开关和复位快充控制器;
所述获取模块50,还用于获取到适配器类型;
所述显示模块70,用于显示快充显示动画。
可选地,所述处理模块60,还用于在连接适配器重启充电时,快充驱动初始化;所述读取模块10,还用于运用快充的接口读取快充控制器的固件版本号;
所述升级模块20,还用于将快充控制器的固件版本号保存在过程快速更改信息的节点中,其中用户态读取过程快速更改信息节点的信息来判断是否执行用户态快充固件的升级操作。
本申请还提供了一种移动终端,所述移动终端包括:存储器、处理器、通信总线以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器执行时实现以下步骤:
读取移动终端数据分区的快充固件数组的版本信息以及读取移动终端处理器中存储的快充固件的版本信息;
在数据分区的快充固件数组的版本信息与移动终端处理器中存储的快充固件的版本信息不一致时,将数据分区的快充固件数组从移动终端***的用户态复制到移动终端***的内核态,通知终端的内核层完成快充固件的升级操作。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本申请可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种快充固件升级方法,其特征在于,所述方法用于移动终端,所述方法包括:
读取移动终端数据分区的快充固件数组的版本信息以及读取移动终端处理器中存储的快充固件的版本信息;
在数据分区的快充固件数组的版本信息与移动终端处理器中存储的快充固件的版本信息不一致时,将数据分区的快充固件数组从移动终端***的用户态复制到移动终端***的内核态,通知终端的内核层完成快充固件的升级操作。
2.根据权利要求1所述的快充固件升级方法,其特征在于,所述通知终端的内核层完成快充固件的升级操作的步骤包括:
将指示内核层快充固件升级的节点的信息写为预设数值。
3.根据权利要求1所述的快充固件升级方法,其特征在于,所述读取移动终端数据分区的快充固件数组的版本信息的步骤之后,还包括:
在数据分区中不存在快充固件数组时,执行其他分区的固件升级操作,所述其他分区为厂商***修改的存储分区。
4.根据权利要求1所述的快充固件升级方法,其特征在于,所述方法,还包括:
在检测到数据分区的快充固件数组是非法的快充固件数组时,执行其他分区的固件升级操作。
5.根据权利要求4所述的快充固件升级方法,其特征在于,所述在检测到数据分区的快充固件数组是非法的快充固件数组时,执行其他分区的固件升级操作的步骤之前,还包括:
检查数据分区的固件数组的魔数是否匹配,检查固件数组的头部的固件存放路径是否和设定的固件数组路径匹配;
在魔数未匹配或者固件数组的头部的固件存放路径和设定的固件数组路径未匹配时,判定数据分区的快充固件数组是非法的快充固件数组。
6.根据权利要求3或4所述的快充固件升级方法,其特征在于,所述执行其他分区的固件升级操作包括:
获取其他分区的固件数组的固件版本号和控制器的固件版本号;
在其他分区的固件数组的固件版本号大于控制器的固件版本号时,执行拷贝操作和指示内核层快充固件升级的节点写为预设数值的操作升级快充固件;
所述执行拷贝操作的步骤包括:
将其他分区的固件数组复制到移动终端***的内核态。
7.根据权利要求1至4任一项所述的快充固件升级方法,其特征在于,所述方法,还包括:
在处理器获取到快充适配器存在码后,判断快充是否为假充;
在判定快充为假充时,切换快充开关至普充,而确定指示内核层快充固件升级的节点为预设数值时,启动内核态的固件升级的线程,控制处理器进入固件升级程序完成内核态的固件升级。
8.根据权利要求7所述的快充固件升级方法,其特征在于,所述控制处理器进入固件升级程序完成内核态的固件升级的步骤之后,还包括:
在固件升级完成时,复位快充控制器后判定假充时,清除与假充对应的变量;
重新切换快充开关和复位快充控制器,获取到适配器类型,显示快充显示动画。
9.根据权利要求1至4任一项所述的快充固件升级方法,其特征在于,所述方法,还包括:
在连接适配器重启充电时,快充驱动初始化,运用快充的接口读取快充控制器的固件版本号;
将快充控制器的固件版本号保存在过程快速更改信息的节点中,其中用户态读取过程快速更改信息节点的信息来判断是否执行用户态快充固件的升级操作。
10.一种固件升级装置,其特征在于,所述装置包括:
读取模块,用于读取移动终端数据分区的快充固件数组的版本信息以及读取移动终端处理器中存储的快充固件的版本信息;
升级模块,用于在移动终端数据分区的快充固件数组的版本信息与控制器中快充固件的版本信息不一致时,将数据分区的快充固件数组从移动终端***的用户态复制到移动终端***的内核态,通知终端的内核层完成快充固件的升级操作。
11.一种移动终端,其特征在于,所述移动终端包括:存储器、处理器、通信总线以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至9中任一项所述的快充固件升级方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述的快充固件升级方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011152208.7A CN112214235A (zh) | 2020-10-23 | 2020-10-23 | 快充固件升级方法、装置、移动终端和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011152208.7A CN112214235A (zh) | 2020-10-23 | 2020-10-23 | 快充固件升级方法、装置、移动终端和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112214235A true CN112214235A (zh) | 2021-01-12 |
Family
ID=74055129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011152208.7A Pending CN112214235A (zh) | 2020-10-23 | 2020-10-23 | 快充固件升级方法、装置、移动终端和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112214235A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113794589A (zh) * | 2021-08-31 | 2021-12-14 | 新华三技术有限公司成都分公司 | 一种ac固件的打包方法、ap的升级方法和ac |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012079301A1 (zh) * | 2010-12-17 | 2012-06-21 | 中兴通讯股份有限公司 | 移动终端的触摸屏固件升级方法及装置 |
CN103106088A (zh) * | 2012-12-28 | 2013-05-15 | 上海斐讯数据通信技术有限公司 | 硬件固件独立升级***及方法 |
CN106020884A (zh) * | 2016-05-20 | 2016-10-12 | 江苏华辉云控科技有限公司 | 网络摄像机***在线升级方法 |
CN107908416A (zh) * | 2017-12-28 | 2018-04-13 | 惠州Tcl家电集团有限公司 | 单片机固件升级方法、装置及计算机可读存储介质 |
CN108228222A (zh) * | 2017-12-27 | 2018-06-29 | 努比亚技术有限公司 | 一种固件数据的升级方法、移动终端及计算机存储介质 |
CN111752584A (zh) * | 2020-06-11 | 2020-10-09 | Oppo广东移动通信有限公司 | 固件升级方法、装置、电子设备和计算机可读存储介质 |
-
2020
- 2020-10-23 CN CN202011152208.7A patent/CN112214235A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012079301A1 (zh) * | 2010-12-17 | 2012-06-21 | 中兴通讯股份有限公司 | 移动终端的触摸屏固件升级方法及装置 |
CN103106088A (zh) * | 2012-12-28 | 2013-05-15 | 上海斐讯数据通信技术有限公司 | 硬件固件独立升级***及方法 |
CN106020884A (zh) * | 2016-05-20 | 2016-10-12 | 江苏华辉云控科技有限公司 | 网络摄像机***在线升级方法 |
CN108228222A (zh) * | 2017-12-27 | 2018-06-29 | 努比亚技术有限公司 | 一种固件数据的升级方法、移动终端及计算机存储介质 |
CN107908416A (zh) * | 2017-12-28 | 2018-04-13 | 惠州Tcl家电集团有限公司 | 单片机固件升级方法、装置及计算机可读存储介质 |
CN111752584A (zh) * | 2020-06-11 | 2020-10-09 | Oppo广东移动通信有限公司 | 固件升级方法、装置、电子设备和计算机可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113794589A (zh) * | 2021-08-31 | 2021-12-14 | 新华三技术有限公司成都分公司 | 一种ac固件的打包方法、ap的升级方法和ac |
CN113794589B (zh) * | 2021-08-31 | 2023-11-07 | 新华三技术有限公司成都分公司 | 一种ac固件的打包方法、ap的升级方法和ac |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10776129B2 (en) | Method and apparatus for controlling a startup bootstrap program of an intelligent TV set | |
US9558016B2 (en) | Platform system, method for changing support hardware configuration of universal extensible firmware interface basic input output system and computer program product | |
CN101464807B (zh) | 一种应用程序的加载方法及装置 | |
CN100375025C (zh) | 计算机***启动方法 | |
US9772857B2 (en) | Executing sub-programs stored in an on-chip memory and charging a device via USB before enumeration process | |
US9658863B2 (en) | Information processing apparatus and control method therefor | |
CN101021797A (zh) | 一种用于嵌入式***的软件修复和升级方法 | |
CN105335178B (zh) | 一种启动控制方法,及装置 | |
KR20130099701A (ko) | 휴대용 단말을 위한 재부팅 처리 장치 및 방법 | |
CN109408122B (zh) | 一种设备启动方法、电子设备和计算机存储介质 | |
CN101930372A (zh) | 程序更新***及方法 | |
CN109684125B (zh) | 一种修复ddr物理损坏的方法、装置、设备及存储介质 | |
CN112506745B (zh) | 内存温度读取方法、装置及计算机可读存储介质 | |
CN102609290B (zh) | 电子产品的软件升级方法 | |
CN104021058A (zh) | 一种测试板卡快速启动的方法 | |
CN105893065A (zh) | 计算机***启动方法 | |
CN112214235A (zh) | 快充固件升级方法、装置、移动终端和存储介质 | |
CN112084064B (zh) | 主从bios切换方法、板卡及设备 | |
CN110673956B (zh) | 回收线程创建方法、装置、计算机设备以及存储介质 | |
CN111857854A (zh) | 关机资源加载方法、装置、存储介质和电子设备 | |
US20200371882A1 (en) | Method, Apparatus, Device and Medium for Starting Virtual Machine | |
US9563931B2 (en) | Control method and information processing device | |
CN105808440A (zh) | 应用程序的低内存测试方法、装置和*** | |
WO2018226765A1 (en) | System and method for changing a slave identification of integrated circuits over a shared bus | |
CN105867891A (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 |