CN113360161B - 资源升级方法及相关产品 - Google Patents
资源升级方法及相关产品 Download PDFInfo
- Publication number
- CN113360161B CN113360161B CN202010153555.5A CN202010153555A CN113360161B CN 113360161 B CN113360161 B CN 113360161B CN 202010153555 A CN202010153555 A CN 202010153555A CN 113360161 B CN113360161 B CN 113360161B
- Authority
- CN
- China
- Prior art keywords
- processor
- address
- memory
- updated
- resource
- 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 94
- 238000004891 communication Methods 0.000 claims abstract description 111
- 238000012545 processing Methods 0.000 claims abstract description 110
- 125000004122 cyclic group Chemical group 0.000 claims description 25
- 238000012795 verification Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004519 manufacturing process Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种资源升级方法及相关产品,应用于电子设备,该电子设备包括第一处理单元和第二处理单元,第一处理器和第二处理器通过串行调试SWD通信接口连接,第二处理器包括存储器;方法包括:通过第一处理器通过SWD通信接口将bin文件下载到第二处理器的存储器中;第一处理器确定待更新资源,以及获取待更新资源的更新数据;第一处理器向第二处理器发送控制命令集,控制命令集用于指示述第二处理器根据bin文件和更新数据对待更新资源进行升级,如此,可实现双核处理器的资源升级,使得资源升级方法具有强复制性和强稳定性,同时能降低生产资源和成本。
Description
技术领域
本申请涉及电子技术领域,尤其涉及一种资源升级方法及相关产品。
背景技术
现有的电子设备使用双核处理器,在双核设计的系统中,一个处理器可用于处理用户界面(user interface,UI)等业务逻辑,另一个处理器一般是低功耗的微控制单元(microcontroller unit,MCU)处理器,可实现传感集线器sensor-hub功能,双核设计可保证UI业务流畅,还可降低功耗,提升电子设备的续航能力,但是,双核设计的系统在生产时固件下载以及用户使用电子设备时固件升级方面均存在问题。
在电子设备生产时,需要进行两个处理器固件下载,外部非易失性存储器的资源下载以及传感器的固件下载,现有的固件资源下载都需要印刷线路板(printed circuitboard,PCB)预留下载测试点连接下载治具后配合个人计算机(personal computer,PC)上位机进行下载,但是,下载治具制作复杂且易出问题,此外,一台PC能否同时对多个电子设备进行下载,取决于下载治具和PC上位机是否支持多个电子设备下载,现有的固件资源下载方案会带来较大的生产成本。
在用户使用电子设备升级时,一般先将资源下载到控制UI业务的大核处理器,然后再用大核处理器通过私有的通信协议将固件或者资源下载到传感集线器sensor-hub对应的小核处理器,小核处理器内必须有能进行固件更新的启动引导程序(boot loader)代码,否则无法进行升级,同时如果启动引导程序稳定性不够就会导致升级不成,反而导致电子设备变成不能使用的机器。此外,双核处理器之间固件升级没有一个统一方案,需要根据不同的平台和不同的方案进行修改,不易于维护和移植。
发明内容
本申请实施例提供一种资源升级方法及相关产品,能够实现双核处理器的资源升级,使得资源升级方法具有强复制性和强稳定性,同时能降低生产资源和成本。
第一方面,本申请实施例提供一种资源升级方法,应用于电子设备,所述电子设备包括第一处理器和第二处理器,所述第一处理器和所述第二处理器通过串行调试SWD通信接口连接,所述第二处理器包括存储器,所述方法包括:
所述第一处理器通过串行调试SWD通信接口将bin文件下载到所述存储器中;
所述第一处理器确定待更新资源,以及获取所述待更新资源的更新数据;
所述第一处理器向所述第二处理器发送所述待更新资源、所述更新数据,以及向所述第二处理器发送控制命令集,所述控制命令集用于指示所述第二处理器根据所述bin文件和所述更新数据对所述待更新资源进行升级。
第二方面,本申请实施例提供一种资源升级方法,应用于电子设备,所述电子设备包括第一处理器和第二处理器,所述第一处理器和所述第二处理器通过串行调试SWD通信接口连接,所述第二处理器包括存储器,所述方法包括:
所述第二处理器接收所述第一处理器发送的bin文件,并将所述bin文件存储至所述存储器中;
所述第二处理器接收所述第一处理器发送的待更新资源和所述待更新资源的更新数据,以及接收所述第一处理器发送的控制命令集;
所述第二处理器根据所述控制命令集、所述更新数据和所述bin文件对所述待更新资源进行资源升级。
第三方面,本申请实施例提供一种资源升级装置,应用于电子设备,所述电子设备包括第一处理单元和第二处理单元,所述第一处理单元和所述第二处理单元通过串行调试SWD通信接口连接,所述第二处理单元包括存储器,其中,
所述第一处理单元,用于通过串行调试SWD通信接口将bin文件下载到所述第二处理器对应的存储器中;
所述第一处理单元,还用于确定待更新资源,获取所述待更新资源的更新数据;以及,
向所述第二处理单元发送所述待更新资源和所述更新数据,以及向所述第二处理单元发送控制命令集,所述控制命令集用于指示所述第二处理单元根据所述bin文件和所述更新数据对所述待更新资源进行升级。
第四方面,本申请实施例提供一种资源升级装置,应用于电子设备,所述电子设备包括第一处理单元和第二处理单元,所述第一处理单元和所述第二处理单元通过串行调试SWD通信接口连接,所述第二处理单元包括存储器,其中,
所述第二处理单元,用于接收所述第一处理单元发送的bin文件,并将所述bin文件存储至所述第二处理单元对应的存储器中;
所述第二处理单元,还用于接收所述第一处理单元发送的待更新资源和所述待更新资源的更新数据,以及接收所述第一处理单元发送的控制命令集;以及,
根据所述控制命令集、所述更新数据和所述bin文件对所述待更新资源进行资源升级。
第五方面,本申请实施例提供一种电子设备,所述电子设备包括第一处理器和第二处理器,所述第一处理器与所述第二处理器通过串行调试SWD通信接口连接,所述第二处理器包括存储器,其中,
所述第一处理器,用于通过串行调试SWD通信接口将bin文件下载到所述存储器中;
所述第一处理器还用于确定待更新资源,以及获取所述待更新资源的更新数据;向所述第二处理器发送所述待更新资源、所述更新数据,以及向所述第二处理器发送控制命令集;
所述第二处理器用于根据所述控制命令集、所述更新数据和所述bin文件对所述待更新资源进行资源升级。
第六方面,本申请实施例提供一种电子设备,包括第一处理器、第二处理器、存储器、串行调试SWD通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本申请实施例第一方面或第二方面所述的方法中的步骤的指令。
第七方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面或第二方面所述的方法中所描述的部分或全部步骤。
第八方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面或第二方面所述的方法中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
可以看出,在本申请实施例中,通过第一处理器通过SWD通信接口将bin文件下载到第二处理器的存储器中;第一处理器确定待更新资源,以及获取待更新资源的更新数据;第一处理器向第二处理器发送控制命令集,控制命令集用于指示述第二处理器根据bin文件和更新数据对待更新资源进行升级,如此,可实现双核处理器的资源升级,使得资源升级方法具有强复制性和强稳定性,同时能降低生产资源和成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种电子设备的结构示意图;
图2A是本申请实施例提供的一种资源升级方法的流程示意图;
图2B是本申请实施例提供的一种存储器的演示示意图;
图3A是本申请实施例提供的另一种资源升级方法的流程示意图;
图3B是本申请实施例提供的另一种资源升级方法的部分流程的示意图;
图3C是本申请实施例提供的另一种资源升级方法的部分流程的示意图;
图3D是本申请实施例提供的另一种资源升级方法的部分流程的示意图;
图4是本申请实施例提供的另一种电子设备的结构示意图;
图5是本申请实施例提供的一种资源升级装置的结构示意图;
图6是本申请实施例提供的一种资源升级装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
串行调试(serial wire debug,SWD)协议是ARM公司定义的标准双向有线协议,以高效且稳定的方式在调试器和目标系统之间传递数据。并提供所有正常的联合测试工作组(joint test action group,JTAG)调试、测试功能以及对系统内存的实时访问,而无需停止第二处理器且无需第二处理器中有任何代码即可实现第一处理器与第二处理器之间的通信。
本申请实施例所涉及到的电子设备可以包括各种具有无线通信功能的手持设备(如手机、平板电脑等)、车载设备、可穿戴设备(例如,智能手表)、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(User Equipment,UE),移动台(Mobile Station,MS),终端设备(terminal device)等等。
下面对本申请实施例进行详细介绍。
请参阅图1,图1是本申请实施例公开的一种电子设备的结构示意图,电子设备包括第一处理器和第二处理器,所述第一处理器与所述第二处理器通过串行调试SWD通信接口连接,所述第二处理器包括存储器,存储器例如可以为随机存取存储器(randam accessmemory,RAM),第二处理器还可以包括内部闪存(flash),电子设备还包括与第二处理器连接的外设模块,外设模块可包括触摸屏(touch panel,TP)和全球定位系统(globalpositioning system,GPS)定位模块等固件和非易失闪存(norflash)。其中,
所述第一处理器,用于通过串行调试SWD通信接口将bin文件下载到所述存储器中;
所述第一处理器还用于确定待更新资源,以及获取所述待更新资源的更新数据;向所述第二处理器发送所述待更新资源、所述更新数据,以及向所述第二处理器发送控制命令集;
所述第二处理器用于根据所述控制命令集、所述更新数据和所述bin文件对所述待更新资源进行资源升级。
可选地,在所述通过串行调试SWD通信接口将bin文件下载到所述存储器中之前,第一处理器还用于:
通过所述SWD通信接口对所述第二处理器进行线复位,将所述第二处理器的调试协议转换为所述SWD通信协议;
通过所述SWD通信接口停止所述第二处理器运行的目标进程。
可选地,在所述第一处理器通过串行调试SWD通信接口将bin文件下载到所述存储器中方面,所述第一处理器具体用于:
通过所述SWD通信接口将所述bin文件下载到所述第二处理器的存储器中的第一地址,其中,所述bin文件的内存大小小于或等于从所述第一地址到所述存储器中第二地址之间的地址范围大小。
在所述第一处理器通过串行调试SWD通信接口将bin文件下载到所述存储器中之后,所述确定待更新资源之前,所述第一处理器还用于:
通过所述SWD通信接口控制所述bin文件在所述存储器中运行,并将所述标志位状态设置为空闲状态;
所述bin文件在所述存储器中运行的过程中,检测所述标志位状态,根据所述标志位状态确定所述bin文件是否运行结束;
在检测到所述标志位状态为空闲状态后,将所述标志位状态设置为忙碌状态。
可选地,在所述第一处理器向所述第二处理器发送所述待更新资源和所述更新数据方面,所述第一处理器具体用于:
将所述待更新资源和所述更新数据写入所述存储器中第三地址到第四地址之间的缓存区,并将写入所述待更新资源的地址以及长度写入所述存储器中所述缓存区的第一预设地址;
在所述第一处理器向所述第二处理器发送所述控制命令集方面,所述第一处理器具体用于:
将所述初始化命令发送至所述第二处理器,并指示所述第二处理器将所述存储器中第五地址的标志位状态设置为空闲状态;或者,
将所述写命令写入所述存储器中所述第一预设地址,并指示所述第二处理器将所述第五地址的标志位状态设置为空闲状态;或者,
将所述校验命令所述第二处理器的所述存储器中所述第三地址到所述第四地址之间的第二预设地址,并指示所述第二处理器将所述标志位状态设置为空闲状态。
可选地,在所述初始化命令或所述写命令或所述校验命令执行完成之后,所述第一处理器还用于:
在所述检测到所述标志位状态设置为空闲状态后,读取所述存储器中所述第三地址到所述第四地址之间的结果返回地址,根据所述结果返回地址判断是否继续执行所述控制命令集中的指令或者重新执行所述控制命令集中的指令,并将所述标志位状态设置为忙碌状态。
可选地,在所述根据所述控制命令集、所述更新数据和所述bin文件对所述待更新资源进行资源升级方面,所述第二处理器具体用于:
在所述存储器中运行所述bin文件;
根据所述初始化命令进行初始化,并进入下载模式;
在所述下载模式下,根据所述写命令将所述更新数据写入所述存储器中,得到更新后的所述待更新资源;
根据所述校验命令对所述更新后的待更新资源进行校验。
可选地,所述第二处理器还用于:
当所述bin文件初始化完成后,将所述标志位状态设置为空闲状态;
在所述bin文件在所述存储器中运行后,轮询所述标志位状态,若所述标志位状态设置为空闲状态,且在所述存储器中第三地址到第四地址之间查找到有效命令提示符CMD,则将所述标志位状态设置为忙碌状态。
可选地,所述初始化命令携带所述待更新资源的目标类型,在所述根据所述初始化命令进行初始化,并进入下载模式方面,所述第二处理器具体用于:
若所述目标类型为闪存,则执行擦除所述内部闪存的操作,其中,所述闪存包括以下至少一种:所述第二处理器的内部闪存或者与所述第二处理器连接的非易失闪存;
若所述目标类型为固件,则对所述固件进行初始化,并进入下载模式;
在所述根据所述写命令将所述更新数据写入所述存储器中方面,所述第二处理器具体用于:
将所述第三地址到所述第四地址之间的缓冲区中第一预设长度的有效数据写入所述内部闪存中所述目标类型的第三预设地址;
所述校验命令携带一个参考循环冗余校验CRC值,在所述根据所述校验命令对所述更新后的待更新资源进行校验方面,所述第二处理器具体用于:
若所述目标类型为闪存,则计算所述闪存中更新后的数据的目标CRC值,将所述目标CRC值与所述参考CRC值进行对比,若所述目标CRC值与所述参考CRC值一致,确定所述内部闪存更新成功;
若所述目标类型为固件,则读取所述固件的当前版本号,将所述当前版本号与所述固件更新前的历史版本号进行比对,若所述当前版本号大于所述历史版本号,确定所述固件更新成功。
可选地,所述第二处理器还用于:
在执行所述初始化命令之后,将所述初始化命令的执行结果写入所述存储器中的第三地址到第四地址之间的第一目标地址,并将所述标志位状态设置为空闲状态;
在执行所述写命令之后,将所述写命令的执行结果写入所述存储器中的第三地址到第四地址之间的第二目标地址,并将所述标志位状态设置为空闲状态;
在执行所述校验命令之后,将所述校验命令的执行结果写入所述存储器中的第三地址到第四地址之间的第三目标地址,并将所述标志位状态设置为空闲状态。
请参阅图2A,图2A是本申请实施例提供的另一种资源升级方法的流程示意图,应用于如图1所示的电子设备,所述电子设备包括第一处理器和第二处理器,所述第一处理器和所述第二处理器通过串行调试SWD通信接口连接,所述第二处理器包括存储器;本资源升级方法包括:
201、第一处理器通过串行调试SWD通信接口将bin文件下载到第二处理器的存储器中。
其中,第一处理器可以是通用处理器,第二处理器可以是MCU,SWD通信接口能在MCU没有任何代码的情况下与其MCU的系统内存进行实时访问,即SWD能无条件访问MCU的系统内存,因此,第一处理器通过串行调试SWD接口将bin文件下载到第二处理器的存储器中。
其中,bin文件具有通用的4个框架接口:初始化接口、读命令接口、写命令接口和校验接口,通过bin文件,可使第二处理器完成资源更新。
可选地,上述步骤201中,所述第一处理器通过串行调试SWD通信接口将bin文件下载到所述存储器中,可包括以下步骤:
所述第一处理器通过所述SWD通信接口将所述bin文件下载到所述第二处理器的存储器中的第一地址,其中,所述bin文件的内存大小小于或等于所述第一地址与所述存储器中第二地址之间的地址范围大小。
请参阅图2B,图2B为本申请实施例提供的一种存储器的结构示意图,其中,存储器可以包括第一地址、第二地址、第三地址、第四地址和第五地址,其中,第一处理器将所述bin文件下载至第二处理器,第二处理器将该bin文件存储至存储器的第一地址,其中,bin文件的最大文件范围是到存储器中的第二地址,且第二地址和第三地址不相互踩内存。
其中,bin文件具有通用的4个框架接口:初始化接口、读命令接口、写命令接口和校验接口。
其中,存储器的第五地址可设置一个标志位,SWD通信接口和Bin文件都可以操作存储器中的第五地址中的标志位状态来进行通信同步,如果SWD通信接口要操作存储器中第三地址和第四地址之间的缓冲区,需要读取第五地址中的标志位状态是否为空闲(IDLE)状态,如果是忙碌(BUSY)状态就需要等待第二处理器中bin文件操作完成后将第五地址中的标志位状态设置为空闲状态后,SWD通信接口才能对第二处理器进行操作。第二处理器中也需要查询第五地址中的标志位状态设置为空闲状态后才能通过bin文件中的初始化接口、读命令接口、写命令接口和校验接口进行操作。
可选地,在所述第一处理器通过串行调试SWD通信接口将bin文件下载到所述存储器中之前,还可包括以下步骤:
所述第一处理器通过所述SWD通信接口对所述第二处理器进行线复位,将所述第二处理器的调试协议转换为SWD通信协议;
所述第一处理器通过所述SWD通信接口停止所述第二处理器运行的目标进程。
其中,第一处理器通过SWD通信接口设置SWD通信接口的输入输出(input/output,IO)为高电平,同时发出56个SWD时钟信号,对第二处理器进行线复位。
可选地,第一处理器可通过SWD通信接口发送0xE79E将第二处理器的调试协议由JTAG协议转为SWD通信接口后,可再执行一次对所述第二处理器进行线复位的操作。
其中,考虑到在第二处理器的系统内部闪存中有代码的情况下,如果没有对第二处理器执行HALT命令,那么内部闪存的代码就会运行,这样第二处理器中的系统内存可能会存在两个不同步的操作来源,会导致第二处理器的系统内存被踩踏或者被污染,从而导致数据更新异常第一处理器可通过SWD通信接口操作第二处理器中的第一寄存器,即对第二处理器执行停止(HALT)命令,使第二处理器停止运行内部闪存的代码对应的目标进程,目标进程是第二处理器正在运行的进程,从而,可保证没有其他干扰SWD通信接口操作第二处理器的系统内存。
可选地,在所述通过串行调试SWD通信接口将bin文件下载到所述存储器中之后,所述确定待更新资源之前,还可包括以下步骤:
所述第一处理器通过所述SWD通信接口控制所述bin文件在所述存储器中运行,并指示所述第二处理器在所述bin文件完成初始化之后,将所述标志位状态设置为空闲状态;
在所述第一处理器检测到所述标志位状态为空闲状态后,将所述标志位状态设置为忙碌状态。
其中,第一处理器可通过SWD通信接口操作第二处理器中的第二寄存器,使bin文件在存储器中运行,当所述bin文件初始化完成后,第二处理器可将所述RAM中的第五地址的标志位状态设置为空闲状态。
在第一处理器检测到所述标志位状态为空闲状态后,可将所述标志位状态设置为忙碌状态。
202、第一处理器确定待更新资源,以及获取所述待更新资源的更新数据。
其中,第一处理器可以确定需要待更新资源,待更新资源可包括第二处理器中的内部闪存flash,还可包括与第二处理器连接的固件和非易失闪存norflash,固件例如为TP固件、GPS定位模块固件等,在电子设备生产时,一般所有资源都需要进行下载,因为各个固件或者闪存之间没有直接依赖关系,所以可不限制下载顺序,在电子设备使用阶段进行更新时,可以内部闪存、TP固件、GPS固件和非易失闪存的顺序进行资源更新;如果是在电子设备中的应用过程中,可根据第一处理器向第二处理器发送的命令确定需要更新哪个固件或者闪存资源。
203、所述第一处理器向所述第二处理器发送所述待更新资源、所述更新数据,以及向所述第二处理器发送控制命令集,所述控制命令集用于指示所述第二处理器根据所述bin文件和所述更新数据对所述待更新资源进行升级。
其中,所述控制命令集包括初始化命令、写命令和校验命令,第一处理器可通过SWD通信接口向所述第二处理器发送控制命令集,具体地,可通过SWD通信接口分别发送初始化命令、写命令和校验命令至第二处理器。
可选地,所述初始化命令用于指示所述第二处理器运行所述bin文件,进行初始化,并进入下载模式;所述写命令用于指示所述第二处理器在所述下载模式下,运行所述bin文件,将所述待更新资源的更新数据写入所述存储器中;所述校验命令用于指示所述第二处理器运行所述bin文件,对所述更新数据进行校验。
可选地,上述步骤203中,所述第一处理器向所述第二处理器发送所述待更新资源和所述更新数据,可包括以下步骤:
31、所述第一处理器将所述待更新资源和所述更新数据写入所述存储器中第三地址到第四地址之间的缓存区,并将写入所述待更新资源的地址以及长度写入所述存储器中所述缓存区的第一预设地址;
所述第一处理器向所述第二处理器发送所述控制命令集,可包括以下步骤:
32、所述第一处理器将初始化命令发送至所述第二处理器,并将所述存储器中第五地址的标志位状态设置为空闲状态;或者,
33、所述第一处理器将所述写命令写入所述存储器中所述第一预设地址,并将所述第五地址的标志位状态设置为空闲状态;或者,
34、所述第一处理器将所述校验命令所述第二处理器的所述存储器中所述第三地址到所述第四地址之间的第二预设地址,并将所述标志位状态设置为空闲状态。
其中,第一处理器可向第二处理器发送初始化命令,初始化命令中携带目标类型,然后将第二处理器中处理器的第五地址的标识位状态设置为空闲状态,从而,可通过运行bin文件,执行初始化命令。第二处理器在所述bin文件在所述存储器中运行后,轮询所述第五地址的标志位状态,若所述标志位状态为空闲状态,且在所述存储器中第三地址到第四地址之间查找到有效命令提示符(command,CMD),则将所述标志位状态设置为忙碌状态。第二处理器在在根据CMD确定初始化命令后,就会继续到所述存储器中第三地址到第四地址之间的第四预设地址查找目标类型。
其中,第一处理器向第二处理器发送写命令,具体可包括:第一处理器将待更新资源和更新数据写入所述存储器中第三地址到第四地址之间的缓存区的第一起始地址,并将所述写命令和写入所述待更新资源的地址以及长度写入存储器中所述缓存区的第一预设地址,并将所述第五地址的标志位状态设置为空闲状态。第二处理器在所述bin文件在所述存储器中运行后,轮询所述第五地址的标志位状态,若所述标志位状态为空闲状态,且在所述存储器中第三地址到第四地址之间查找到有效CMD,则将所述标志位状态设置为忙碌状态。第二处理器在在根据CMD确定初始化命令后,就会继续到所述RAM中第三地址到第四地址之间的第四预设地址查找目标类型。
其中,第一处理器向第二处理器发送校验命令,具体可包括:
第一处理器将所述校验命令所述第二处理器的所述存储器中所述第三地址到所述第四地址之间的第二预设地址,并将所述标志位状态设置为空闲状态。第二处理器在所述bin文件在所述存储器中运行后,轮询所述第五地址的标志位状态,若所述标志位状态为空闲状态,且在所述存储器中第三地址到第四地址之间查找到有效CMD,则将所述标志位状态设置为忙碌状态。第二处理器在在根据CMD确定初始化命令后,就会继续到所述RAM中第三地址到第四地址之间的第四预设地址查找目标类型。
可选地,所述初始化命令携带所述待更新资源的目标类型,若所述目标类型为固件,则所述初始化命令具体用于指示所述第二处理器对所述固件进行初始化,并进入下载模式;所述校验命令具体用于指示所述第二处理器读取所述固件的当前版本号,将所述当前版本号传输至所述第一处理器;
所述校验命令携带一个参考循环冗余校验CRC值,若所述目标类型为闪存,则所述初始化命令具体用于指示所述第二处理器执行擦除所述闪存的操作;所述校验命令具体用于指示所述第二处理器计算所述闪存更新后的更新数据的目标循环冗余校验值,将所述目标CRC值与所述参考CRC值进行对比,若所述目标CRC值与所述参考CRC值一致,确定所述闪存更新成功,其中,所述闪存包括以下至少一种:所述第二处理器的内部闪存或者与所述第二处理器连接的非易失闪存;
所述写命令具体用于指示所述第二处理器将所述第三地址到所述第四地址之间的缓冲区中第一预设长度的有效数据写入所述内部闪存中所述目标类型的第三预设地址。
其中,若所述目标类型为内部闪存flash,所述初始化命令具体用于指示第二处理器对第二起始地址执行擦除第二预设长度操作。第二起始地址和第二预设长度是通过初始化命令写在存储器中第三地址到第四地址之间的第五预设地址中的。若所述目标类型为非易失闪存norflash,所述初始化命令具体用于指示第二处理器对串行外围设备接口SPI进行初始化后,再对所述非易失闪存进行擦除操作。
其中,若目标类型为固件,则初始化命令具体用于指示所述第二处理器对所述固件进行初始化,并进入下载模式,具体地,若所述固件为触摸屏TP,则所述初始化命令具体用于指示所述第二处理器对集成电路总线(inter-integrated circuit,IIC)驱动初始化和对所述TP初始化,并进入下载模式;若所述固件为GPS定位模块,则所述初始化命令具体用于指示所述第二处理器对通用异步收发传输器(universal asynchronous receiver/transmitter,UART)初始化和对所述GPS定位模块初始化,并进入下载模式。
通过存储器中的bin文件判断出存储器中第三地址和第四地址之间的缓冲区的第一预设地址处的命令为对内部闪存的写命令后,调用bin文件中的内部闪存写命令接口将第三地址和第四地址之间缓冲区的有效数据写入内部闪存的第三预设地址,其中,第三预设地址存储在缓冲区的第六预设地址上。
当针对固件的写命令完成之后,通过SWD通信接口发送一个校验命令给第二存储器中的bin文件,校验命令携带一个参考循环冗余校验(cyclic redundancy check,CRC)值。通过bin文件判断出第三地址和第四地址之间的缓冲区的数据特定地址处的命令为对内部闪存校验命令后,调用bin文件中的校验接口将内部闪存的数据读出后计算目标CRC值,并和第一处理器通过SWD通信接口发送的参考CRC值进行对比,判断是否相等,将判断结果返回给SWD通信接口,若目标CRC值与参考CRC值相等,SWD通信接口进行下一步操作,若目标CRC值与参考CRC值不相等,通过SWD通信接口重新执行写命令。
若目标类型为固件,校验命令具体用于指示所述第二处理器读取所述固件的当前版本号将所述当前版本号传输至所述第一处理器。
若目标类型为内部闪存flash,或者非易失闪存norflash,校验命令具体用于指示所述第二处理器计算所述内部闪存更新后的更新数据的目标循环冗余校验值,将所述第一循环冗余与所述第一处理器发送的参考循环冗余校验值进行对比,若所述目标循环冗余校验值与所述参考循环冗余校验值一致,确定所述内部闪存或者非易失闪存norflash更新成功。
可选地,在所述初始化命令或所述写命令或所述校验命令执行完成之后,还可包括以下步骤:
在所述第一处理器检测到所述标志位状态设置为空闲状态后,读取所述存储器中所述第三地址到所述第四地址之间的结果返回地址,根据所述结果返回地址判断是否继续执行所述控制命令集中的指令或者重新执行所述控制命令集中的指令,并将所述标志位状态设置为忙碌状态。
其中,通过设置标志位状态为空闲状态或者忙碌状态,可控制SWD通信接口或者bin文件对第二处理器的存储器或内部闪存进行操作。
可以看出,在本申请实施例中,通过第一处理器通过SWD通信接口将bin文件下载到第二处理器的存储器中;第一处理器确定待更新资源,以及获取待更新资源的更新数据;第一处理器向第二处理器发送控制命令集,控制命令集用于指示述第二处理器根据bin文件和更新数据对待更新资源进行升级,如此,可实现双核处理器的资源升级,使得资源升级方法具有强复制性和强稳定性,同时能降低生产资源和成本。
请参阅图3A,图3A为本申请实施例提供的一种资源升级方法的流程示意图,应用于电子设备,所述电子设备包括第一处理器和第二处理器,所述第一处理器和所述第二处理器通过串行调试SWD通信接口连接,所述第二处理器包括存储器;所述方法包括:
301、第二处理器接收所述第一处理器发送的bin文件,并将所述bin文件存储至存储器中。
第一处理器通过串行调试SWD通信接口将bin文件发送到第二处理器,从而,第二处理器可将bin文件存储到存储器中。
其中,bin文件具有通用的4个框架接口:初始化接口、读命令接口、写命令接口和校验接口,第二处理器可通过bin文件进行资源更新。
可选地,上述步骤301中,所述将所述bin文件存储至所述存储器中,可包括以下步骤:
将所述bin文件存储至所述第二处理器的存储器中的第一地址,其中,所述bin文件的内存大小小于或等于从所述第一地址到所述存储器中第二地址之间的地址范围大小。
其中,第二处理器可将述bin文件存储至所述第二处理器的存储器中的第一地址,内存最大的bin文件可从第一地址存储至第二地址。
302、第二处理器接收所述第一处理器发送的待更新资源和所述待更新资源的更新数据,以及接收所述第一处理器发送的控制命令集。
其中,所述控制命令集包括初始化命令、写命令和校验命令。
其中,待更新资源可包括第二处理器中的内部闪存flash,还可包括与第二处理器连接的固件和非易失闪存norflash,固件例如为TP固件、GPS定位模块固件等。
可选地,上述步骤302中,所述接收所述第一处理器发送的待更新资源和所述待更新资源的更新数据,可包括以下步骤:
接收所述第一处理器发送的待更新资源、所述更新数据和写入所述待更新资源的地址,将所述待更新资源和所述更新数据写入所述存储器中第三地址到第四地址之间的缓存区,并将所述写入所述待更新资源的地址以及长度写入所述存储器中所述缓存区的第一预设地址;
所述接收所述第一处理器发送的控制命令集,可包括以下步骤:
接收所述第一处理器发送的携带目标类型的初始化命令;或者,
接收所述第一处理器发送的携带目标类型的初始化命令;或者,
接收所述第一处理器发送的校验命令,将所述校验命令存储至所述存储器中所述第三地址到所述第四地址之间的第二预设地址。
其中,第一处理器可向第二处理器发送初始化命令,初始化命令中携带目标类型,然后将第二处理器中处理器的第五地址的标识位状态设置为空闲状态,从而,可通过bin文件执行初始化命令。第二处理器在所述bin文件在所述存储器中运行后,轮询所述第五地址的标志位状态,若所述标志位状态为空闲状态,且在所述存储器中第三地址到第四地址之间查找到有效CMD,则将所述标志位状态设置为忙碌状态。第二处理器在在根据CMD确定初始化命令后,就会继续到所述存储器中第三地址到第四地址之间的第四预设地址查找目标类型。
其中,第一处理器向第二处理器发送写命令,具体可包括:第一处理器将待更新资源和更新数据写入所述存储器中第三地址到第四地址之间的缓存区的第一起始地址,并将所述写命令和写入所述待更新资源的地址以及长度写入存储器中所述缓存区的第一预设地址,并将所述第五地址的标志位状态设置为空闲状态。第二处理器在所述bin文件在所述存储器中运行后,轮询所述第五地址的标志位状态,若所述标志位状态为空闲状态,且在所述存储器中第三地址到第四地址之间查找到有效CMD,则将所述标志位状态设置为忙碌状态。第二处理器在在根据CMD确定初始化命令后,就会继续到所述RAM中第三地址到第四地址之间的第四预设地址查找目标类型。
其中,第一处理器向第二处理器发送校验命令,具体可包括:第一处理器将所述校验命令所述第二处理器的所述存储器中所述第三地址到所述第四地址之间的第二预设地址,并将所述标志位状态设置为空闲状态。第二处理器在所述bin文件在所述存储器中运行后,轮询所述第五地址的标志位状态,若所述标志位状态为空闲状态,且在所述存储器中第三地址到第四地址之间查找到有效CMD,则将所述标志位状态设置为忙碌状态。第二处理器在在根据CMD确定初始化命令后,就会继续到所述RAM中第三地址到第四地址之间的第四预设地址查找目标类型。
303、第二处理器根据所述控制命令集、所述更新数据和所述bin文件对所述待更新资源进行资源升级。
第二处理器可通过bin文件根据所述控制命令集、所述更新数据对待更新资源进行资源升级。
可选地,上述步骤303中,所述根据所述控制命令集、所述更新数据和所述bin文件对所述待更新资源进行资源升级,可包括以下步骤:
3031、在所述存储器中运行所述bin文件;
3032、根据所述初始化命令运行所述bin文件,进行初始化,并进入下载模式;
3033、在所述下载模式下,根据所述写命令运行所述bin文件,将所述更新数据写入所述存储器中,得到更新后的所述待更新资源;
3034、根据所述校验命令运行所述bin文件,对所述更新后的待更新资源进行校验。
其中,bin文件具有通用的4个框架接口:初始化接口、读命令接口、写命令接口和校验接口,从而,第二处理器可通过bin文件执行初始化命令、读命令、写命令和校验命令的操作。
可选地,上述步骤3032中,所述初始化命令携带所述待更新资源的目标类型,所述根据所述初始化命令进行初始化,并进入下载模式,包括:
A1、若所述目标类型为闪存,则执行擦除所述内部闪存的操作,其中,所述闪存包括以下至少一种:所述第二处理器的内部闪存或者与所述第二处理器连接的非易失闪存;
A2、若所述目标类型为固件,则对所述固件进行初始化,并进入下载模式;
上述步骤3033中,所述根据所述写命令将所述更新数据写入所述存储器中,包括:
A3、将所述第三地址到所述第四地址之间的缓冲区中第一预设长度的有效数据写入所述内部闪存中所述目标类型的第三预设地址;
所述校验命令携带一个参考循环冗余校验CRC值,上述步骤3034中,所述根据所述校验命令对所述更新后的待更新资源进行校验,包括:
A4、若所述目标类型为闪存,则计算所述闪存中更新后的数据的目标CRC值,将所述目标CRC值与所述参考CRC值进行对比,若所述目标CRC值与所述参考CRC值一致,确定所述内部闪存更新成功;
A5、若所述目标类型为固件,则读取所述固件的当前版本号,将所述当前版本号传输至所述第一处理器。
其中,若所述目标类型为内部闪存flash,第二处理器可对第二起始地址执行擦除第二预设长度操作。第二起始地址和第二预设长度是通过初始化命令写在存储器中第三地址到第四地址之间的第五预设地址中的。
若所述目标类型为非易失闪存norflash,第二处理器可对串行外围设备接口SPI进行初始化后,再对所述非易失闪存进行擦除操作。
其中,若目标类型为固件,则第二处理器可对所述固件进行初始化,并进入下载模式,具体地,若所述固件为触摸屏TP,则第二处理器可对IIC驱动初始化和对TP初始化,并进入下载模式;若固件为GPS定位模块,则第二处理器对UART初始化和对GPS定位模块初始化,并进入下载模式。
第二处理器通过存储器中的bin文件判断出存储器中第三地址和第四地址之间的缓冲区的第一预设地址处的命令为对内部闪存的写命令后,调用bin文件中的内部闪存写命令接口将第三地址和第四地址之间缓冲区的有效数据写入内部闪存的第三预设地址,其中,第三预设地址存储在缓冲区的第六预设地址上。
当针对固件的写命令完成之后,通过SWD通信接口发送校验命令给第二存储器中的bin文件,校验命令携带一个参考CRC值。第二处理器通过bin文件判断出第三地址和第四地址之间的缓冲区的数据特定地址处的命令为对内部闪存校验命令后,调用bin文件中的校验接口将内部闪存的数据读出后计算目标CRC值,并和第一处理器通过SWD通信接口发送的参考CRC值进行对比,判断是否相等,将判断结果返回给SWD通信接口,若目标CRC值与参考CRC值相等,SWD通信接口进行下一步操作,若目标CRC值与参考CRC值不相等,通过SWD通信接口重新执行写命令。
若目标类型为固件,第二处理器读取所述固件的当前版本号,将所述当前版本号传输至所述第一处理器。
若目标类型为内部闪存flash,或者非易失闪存norflash,第二处理器计算所述内部闪存更新后的更新数据的目标循环冗余校验值,将所述第一循环冗余与所述第一处理器发送的参考循环冗余校验值进行对比,若所述目标循环冗余校验值与所述参考循环冗余校验值一致,确定所述内部闪存或者非易失闪存norflash更新成功。
可选地,本申请实施例中,还可包括以下步骤:
当所述bin文件初始化完成后,将所述标志位状态设置为空闲状态;
在所述bin文件在所述存储器中运行后,轮询所述标志位状态,若所述标志位状态设置为空闲状态,且在所述存储器中第三地址到第四地址之间查找到有效命令提示符CMD,则将所述标志位状态设置为忙碌状态。
其中,通过设置标志位状态为空闲状态或者忙碌状态,可控制SWD通信接口或者bin文件对第二处理器的存储器或内部闪存进行操作。
可选地,本申请实施例中,还可包括以下步骤:
在执行所述初始化命令之后,将所述初始化命令的执行结果写入所述存储器中的第三地址到第四地址之间的第一目标地址,并将所述标志位状态设置为空闲状态;
在执行所述写命令之后,将所述写命令的执行结果写入所述存储器中的第三地址到第四地址之间的第二目标地址,并将所述标志位状态设置为空闲状态;
在执行所述校验命令之后,将所述校验命令的执行结果写入所述存储器中的第三地址到第四地址之间的第三目标地址,并将所述标志位状态设置为空闲状态。
其中,通过设置标志位状态为空闲状态或者忙碌状态,可控制SWD通信接口或者bin文件对第二处理器的存储器或内部闪存进行操作。
可以看出,本申请实施例中,通过第二处理器接收第一处理器发送的bin文件,并将bin文件存储至所述存储器中;第二处理器接收第一处理器发送的待更新资源和待更新资源的更新数据,以及接收述第一处理器发送的控制命令集;述第二处理器根据控制命令集、更新数据和bin文件对待更新资源进行资源升级,可实现双核处理器的资源升级,使得资源升级方法具有强复制性和强稳定性,同时能降低生产资源和成本。
请参阅图3B-3D,图3B-3D是本申请实施例提供的另一种资源升级方法的流程示意图,应用于如图1所示的电子设备,所述电子设备包括第一处理器和第二处理器,所述第一处理器和所述第二处理器通过串行调试SWD通信接口连接,所述第二处理器包括存储器;本资源升级方法包括:
第一处理器通过串行调试SWD通信接口对第二处理器进行线复位,将第二处理器的调试协议转换为SWD通信协议;所述第一处理器通过所述SWD通信接口停止所述第二处理器运行的目标进程;第一处理器通过SWD通信接口将bin文件下载到所述存储器中的第一地址;第一处理器通过SWD通信接口操作第二处理器的第一寄存器使bin文件在存储器中运行,当bin文件初始化完成后设置第五地址的标志位状态为空闲状态;第一处理器轮询检测到第二处理器中第五地址的标志位状态是否为空闲状态,若为空闲状态,将标志位状态设置为忙碌状态;所述第一处理器确定待更新资源,以及获取所述待更新资源的更新数据;所述第一处理器向所述第二处理器发送初始化命令,初始化命令中携带目标类型,将标志位状态设置为空闲状态。
第二处理器轮询所述处理器中第五地址的标志位状态是否为空闲状态,若所述标志位状态为空闲状态,且在所述存储器中第三地址到第四地址之间的第八预设地址查找到有效命令提示符CMD,则第二处理器将所述标志位状态设置为忙碌状态。第二处理器判断CMD为初始化命令后,到存储器中第三地址到第四地址之间的第四预设地址查找目标类型。若目标类型为内部闪存,则第二处理器对内部闪存的第二起始地址执行擦除第二预设长度操作;若目标类型为TP固件,则第二处理器对IIC驱动初始化和对TP初始化;若目标类型为GPS定位模块,则第二处理器对UART初始化和对GPS定位模块初始化;若目标类型为非易失闪存,则第二处理器对串行外围设备接口SPI驱动进行初始化,再对所述非易失闪存的第三起始地址进行擦除操作。在执行初始化命令之后,将初始化命令的执行结果返回,并将所述标志位状态设置为空闲状态。
第一处理器轮询检测到第二处理器中第五地址的标志位状态是否为空闲状态,若为空闲状态,将标志位状态设置为忙碌状态。第一处理器将待更新资源和更新数据写入存储器中第三地址到第四地址之间的缓存区,并将写命令、写入所述待更新资源的地址以及长度写入存储器中所述缓存区的第一预设地址;并将第五地址的标志位状态设置为空闲状态。
第二处理器轮询所述处理器中第五地址的标志位状态是否为空闲状态,若所述标志位状态为空闲状态,且在所述存储器中第三地址到第四地址之间的第七预设地址查找到有效命令提示符CMD,则第二处理器将所述标志位状态设置为忙碌状态。第二处理器判断CMD为写命令后,到存储器中第三地址到第四地址之间的第四预设地址查找目标类型。若目标类型为内部闪存,则第二处理器将第三地址到第四地址之间的缓冲区的有效数据写到内部闪存的第三预设地址;若目标类型为TP固件,则第二处理器将第三地址到第四地址之间的缓冲区的有效数据写到TP固件中;若目标类型为GPS定位模块,则第二处理器将第三地址到第四地址之间的缓冲区的有效数据写到GPS定位模块中;若目标类型为非易失闪存,则第二处理器将第三地址到第四地址之间的缓冲区的有效数据写到非易失闪存的第九预设地址中。在执行写命令之后,将写命令的执行结果返回,并将所述标志位状态设置为空闲状态。
第一处理器轮询检测到第二处理器中第五地址的标志位状态是否为空闲状态,若为空闲状态,将标志位状态设置为忙碌状态。第一处理器将所述校验命令写入所述存储器中所述第三地址到所述第四地址之间的第二预设地址;并将第五地址的标志位状态设置为空闲状态。
第二处理器轮询所述处理器中第五地址的标志位状态是否为空闲状态,若所述标志位状态为空闲状态,且在所述存储器中第三地址到第四地址之间的第七预设地址查找到有效命令提示符CMD,则第二处理器将所述标志位状态设置为忙碌状态。第二处理器判断CMD为校验命令后,到存储器中第三地址到第四地址之间的第四预设地址查找目标类型。若目标类型为内部闪存,则第二处理器读取内部闪存的数据,并根据内部闪存的数据计算更新后的数据的第一目标CRC值,将第一目标CRC值与参考CRC值进行对比,若第一目标CRC值与所述参考CRC值一致,确定所述内部闪存更新成功;若目标类型为TP固件,则第二处理器读取TP固件的第一当前版本号,并将第一当前版本号传输至第一处理器;若目标类型为GPS定位模块,则第二处理器读取GPS定位模块的第二当前版本号,并将第二当前版本号传输至第一处理器;若目标类型为非易失闪存,则第二处理器读取非易失闪存的数据,并根据非易失闪存的数据计算更新后的数据的第二目标CRC值,将第二目标CRC值与所述参考CRC值进行对比,若第二目标CRC值与参考CRC值一致,确定非易失闪存更新成功。在执行校验命令之后,将校验命令的执行结果返回,并将所述标志位状态设置为空闲状态。
与上述图2A、图3A和图3B所示的实施例一致的,请参阅图4,图4是本申请实施例提供了另一种电子设备的结构示意图,所述电子设备包括第一处理器、第二处理器、存储器、通信接口,以及一个或多个程序,所述处理器包括处理器,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,上述程序包括用于执行以下步骤的指令:
通过串行调试SWD通信接口将bin文件下载到所述存储器中;
确定待更新资源,以及获取所述待更新资源的更新数据;
向所述第二处理器发送所述待更新资源和所述更新数据,以及向所述第二处理器发送控制命令集,所述控制命令集用于指示所述第二处理器根据所述bin文件和所述更新数据对所述待更新资源进行升级。
在一个可能的示例中,在所述通过串行调试SWD通信接口将bin文件下载到所述存储器中之前,上述程序还包括用于执行以下步骤的指令:
通过所述SWD通信接口对所述第二处理器进行线复位,将所述第二处理器的调试协议转换为所述SWD通信协议;
通过所述SWD通信接口停止所述第二处理器运行的目标进程。
在一个可能的示例中,在所述通过串行调试SWD通信接口将bin文件下载到所述存储器中方面,上述程序包括具体用于执行以下步骤的指令:
所述第一处理器通过所述SWD通信接口将所述bin文件下载到所述第二处理器的存储器中的第一地址,其中,所述bin文件的内存大小小于或等于从所述第一地址到所述存储器中第二地址之间的地址范围大小。
在一个可能的示例中,所述控制命令集包括初始化命令、写命令和校验命令,所述初始化命令用于指示所述第二处理器运行所述bin文件,进行初始化,并进入下载模式;所述写命令用于指示所述第二处理器在所述下载模式下,运行所述bin文件,将所述待更新资源的更新数据写入所述存储器中;所述校验命令用于指示所述第二处理器运行所述bin文件,对所述更新数据进行校验。
在一个可能的示例中,在所述第一处理器通过串行调试SWD通信接口将bin文件下载到所述存储器中之后,所述确定待更新资源之前,上述程序还包括用于执行以下步骤的指令:
通过所述SWD通信接口控制所述bin文件在所述存储器中运行,并将所述标志位状态设置为空闲状态;
所述bin文件在所述存储器中运行的过程中,检测所述标志位状态,根据所述标志位状态确定所述bin文件是否运行结束;
在检测到所述标志位状态为空闲状态后,将所述标志位状态设置为忙碌状态。
在一个可能的示例中,在所述第一处理器向所述第二处理器发送所述待更新资源和所述更新数据方面,上述程序包括用于执行以下步骤的指令:
将所述待更新资源和所述更新数据写入所述存储器中第三地址到第四地址之间的缓存区,并将写入所述待更新资源的地址以及长度写入所述存储器中所述缓存区的第一预设地址;
在所述第一处理器向所述第二处理器发送所述控制命令集方面,上述程序包括用于执行以下步骤的指令:
将所述初始化命令发送至所述第二处理器,并指示所述第二处理器将所述存储器中第五地址的标志位状态设置为空闲状态;或者,
将所述写命令写入所述存储器中所述第一预设地址,并指示所述第二处理器将所述第五地址的标志位状态设置为空闲状态;或者,
将所述校验命令所述第二处理器的所述存储器中所述第三地址到所述第四地址之间的第二预设地址,并指示所述第二处理器将所述标志位状态设置为空闲状态。
在一个可能的示例中,所述初始化命令携带所述待更新资源的目标类型,若所述目标类型为固件,则所述初始化命令具体用于指示所述第二处理器对所述固件进行初始化,并进入下载模式;所述校验命令具体用于指示所述第二处理器读取所述固件的当前版本号,将所述当前版本号传输至所述第一处理器;
所述校验命令携带一个参考循环冗余校验CRC值,若所述目标类型为闪存,则所述初始化命令具体用于指示所述第二处理器执行擦除所述闪存的操作;所述校验命令具体用于指示所述第二处理器计算所述闪存更新后的更新数据的目标循环冗余校验值,将所述目标CRC值与所述参考CRC值进行对比,若所述目标CRC值与所述参考CRC值一致,确定所述闪存更新成功,其中,所述闪存包括以下至少一种:所述第二处理器的内部闪存或者与所述第二处理器连接的非易失闪存;
所述写命令具体用于指示所述第二处理器将所述第三地址到所述第四地址之间的缓冲区中第一预设长度的有效数据写入所述闪存或所述固件中。
在一个可能的示例中,在所述初始化命令或所述写命令或所述校验命令执行完成之后,上述程序还包括用于执行以下步骤的指令:
在所述第一处理器检测到所述标志位状态设置为空闲状态后,读取所述存储器中所述第三地址到所述第四地址之间的结果返回地址,根据所述结果返回地址判断是否继续执行所述控制命令集中的指令或者重新执行所述控制命令集中的指令,并将所述标志位状态设置为忙碌状态。
在另一个实施例中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,上述程序包括用于执行以下步骤的指令:
接收所述第一处理器发送的bin文件,并将所述bin文件存储至所述存储器中;
接收所述第一处理器发送的待更新资源和所述待更新资源的更新数据,以及接收所述第一处理器发送的控制命令集;
根据所述控制命令集、所述更新数据和所述bin文件对所述待更新资源进行资源升级。
在一个可能的示例中,在所述将所述bin文件存储至所述存储器中方面,上述程序包括具体用于执行以下步骤的指令:将所述bin文件存储至所述第二处理器的存储器中的第一地址,其中,所述bin文件的内存大小小于或等于从所述第一地址到所述存储器中第二地址之间的地址范围大小。
在一个可能的示例中,在所述接收所述第一处理器发送的待更新资源和所述待更新资源的更新数据方面,上述程序包括具体用于执行以下步骤的指令:
接收所述第一处理器发送的待更新资源、所述更新数据和写入所述待更新资源的地址,将所述待更新资源和所述更新数据写入所述存储器中第三地址到第四地址之间的缓存区,并将所述写入所述待更新资源的地址以及长度写入所述缓存区的第一预设地址;
所述接收所述第一处理器发送的控制命令集,上述程序包括具体用于执行以下步骤的指令:
接收所述第一处理器发送的初始化命令;或者,
接收所述第一处理器发送的写命令,将所述写命令写入所述第一预设地址;或者,
接收所述第一处理器发送的校验命令,将所述校验命令存储至所述存储器中所述第三地址到所述第四地址之间的第二预设地址。
在一个可能的示例中,在所述根据所述控制命令集、所述更新数据和所述bin文件对所述待更新资源进行资源升级方面,上述程序包括具体用于执行以下步骤的指令:
在所述存储器中运行所述bin文件;
根据所述初始化命令进行初始化,并进入下载模式;
在所述下载模式下,根据所述写命令将所述更新数据写入所述存储器中,得到更新后的所述待更新资源;
根据所述校验命令对所述更新后的待更新资源进行校验。
在一个可能的示例中,上述程序还包括用于执行以下步骤的指令:
当所述bin文件初始化完成后,将所述标志位状态设置为空闲状态;
在所述bin文件在所述存储器中运行后,轮询所述标志位状态,若所述标志位状态设置为空闲状态,且在所述存储器中第三地址到第四地址之间查找到有效命令提示符CMD,则将所述标志位状态设置为忙碌状态。
在一个可能的示例中,所述初始化命令携带所述待更新资源的目标类型,在所述根据所述初始化命令进行初始化,并进入下载模式方面,上述程序具体包括用于执行以下步骤的指令:
若所述目标类型为闪存,则执行擦除所述内部闪存的操作,其中,所述闪存包括以下至少一种:所述第二处理器的内部闪存或者与所述第二处理器连接的非易失闪存;
若所述目标类型为固件,则对所述固件进行初始化,并进入下载模式;
在所述根据所述写命令将所述更新数据写入所述存储器中方面,上述程序具体包括用于执行以下步骤的指令:
将所述第三地址到所述第四地址之间的缓冲区中第一预设长度的有效数据写入所述内部闪存中所述目标类型的第三预设地址;
所述校验命令携带一个参考循环冗余校验CRC值,在所述根据所述校验命令对所述更新后的待更新资源进行校验方面,上述程序具体包括用于执行以下步骤的指令:
若所述目标类型为闪存,则计算所述闪存中更新后的数据的目标CRC值,将所述目标CRC值与所述参考CRC值进行对比,若所述目标CRC值与所述参考CRC值一致,确定所述内部闪存更新成功;
若所述目标类型为固件,则读取所述固件的当前版本号,将所述当前版本号与所述固件更新前的历史版本号进行比对,若所述当前版本号大于所述历史版本号,确定所述固件更新成功。
在一个可能的示例中,上述程序还包括用于执行以下步骤的指令:
在执行所述初始化命令之后,将所述初始化命令的执行结果写入所述存储器中的第三地址到第四地址之间的第一目标地址,并将所述标志位状态设置为空闲状态;
在执行所述写命令之后,将所述写命令的执行结果写入所述存储器中的第三地址到第四地址之间的第二目标地址,并将所述标志位状态设置为空闲状态;
在执行所述校验命令之后,将所述校验命令的执行结果写入所述存储器中的第三地址到第四地址之间的第三目标地址,并将所述标志位状态设置为空闲状态。
需要说明的是,本实施例的具体实现过程可参见上述方法实施例所述的具体实现过程,在此不再详述。
本申请实施例可以根据所述方法示例对电子设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。所述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
下面为本申请装置实施例,本申请装置实施例用于执行本申请方法实施例所实现的方法。请参阅图5,图5是本申请实施例提供的一种资源升级装置,所述电子设备包括第一处理单元和第二处理单元,所述第一处理单元和所述第二处理单元通过串行调试SWD通信接口连接,所述第二处理单元包括存储器;所述装置包括第一处理单元501和第二处理单元502,其中,
第一处理单元501,用于通过串行调试SWD通信接口将bin文件下载到所述第二处理单元对应的存储器中;
所述第一处理单元501,还用于确定待更新资源,以及获取所述待更新资源的更新数据;以及,
向所述第二处理单元502发送所述待更新资源和所述更新数据,以及向所述第二处理单元发送控制命令集,所述控制命令集用于指示所述第二处理单元根据所述bin文件和所述更新数据对所述待更新资源进行升级。
可选地,在所述通过串行调试SWD通信接口将bin文件下载到所述存储器中方面,所述第一处理单元501具体用于:
通过所述SWD通信接口将所述bin文件下载到所述第二处理单元的存储器中的第一地址,其中,所述bin文件的内存大小小于或等于从所述第一地址到所述存储器中第二地址之间的地址范围大小。
可选地,所述控制命令集包括初始化命令、写命令和校验命令,所述初始化命令用于指示所述第二处理单元运行所述bin文件,进行初始化,并进入下载模式;所述写命令用于指示所述第二处理单元在所述下载模式下,运行所述bin文件,将所述待更新资源的更新数据写入所述存储器中;所述校验命令用于指示所述第二处理单元运行所述bin文件,对所述更新数据进行校验。
可选地,在向所述第二处理单元发送所述待更新资源和所述更新数据方面;所述第一处理单元501具体用于:
将所述待更新资源和所述更新数据写入所述存储器中第三地址到第四地址之间的缓存区,并将写入所述待更新资源的地址以及长度写入所述存储器中所述缓存区的第一预设地址;
在所述第一处理单元向所述第二处理单元发送所述控制命令集方面,所述第一处理单元501具体用于:
将所述初始化命令发送至所述第二处理单元,并指示所述第二处理单元将所述存储器中第五地址的标志位状态设置为空闲状态;或者,
将所述写命令写入所述存储器中所述第一预设地址,并指示所述第二处理单元将所述第五地址的标志位状态设置为空闲状态;或者,
将所述校验命令所述第二处理单元的所述存储器中所述第三地址到所述第四地址之间的第二预设地址,并指示所述第二处理单元将所述标志位状态设置为空闲状态。
可选地,所述初始化命令携带所述待更新资源的目标类型,若所述目标类型为固件,则所述初始化命令具体用于指示所述第二处理单元对所述固件进行初始化,并进入下载模式;所述校验命令具体用于指示所述第二处理单元读取所述固件的当前版本号,将所述当前版本号传输至所述第一处理单元;
所述校验命令携带一个参考循环冗余校验CRC值,若所述目标类型为闪存,则所述初始化命令具体用于指示所述第二处理单元执行擦除所述闪存的操作;所述校验命令具体用于指示所述第二处理单元计算所述闪存更新后的更新数据的目标循环冗余校验值,将所述目标CRC值与所述参考CRC值进行对比,若所述目标CRC值与所述参考CRC值一致,确定所述闪存更新成功,其中,所述闪存包括以下至少一种:所述第二处理单元的内部闪存或者与所述第二处理单元连接的非易失闪存;
所述写命令具体用于指示所述第二处理单元将所述第三地址到所述第四地址之间的缓冲区中第一预设长度的有效数据写入所述闪存或所述固件中。
可选地,在所述初始化命令或所述写命令或所述校验命令执行完成之后,所述第一处理单元501,还用于:在所述第一处理单元检测到所述标志位状态设置为空闲状态后,读取所述存储器中所述第三地址到所述第四地址之间的结果返回地址,根据所述结果返回地址判断是否继续执行所述控制命令集中的指令或者重新执行所述控制命令集中的指令,并将所述标志位状态设置为忙碌状态。
可选地,在所述第一处理单元通过串行调试SWD通信接口将bin文件下载到所述存储器中之前,所述第一处理单元501还用于:
通过所述SWD通信接口对所述第二处理单元进行线复位,将所述第二处理单元的调试协议转换为SWD通信协议;
所述第一处理单元通过所述SWD通信接口停止所述第二处理单元运行的目标进程。
可选地,在所述通过串行调试SWD通信接口将bin文件下载到所述存储器中之后,所述确定待更新资源之前,所述第一处理单元501还用于:
通过所述SWD通信接口控制所述bin文件在所述存储器中运行,并将所述标志位状态设置为空闲状态;
所述bin文件在所述存储器中运行的过程中,所述第一处理单元检测所述标志位状态,根据所述标志位状态确定所述bin文件是否运行结束;
在所述第一处理单元检测到所述标志位状态为空闲状态后,将所述标志位状态设置为忙碌状态。
请参阅图6,图6是本申请实施例提供的一种资源升级装置,所述电子设备包括第一处理单元和第二处理单元,所述第一处理单元和所述第二处理单元通过串行调试SWD通信接口连接,所述第二处理单元包括存储器;所述装置包括第一处理单元601和第二处理单元602,其中,
第二处理单元602,用于接收所述第一处理单元601发送的bin文件,并将所述bin文件存储至所述存储器中;
所述第二处理单元602,还用于接收所述第一处理单元发送的待更新资源和所述待更新资源的更新数据,以及接收所述第一处理单元发送的控制命令集;以及,
根据所述控制命令集、所述更新数据和所述bin文件对所述待更新资源进行资源升级。
可选地,在所述将所述bin文件存储至所述存储器中方面,所述第二处理器602具体用于:
将所述bin文件存储至所述第二处理器的存储器中的第一地址,其中,所述bin文件的内存大小小于或等于从所述第一地址到所述存储器中第二地址之间的地址范围大小。
可选地,在所述接收所述第一处理器发送的待更新资源和所述待更新资源的更新数据方面,所述第二处理器602具体用于:
接收所述第一处理器发送的待更新资源、所述更新数据和写入所述待更新资源的地址,将所述待更新资源和所述更新数据写入所述存储器中第三地址到第四地址之间的缓存区,并将所述写入所述待更新资源的地址以及长度写入所述缓存区的第一预设地址;
在所述接收所述第一处理器发送的控制命令集方面,所述第二处理器602具体用于:
接收所述第一处理器发送的初始化命令;或者,
接收所述第一处理器发送的写命令,将所述写命令写入所述第一预设地址;或者,
接收所述第一处理器发送的校验命令,将所述校验命令存储至所述存储器中所述第三地址到所述第四地址之间的第二预设地址。
可选地,在所述根据所述控制命令集、所述更新数据和所述bin文件对所述待更新资源进行资源升级方面,所述第二处理器602具体用于:
根据所述初始化命令运行所述bin文件,进行初始化,并进入下载模式;
在所述下载模式下,根据所述写命令运行所述bin文件,将所述更新数据写入所述存储器中,得到更新后的所述待更新资源;
根据所述校验命令运行所述bin文件,对所述更新后的待更新资源进行校验。
可选地,所述第二处理器602还用于:
在所述bin文件在所述存储器中运行后,轮询所述标志位状态,若所述标志位状态设置为空闲状态,且在所述存储器中第三地址到第四地址之间查找到有效命令提示符CMD,则将所述标志位状态设置为忙碌状态。
可选地,所述初始化命令携带所述待更新资源的目标类型,在所述根据所述初始化命令进行初始化,并进入下载模式方面,所述第二处理器602具体用于:
若所述目标类型为闪存,则执行擦除所述内部闪存的操作,其中,所述闪存包括以下至少一种:所述第二处理器的内部闪存或者与所述第二处理器连接的非易失闪存;
若所述目标类型为固件,则对所述固件进行初始化,并进入下载模式;
在所述根据所述写命令将所述更新数据写入所述存储器中方面,所述第二处理器602具体用于:
将所述第三地址到所述第四地址之间的缓冲区中第一预设长度的有效数据写入所述内部闪存中所述目标类型的第三预设地址;
所述校验命令携带一个参考循环冗余校验CRC值,在所述根据所述校验命令对所述更新后的待更新资源进行校验方面,所述第二处理器602具体用于:
若所述目标类型为闪存,则计算所述闪存中更新后的数据的目标CRC值,将所述目标CRC值与所述参考CRC值进行对比,若所述目标CRC值与所述参考CRC值一致,确定所述内部闪存更新成功;
若所述目标类型为固件,则读取所述固件的当前版本号,将所述当前版本号传输至所述第一处理器。
可选地,所述第二处理器602还用于:
在执行所述初始化命令之后,将所述初始化命令的执行结果写入所述存储器中的第三地址到第四地址之间的第一目标地址,并将所述标志位状态设置为空闲状态;
在执行所述写命令之后,将所述写命令的执行结果写入所述存储器中的第三地址到第四地址之间的第二目标地址,并将所述标志位状态设置为空闲状态;
在执行所述校验命令之后,将所述校验命令的执行结果写入所述存储器中的第三地址到第四地址之间的第三目标地址,并将所述标志位状态设置为空闲状态。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:内部闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (18)
1.一种资源升级方法,其特征在于,应用于电子设备,所述电子设备包括第一处理器和第二处理器,所述第一处理器和所述第二处理器通过串行调试SWD通信接口连接,所述第二处理器包括存储器,所述方法包括:
所述第一处理器通过串行调试SWD通信接口将bin文件下载到所述存储器中;
所述第一处理器确定待更新资源,以及获取所述待更新资源的更新数据;
所述第一处理器向所述第二处理器发送所述待更新资源和所述更新数据,以及向所述第二处理器发送控制命令集,所述控制命令集用于指示所述第二处理器根据所述bin文件和所述更新数据对所述待更新资源进行升级,所述控制命令集包括初始化命令、写命令和校验命令,所述初始化命令用于指示所述第二处理器运行所述bin文件,进行初始化,并进入下载模式,所述写命令用于指示所述第二处理器在所述下载模式下,运行所述bin文件,将所述待更新资源的更新数据写入所述存储器中,所述校验命令用于指示所述第二处理器运行所述bin文件,对所述更新数据进行校验。
2.根据权利要求1所述方法,其特征在于,所述第一处理器通过串行调试SWD通信接口将bin文件下载到所述存储器中,包括:
所述第一处理器通过所述SWD通信接口将所述bin文件下载到所述第二处理器的存储器中的第一地址,其中,所述bin文件的内存大小小于或等于从所述第一地址到所述存储器中第二地址之间的地址范围大小。
3.根据权利要求1所述方法,其特征在于,所述第一处理器向所述第二处理器发送所述待更新资源和所述更新数据,包括:
所述第一处理器将所述待更新资源和所述更新数据写入所述存储器中第三地址到第四地址之间的缓存区,并将写入所述待更新资源的地址以及长度写入所述存储器中所述缓存区的第一预设地址;
所述第一处理器向所述第二处理器发送所述控制命令集,包括:
所述第一处理器将所述初始化命令发送至所述第二处理器,并将所述存储器中第五地址的标志位状态设置为空闲状态;或者,
所述第一处理器将所述写命令写入所述存储器中所述第一预设地址,并将所述第五地址的标志位状态设置为空闲状态;或者,
所述第一处理器将所述校验命令写入所述存储器中所述第三地址到所述第四地址之间的第二预设地址,并将所述第五地址的标志位状态设置为空闲状态。
4.根据权利要求3所述方法,其特征在于,所述初始化命令携带所述待更新资源的目标类型,若所述目标类型为固件,则所述初始化命令具体用于指示所述第二处理器对所述固件进行初始化,并进入下载模式;所述校验命令具体用于指示所述第二处理器读取所述固件的当前版本号,将所述当前版本号传输至所述第一处理器;
所述校验命令携带一个参考循环冗余校验CRC值,若所述目标类型为闪存,则所述初始化命令具体用于指示所述第二处理器执行擦除所述闪存的操作;所述校验命令具体用于指示所述第二处理器计算所述闪存更新后的更新数据的目标循环冗余校验值,将所述目标CRC值与所述参考CRC值进行对比,若所述目标CRC值与所述参考CRC值一致,确定所述闪存更新成功,其中,所述闪存包括以下至少一种:所述第二处理器的内部闪存或者与所述第二处理器连接的非易失闪存;
所述写命令具体用于指示所述第二处理器将所述第三地址到所述第四地址之间的缓冲区中第一预设长度的有效数据写入所述闪存或所述固件中。
5.根据权利要求4所述方法,其特征在于,在所述初始化命令或所述写命令或所述校验命令执行完成之后,所述方法还包括:
在所述第一处理器检测到所述标志位状态设置为空闲状态后,读取所述存储器中所述第三地址到所述第四地址之间的结果返回地址,根据所述结果返回地址判断是否继续执行所述控制命令集中的指令或者重新执行所述控制命令集中的指令,并将所述标志位状态设置为忙碌状态。
6.根据权利要求5所述方法,其特征在于,在所述第一处理器通过串行调试SWD通信接口将bin文件下载到所述存储器中之前,所述方法还包括:
所述第一处理器通过所述SWD通信接口对所述第二处理器进行线复位,将所述第二处理器的调试协议转换为SWD通信协议;
所述第一处理器通过所述SWD通信接口停止所述第二处理器运行的目标进程。
7.根据权利要求6所述方法,其特征在于,在所述通过串行调试SWD通信接口将bin文件下载到所述存储器中之后,所述确定待更新资源之前,所述方法还包括:
所述第一处理器通过所述SWD通信接口控制所述bin文件在所述存储器中运行,并将所述标志位状态设置为空闲状态;
所述bin文件在所述存储器中运行的过程中,所述第一处理器检测所述标志位状态,根据所述标志位状态确定所述bin文件是否运行结束;
在所述第一处理器检测到所述标志位状态为空闲状态后,将所述标志位状态设置为忙碌状态。
8.一种资源升级方法,其特征在于,应用于电子设备,所述电子设备包括第一处理器和第二处理器,所述第一处理器和所述第二处理器通过串行调试SWD通信接口连接,所述第二处理器包括存储器,所述方法包括:
所述第二处理器接收所述第一处理器发送的bin文件,并将所述bin文件存储至所述存储器中;
所述第二处理器接收所述第一处理器发送的待更新资源和所述待更新资源的更新数据,以及接收所述第一处理器发送的控制命令集;其中,所述控制命令集包括初始化命令、写命令和校验命令;
所述第二处理器根据所述控制命令集、所述更新数据和所述bin文件对所述待更新资源进行资源升级,包括:根据所述初始化命令运行所述bin文件,进行初始化,并进入下载模式,在所述下载模式下,根据所述写命令运行所述bin文件,将所述更新数据写入所述存储器中,得到更新后的所述待更新资源,根据所述校验命令运行所述bin文件,对所述更新后的待更新资源进行校验。
9.根据权利要求8所述方法,其特征在于,所述将所述bin文件存储至所述存储器中,包括:
将所述bin文件存储至所述第二处理器的存储器中的第一地址,其中,所述bin文件的内存大小小于或等于从所述第一地址到所述存储器中第二地址之间的地址范围大小。
10.根据权利要求9所述方法,其特征在于,所述接收所述第一处理器发送的待更新资源和所述待更新资源的更新数据,包括:
接收所述第一处理器发送的待更新资源、所述更新数据和写入所述待更新资源的地址,将所述待更新资源和所述更新数据写入所述存储器中第三地址到第四地址之间的缓存区,并将所述写入所述待更新资源的地址以及长度写入所述缓存区的第一预设地址;
所述接收所述第一处理器发送的控制命令集,包括:
接收所述第一处理器发送的初始化命令;或者,
接收所述第一处理器发送的写命令,将所述写命令写入第一预设地址;或者,
接收所述第一处理器发送的校验命令,将所述校验命令存储至所述存储器中第三地址到第四地址之间的第二预设地址。
11.根据权利要求10所述方法,其特征在于,所述方法还包括:
在所述bin文件在所述存储器中运行后,轮询所述存储器中第五地址的标志位状态,若所述标志位状态设置为空闲状态,且在所述存储器中第三地址到第四地址之间查找到有效命令提示符CMD,则将所述标志位状态设置为忙碌状态。
12.根据权利要求11所述方法,其特征在于,所述初始化命令携带所述待更新资源的目标类型,所述根据所述初始化命令进行初始化,并进入下载模式,包括:
若所述目标类型为闪存,则执行擦除所述闪存的操作,其中,所述闪存包括以下至少一种:所述第二处理器的内部闪存或者与所述第二处理器连接的非易失闪存;
若所述目标类型为固件,则对所述固件进行初始化,并进入下载模式;
所述根据所述写命令将所述更新数据写入所述存储器中,包括:
将所述第三地址到所述第四地址之间的缓冲区中第一预设长度的有效数据写入所述目标类型的第三预设地址;
所述校验命令携带一个参考循环冗余校验CRC值,所述根据所述校验命令对所述更新后的待更新资源进行校验,包括:
若所述目标类型为闪存,则计算所述闪存中更新后的数据的目标CRC值,将所述目标CRC值与所述参考CRC值进行对比,若所述目标CRC值与所述参考CRC值一致,确定所述闪存更新成功;
若所述目标类型为固件,则读取所述固件的当前版本号,将所述当前版本号传输至所述第一处理器。
13.根据权利要求12所述方法,其特征在于,所述方法还包括:
在执行所述初始化命令之后,将所述初始化命令的执行结果写入所述存储器中的第三地址到第四地址之间的第一目标地址,并将所述标志位状态设置为空闲状态;
在执行所述写命令之后,将所述写命令的执行结果写入所述存储器中的第三地址到第四地址之间的第二目标地址,并将所述标志位状态设置为空闲状态;
在执行所述校验命令之后,将所述校验命令的执行结果写入所述存储器中的第三地址到第四地址之间的第三目标地址,并将所述标志位状态设置为空闲状态。
14.一种资源升级装置,其特征在于,应用于电子设备,所述电子设备包括第一处理单元和第二处理单元,所述第一处理单元和所述第二处理单元通过串行调试SWD通信接口连接,所述第二处理单元包括存储单元,其中,
所述第一处理单元,用于通过串行调试SWD通信接口将bin文件下载到所述第二处理单元对应的存储器中;
所述第一处理单元,还用于确定待更新资源,以及获取所述待更新资源的更新数据;以及,
向所述第二处理单元发送所述待更新资源和所述更新数据,以及向所述第二处理单元发送控制命令集,所述控制命令集用于指示所述第二处理单元根据所述bin文件和所述更新数据对所述待更新资源进行升级,所述控制命令集包括初始化命令、写命令和校验命令,所述初始化命令用于指示所述第二处理单元运行所述bin文件,进行初始化,并进入下载模式,所述写命令用于指示所述第二处理单元在所述下载模式下,运行所述bin文件,将所述待更新资源的更新数据写入所述存储器中,所述校验命令用于指示所述第二处理单元运行所述bin文件,对所述更新数据进行校验。
15.一种资源升级装置,其特征在于,应用于电子设备,所述电子设备包括第一处理单元和第二处理单元,所述第一处理单元和所述第二处理单元通过串行调试SWD通信接口连接,所述第二处理单元包括存储器,其中,
所述第二处理单元,用于接收所述第一处理单元发送的bin文件,并将所述bin文件存储至所述存储器中;
所述第二处理单元,还用于接收所述第一处理单元发送的待更新资源和所述待更新资源的更新数据,以及接收所述第一处理单元发送的控制命令集,所述控制命令集包括初始化命令、写命令和校验命令;以及,
根据所述控制命令集、所述更新数据和所述bin文件对所述待更新资源进行资源升级;
在根据所述控制命令集、所述更新数据和所述bin文件对所述待更新资源进行资源升级方面,所述第二处理单元具体用于根据所述初始化命令运行所述bin文件,进行初始化,并进入下载模式,在所述下载模式下,根据所述写命令运行所述bin文件,将所述更新数据写入所述存储器中,得到更新后的所述待更新资源,根据所述校验命令运行所述bin文件,对所述更新后的待更新资源进行校验。
16.一种电子设备,其特征在于,所述电子设备包括第一处理器和第二处理器,所述第一处理器与所述第二处理器通过串行调试SWD通信接口连接,所述第二处理器包括存储器,其中,
所述第一处理器,用于通过串行调试SWD通信接口将bin文件下载到所述存储器中;
所述第一处理器还用于确定待更新资源,以及获取所述待更新资源的更新数据;向所述第二处理器发送所述待更新资源、所述更新数据,以及向所述第二处理器发送控制命令集,所述控制命令集包括初始化命令、写命令和校验命令,所述初始化命令用于指示所述第二处理器运行所述bin文件,进行初始化,并进入下载模式,所述写命令用于指示所述第二处理器在所述下载模式下,运行所述bin文件,将所述待更新资源的更新数据写入所述存储器中,所述校验命令用于指示所述第二处理器运行所述bin文件,对所述更新数据进行校验;
所述第二处理器用于根据所述控制命令集、所述更新数据和所述bin文件对所述待更新资源进行资源升级。
17.一种电子设备,其特征在于,包括第一处理器、第二处理器、存储器、串行调试SWD通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述第一处理器或所述第二处理器执行,所述程序包括用于执行如权利要求1-7任一项或8-13任一项所述的方法中的步骤的指令。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器执行,以实现如权利要求1-7任一项或8-13任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010153555.5A CN113360161B (zh) | 2020-03-06 | 2020-03-06 | 资源升级方法及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010153555.5A CN113360161B (zh) | 2020-03-06 | 2020-03-06 | 资源升级方法及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113360161A CN113360161A (zh) | 2021-09-07 |
CN113360161B true CN113360161B (zh) | 2024-08-09 |
Family
ID=77524326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010153555.5A Active CN113360161B (zh) | 2020-03-06 | 2020-03-06 | 资源升级方法及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113360161B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116935939A (zh) * | 2023-09-15 | 2023-10-24 | 合肥康芯威存储技术有限公司 | 一种基于开发板的存储器验证方法、装置及介质 |
CN117615367B (zh) * | 2024-01-18 | 2024-04-09 | 深圳飞思通科技有限公司 | 一种固件程序更新方法、装置及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528213A (zh) * | 2016-10-31 | 2017-03-22 | 中冶华天南京工程技术有限公司 | 嵌入式终端设备固件升级方法及系统 |
CN109189429A (zh) * | 2018-09-11 | 2019-01-11 | 武汉正维电子技术有限公司 | 双核处理器amp模式下cpu0更新cpu1程序的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108139899B (zh) * | 2015-09-24 | 2021-04-23 | Oppo广东移动通信有限公司 | 终端设备和控制充电的方法 |
CN105577450A (zh) * | 2016-01-27 | 2016-05-11 | 努比亚技术有限公司 | 系统升级装置和方法 |
JP7267692B2 (ja) * | 2018-07-31 | 2023-05-02 | キヤノン株式会社 | ファームウェアを更新する画像形成装置 |
-
2020
- 2020-03-06 CN CN202010153555.5A patent/CN113360161B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528213A (zh) * | 2016-10-31 | 2017-03-22 | 中冶华天南京工程技术有限公司 | 嵌入式终端设备固件升级方法及系统 |
CN109189429A (zh) * | 2018-09-11 | 2019-01-11 | 武汉正维电子技术有限公司 | 双核处理器amp模式下cpu0更新cpu1程序的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113360161A (zh) | 2021-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110134415A (zh) | 一种控制器及其软件升级方法和装置 | |
CN103942061A (zh) | 电池固件更新方法、便携式电子装置及充电电池模块 | |
WO2019140656A1 (zh) | 一种固件升级方法、装置、电子设备及控制设备 | |
CN106547574A (zh) | 一种dsp程序和fpga程序的外部下载系统及方法 | |
US7822964B2 (en) | Booting apparatus for booting a computer and method therefor and computer with a booting apparatus | |
CN101930372A (zh) | 程序更新系统及方法 | |
CN113360161B (zh) | 资源升级方法及相关产品 | |
CN111813428A (zh) | 终端固件的升级方法、装置、电子设备及存储介质 | |
CN103761129B (zh) | 一种在Bootloader层实现SDIO接口驱动的方法 | |
CN103593281A (zh) | 测试系统及测试方法 | |
CN114860279B (zh) | 一种快速空片升级方法 | |
CN101169729A (zh) | 嵌入式系统及其更新应用程序的方法 | |
CN111930395B (zh) | 智能终端的程序下载方法和智能终端 | |
CN113608772A (zh) | 一种应用程序升级方法及装置 | |
CN105045671A (zh) | 一种智能终端的系统升级方法及装置 | |
CN113360440A (zh) | 处理器通信控制方法及相关产品 | |
CN114138295A (zh) | 一种电子设备的应用程序固件升级方法、装置及系统 | |
CN111857785B (zh) | 一种mcu的启动方法、装置及终端设备 | |
CN111128139B (zh) | 无侵入式语音测试方法及装置 | |
CN107332589A (zh) | 一种基于蓝牙的固件升级装置 | |
CN110134423B (zh) | 固件的更新方法、装置及计算机可读存储介质 | |
US20060080636A1 (en) | Method of building intelligent platform management interface firmware architecture | |
CN106293835A (zh) | 一种智能设备固件升级的方法及系统 | |
KR101190314B1 (ko) | 스마트 폰 앱을 이용한 펌웨어 업데이트 시스템 및 방법 | |
CN113721953A (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 |