CN113778485A - 电子芯片的***运行方法、装置、电子芯片和存储介质 - Google Patents

电子芯片的***运行方法、装置、电子芯片和存储介质 Download PDF

Info

Publication number
CN113778485A
CN113778485A CN202111045003.3A CN202111045003A CN113778485A CN 113778485 A CN113778485 A CN 113778485A CN 202111045003 A CN202111045003 A CN 202111045003A CN 113778485 A CN113778485 A CN 113778485A
Authority
CN
China
Prior art keywords
program
cpu
check value
electronic chip
user program
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
Application number
CN202111045003.3A
Other languages
English (en)
Inventor
经琦
许凤霞
唐小珠
黄伟庭
董喜航
于力奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gree Electric Appliances Inc of Zhuhai
Original Assignee
Gree Electric Appliances Inc of Zhuhai
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Gree Electric Appliances Inc of Zhuhai filed Critical Gree Electric Appliances Inc of Zhuhai
Priority to CN202111045003.3A priority Critical patent/CN113778485A/zh
Publication of CN113778485A publication Critical patent/CN113778485A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及一种电子芯片的***运行方法、装置、计算机设备和存储介质。方法包括:在电子芯片***上电后,获取存储的第一校验值和第二校验值;其中,第一校验值为上位机对用户程序进行校验计算并发送给电子芯片的校验值,第二校验值为电子芯片对上一次更新成功的用户程序进行校验计算得出的校验值;若第一校验值和第二校验值一致,则进入用户程序;若不一致,则跳转至Bootloader程序,并利用Bootloader程序更新第一CPU的用户程序。本方法避免了在***上电后等待上位机的用户指令和人为选择的反应时间,提高了电子芯片的***运行效率。

Description

电子芯片的***运行方法、装置、电子芯片和存储介质
技术领域
本申请涉及电子芯片技术领域,特别是涉及一种电子芯片的***运行方法、装置、电子芯片和存储介质。
背景技术
随着电子芯片技术的快速发展,电子芯片的应用越来越广泛。在设置有电子芯片的产品设备中,用户程序在产品设备出厂时已通过JTAG(Joint Test Action Group,联合测试工作组)接口固化在Flash(Flash memory,闪存)存储器中,并随控制板封装在机壳中;但是随着产品设备功能的不断更新以及用户需求的不断变化,需要对产品设备进行用户程序的迭代升级。考虑到产品设备的机壳外部一般不会留有JTAG接口,所以要更新用户程序必须对产品设备的机壳进行开盖处理,并通过仿真器与主控板上的JTAG口连接方可更新程序。如果这样,一方面会因破坏机壳密封性而导致内部电路结构泄露的风险以及引入外部导电介质的风险;另一方面,当产品设备数量比较大时,不仅维护量大,且维护性差。
为了解决上述用户程序更新的局限性,目前普遍采用通过串口在线更新用户程序的方法;常规方法是通过在电子芯片中写入两个程序:底层Bootloader程序和用户程序,Bootloader程序固化在电子芯片中的某个Flash中不被擦除。该方法的主要流程为:当***上电后进入Bootloader程序,等待接收上位机发送的用户指令,根据该用户指令确定是直接进入用户程序还是执行用户程序更新操作;也就是说,目前的技术方案是在电子芯片***上电后,人为选择进入用户程序更新流程还是直接进入到用户程序流程,每次都需要等待上位机的用户指令和人为选择的反应时间来实现进入Bootloader程序还是用户程序,导致电子芯片的***运行效率低下。
如何提高电子芯片的***运行效率,是本领域技术人员目前需要解决的技术问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高电子芯片的***运行效率的电子芯片的***运行方法、装置、计算机设备和存储介质。
一种电子芯片的***运行方法,所述方法包括:
在电子芯片***上电后,获取存储的第一校验值和第二校验值;其中,所述第一校验值为上位机对用户程序进行校验计算并发送给所述电子芯片的校验值,所述第二校验值为所述电子芯片对上一次更新成功的用户程序进行校验计算得出的校验值;
若所述第一校验值和所述第二校验值一致,则进入所述用户程序;若不一致,则跳转至Bootloader程序,并利用所述Bootloader程序更新第一CPU的所述用户程序。
在其中一个实施例中,所述跳转至Bootloader程序,并利用所述Bootloader程序更新第一CPU的所述用户程序的过程,包括:
在跳转至所述Bootloader程序后,等待接收上位机的操作命令;
在接收到所述操作指令后,根据所述操作命令,利用所述Bootloader程序对所述第一CPU执行用户程序升级或恢复备份程序的操作。
在其中一个实施例中,所述根据所述操作命令,利用所述Bootloader程序对所述第一CPU执行用户程序升级操作的过程,包括:
根据所述操作命令,利用所述Bootloader程序调用第一Flash API函数,擦除所述第一CPU的第一Flash扇区;
接收所述上位机发送的待更新用户程序的第一程序文件,并将所述第一程序文件存储至所述第一Flash扇区;
利用所述第一程序文件对所述第一CPU进行软件初始化操作,实现用户程序升级。
在其中一个实施例中,所述根据所述操作命令,利用所述Bootloader程序对所述第一CPU执行恢复备份程序的操作的过程,包括:
根据所述操作命令,利用所述Bootloader程序获取预先存储的备份程序文件;
利用所述备份程序文件对所述第一CPU进行软件初始化操作,实现恢复备份程序。
在其中一个实施例中,当所述电子芯片为双核电子芯片,需要对第二CPU进行用户程序更新时,所述方法还包括:
通过所述第一CPU从所述上位机获取所述第二CPU的待更新用户程序的第二程序文件并存入共享RAM中;
通过所述第一CPU调用所述第二CPU的第二Flash API函数,擦除所述第二CPU的第二Flash扇区;
通过所述第一CPU将所述共享RAM中的所述第二程序文件写入所述第二Flash扇区中,利用所述第二程序文件对所述第二CPU进行软件初始化操作,实现用户程序更新。
在其中一个实施例中,在将所述第二程序文件存入所述共享RAM中之后,所述方法还包括:
设置用于标识需要对所述第二CPU进行用户程序更新的标识信息。
在其中一个实施例中,在进入所述用户程序后,所述方法还包括:
接收所述上位机发送的更新指令;其中,所述更新指令为用户输入的用于指示所述第一CPU进行用户程序更新的指令;
根据所述更新指令跳转至所述Bootloader程序。
一种电子芯片的***运行装置,所述装置包括:
获取模块,用于在电子芯片***上电后,获取存储的第一校验值和第二校验值;其中,所述第一校验值为上位机对用户程序进行校验计算并发送给所述电子芯片的校验值,所述第二校验值为所述电子芯片对上一次更新成功的用户程序进行校验计算得出的校验值;
第一执行模块,用于当所述第一校验值和所述第二校验值一致时,进入所述用户程序;
第二执行模块,用于当所述第一校验值和所述第二校验值不一致时,跳转至Bootloader程序,并利用所述Bootloader程序更新第一CPU的所述用户程序。
一种电子芯片,所述电子芯片包括通信连接的第一CPU和第二CPU,所述电子芯片还包括如权利要求8所述的电子芯片的***运行装置。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
在电子芯片***上电后,获取存储的第一校验值和第二校验值;其中,所述第一校验值为上位机对用户程序进行校验计算并发送给所述电子芯片的校验值,所述第二校验值为所述电子芯片对上一次更新成功的用户程序进行校验计算得出的校验值;
若所述第一校验值和所述第二校验值一致,则进入所述用户程序;若不一致,则跳转至Bootloader程序,并利用所述Bootloader程序更新第一CPU的所述用户程序。
上述电子芯片的***运行方法、装置、电子芯片和存储介质,通过在电子芯片***上电后,获取存储的第一校验值和第二校验值;其中,第一校验值为上位机对用户程序进行校验计算并发送给电子芯片的校验值,第二校验值为电子芯片对上一次更新成功的用户程序进行校验计算得出的校验值;然后根据预设的第一校验值和第二校验值是否一致来决定进入Bootloader程序还是用户程序,若两个校验值一致,则表示上一次用户程序升级成功,因此可以直接进入用户程序;若校验值不一致,则表示上一次用户程序升级失败,因此可以直接跳转至Bootloader程序进行用户程序更新操作,因此,本方法避免了在***上电后等待上位机的用户指令和人为选择的反应时间,提高了电子芯片的***运行效率。
附图说明
图1为一个实施例中电子芯片的***运行方法的应用环境图;
图2为一个实施例中电子芯片的***运行方法的流程示意图;
图3为一个实施例中另一种电子芯片的***运行方法的流程图;
图4为一个实施例中另一种电子芯片的***运行方法的流程图;
图5为一个实施例中另一种电子芯片的***运行方法的流程图;
图6为一个实施例中电子芯片的***运行装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的电子芯片的***运行方法,可以应用于如图1所示的应用环境中。其中,上位机102与电子芯片104通过网络进行通信。其中,上位机102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,电子芯片104可以为DSP(Digital Signal Process,数字信号处理技术)芯片,也可以是其他设置有底层Bootloader程序和用户程序的芯片,本实施例对电子芯片的具体类型不做限定。
在一个实施例中,如图2所示,提供了一种电子芯片的***运行方法,以该方法应用于图1中的电子芯片为例进行说明,包括以下步骤:
步骤202,在电子芯片***上电后,获取存储的第一校验值和第二校验值;其中,第一校验值为上位机对用户程序进行校验计算并发送给电子芯片的校验值,第二校验值为电子芯片对上一次更新成功的用户程序进行校验计算得出的校验值。
具体的,电子芯片***上电指的是电子芯片接通电源,电子芯片处于通电状态。第一校验值为上位机对用户程序的程序文件进行校验计算得出的校验值,上位机在计算出校验值后,在向电子芯片发送用户程序的程序文件时,同时向电子芯片发送该校验值,电子芯片接收上位机发送的程序文件和第一校验值。第二校验值为电子芯片根据上一次更新成功的用户程序进行校验计算得出的校验值,具体可以是在进行用户程序更新后,电子芯片根据更新成功的用户程序计算出对应的校验值,即得出第二校验值;电子芯片将第一校验值和第二校验值存储至第一预设存储区域;在电子芯片下一次上电时,从第一预设存储区域获取上位机发送的第一校验值和对上一次更新成功的用户程序进行校验计算得出的第二校验值。
可以理解的是,在实际操作中,将第一校验值和第二校验值存储至电子芯片中的第一预设存储区域,一般是存储至电子芯片的非易失性存储器的存储区域中,以保障在掉电后所存储的第一校验值和第二校验值不会丢失。更具体的,可以是将第一校验值和第二校验值存储至同一预设存储区域的不同地址中,也可以是存储至不同预设存储区域中,本实施例对此不做限定。
另外需要说明的是,一般来说,在电子芯片***上电后,可以进行上电自检,即对CPU(中央处理器,Central Processing Unit)、内存、软硬盘子***、串并行接口等硬件设备进行检测,以确保电子芯片的运行可靠性。
步骤204,若第一校验值和第二校验值一致,则进入用户程序;若不一致,则跳转至Bootloader程序,并利用Bootloader程序更新第一CPU的用户程序。
具体的,在获取到第一校验值和第二校验值后,比较第一校验值和第二校验值,判断二者是否一致;若一致,则表示上一次升级操作成功,因此上位机发送的用户程序的第一校验值和电子芯片自身计算出的第二校验值相同,因此可以直接进入用户程序;若不一致,则表示上一次***升级操作失败,即在上一次升级操作中,上位机在将用户程序的程序文件和第一校验值发送给电子芯片后,由于电子芯片的***升级操作失败,导致电子芯片中上一次更新成功的用户程序的第二校验值和上位机发送的用户程序的程序文件的第一校验值不一致,因此跳转至Bootloader程序,利用Bootloader程序更新第一CPU的用户程序。具体的,在跳转至Bootloader程序后,通过执行Bootloader程序,执行对第一CPU进行用户程序更新的操作,从而实现第一CPU的用户程序更新。
需要说明的是,第一CPU指的是电子芯片中的CPU,当电子芯片中有多个CPU时,如电子芯片为双核DSP时,第一CPU指的是该DSP芯片中的任意一个CPU,并不是限定于某一个CPU。
上述电子芯片的***运行方法中,通过在电子芯片***上电后,获取存储的第一校验值和第二校验值;其中,第一校验值为上位机对用户程序进行校验计算并发送给电子芯片的校验值,第二校验值为电子芯片对上一次更新成功的用户程序进行校验计算得出的校验值;然后根据预设的第一校验值和第二校验值是否一致来决定进入Bootloader程序还是用户程序,若两个校验值一致,则表示上一次用户程序升级成功,因此可以直接进入用户程序;若校验值不一致,则表示上一次用户程序升级失败,因此可以直接跳转至Bootloader程序进行用户程序更新操作,因此,本方法避免了在***上电后等待上位机的用户指令和人为选择的反应时间,提高了电子芯片的***运行效率。
如图3为本发明实施例提供的另一种电子芯片的***运行方法的流程图。在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,跳转至Bootloader程序,并利用Bootloader程序更新第一CPU的用户程序的过程,包括:
在跳转至Bootloader程序后,等待接收上位机的操作命令;
在接收到操作指令后,根据操作命令,利用Bootloader程序对第一CPU执行用户程序升级或恢复备份程序的操作。
具体的,操作指令指的是指示对第一CPU执行何种类型的用户程序更新操作的指令,用户程序更新包括用户程序升级或恢复备份程序的操作。在本实施例中,用户程序升级指的是使用更高版本的用户程序替换第一CPU中目前运行的低版本的用户程序;恢复备份程序指的是利用预先备份的用户程序替换第一CPU中目前运行的用户程序。
在电子芯片***上电复位(RESET)后,寻址Flash扇区地址(Boot to Flash),读取第一校验值和第二校验值并跳转至程序入口;判断第一校验值和第二校验值是否一致,若一致,则直接进入用户程序;若不一致,跳转至Bootloader程序;接收到上位机发送的操作指令,根据操作指令,Bootloader程序确定对第一CPU执行升级操作还是恢复备份程序操作。
在一种具体的实施方式中,根据操作命令,利用Bootloader程序对第一CPU执行用户程序升级操作的过程,包括:
根据操作命令,利用Bootloader程序调用第一Flash API函数,擦除第一CPU的第一Flash扇区;
接收上位机发送的待更新用户程序的第一程序文件,并将第一程序文件存储至第一Flash扇区;
利用第一程序文件对第一CPU进行软件初始化操作,实现用户程序升级。
具体的,第一CPU的Bootloader程序调用第一CPU的第一Flash API函数,利用第一Flash API函数擦除第一CPU的第一Flash扇区,将原来存放低版本的用户程序的程序文件的Flash扇区擦除掉,为后续存放用于用户程序升级的程序文件腾出空间,以便写入用于待更新用户程序的第一程序文件。在接收上位机发送的待更新用户程序的第一程序文件后,将该第一程序文件存储至第一Flash扇区;然后通过第一CPU的Bootloader程序利用第一程序文件对第一CPU进行软件初始化操作,以实现在第一CPU中安装与第一程序文件对应的用户程序。
在一种具体的实施方式中,根据操作命令,利用Bootloader程序对第一CPU执行恢复备份程序的操作的过程,包括:
根据操作命令,利用Bootloader程序获取预先存储的备份程序文件;
利用备份程序文件对第一CPU进行软件初始化操作,实现恢复备份程序操作。
具体的,在本实施例中,是进一步考虑到当执行升级的过程中发生断电或者人为操作失误导致升级中断,常规的方法是重新从上位机获取版本更高的用户程序的程序文件,利用该程序文件进行用户程序升级。但是在一些实际操作中,需要恢复用户程序。因此在本实施例中,第一CPU的Bootloader程序从第二预设存储区域获取预先存储的备份程序文件;其中,第二预设存储区域为预先指定的Flash扇区,将备份程序文件存储至该Flash扇区不会被擦除;当需要对第一CPU进行恢复备份程序操作时,从第二预设存储区域获取预先存储的备份程序文件,然后通过Bootloader程序利用第二程序文件对第一CPU进行软件初始化操作,以实现在第一CPU中安装与第二程序文件对应的用户程序,实现恢复备份程序。
也就是说,在本实施例中,增加了将用户程序的程序文件备份在某个Flash扇区中不被擦除的功能,因此本实施例不仅可以重新升级,还能够恢复原来的用户程序,对***实现双层保障,从而提高了***的安全性和可靠性。
如图4为本发明实施例提供的另一种电子芯片的***运行方法的流程图,在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,当电子芯片为双核电子芯片,需要对第二CPU进行用户程序更新时,方法还包括:
通过第一CPU从上位机获取第二CPU的待更新用户程序的第二程序文件并存入共享RAM中;
通过第一CPU调用第二CPU的第二Flash API函数,擦除第二CPU的第二Flash扇区;
通过第一CPU将共享RAM中的第二程序文件写入第二Flash扇区中,利用第二程序文件对第二CPU进行软件初始化操作,实现用户程序更新。
需要说明的是,当电子芯片为双核电子芯片,即电子芯片中存在两个CPU时,若需要对两个CPU分别进行用户程序更新,目前的技术方案是切换电子芯片与两个CPU的串口连接,如需要对第二CPU进行用户程序更新时,则电子芯片断开与第一CPU的串口连接,并与第二CPU建立串口连接,以便电子芯片与第二CPU能够进行数据通信,实现对第二CPU实现用户程序更新。但是传统技术方案中这种方式,需要频繁切换串口连接,可能会导致传输数据丢失的问题。
在本实施例中,第一CPU将接收到的操作指令或程序文件通过IPC(Interprocessor Communication,核间通信)发送给第二CPU2;当需要对第二CPU进行用户程序更新时,通过第一CPU从上位机获取第二CPU的待更新用户程序的第二程序文件,并将该第二程序文件存储至共享RAM中;共享RAM指的是第一CPU和第二CPU都能够读写的存储空间;然后通过第一CPU调用第二CPU的Bootloader程序,利用该Bootloader程序调用第二Flash API函数,擦除第二CPU的第二Flash扇区;通过第二CPU的Bootloader程序利用第二程序文件对第二CPU进行软件初始化操作,实现对第二CPU进行用户程序更新。
可见,本实施例的方法,能够避免频繁切换串口与不同的CPU切换,降低数据丢失的风险。
作为优选的实施方式,在将第二程序文件存入共享RAM中之后,方法还包括:
设置用于标识需要对第二CPU进行用户程序更新的标识信息。
在本实施例中,在将第二程序文件写入共享RAM中之后,进一步设置标识信息,该标识信息用于标识需要对第二CPU进行用户程序更新,第一CPU在检测到该标识信息后,则开始执行对第二CPU进行用户程序更新的操作。
更具体的,设置标识信息IPC Flag用于标识是否需要对第二CPU进行用户程序更新;例如,当IPC Flag=0时,表示不需要对第二CPU进行用户程序更新;当IPC Flag=1时,表示需要对第二CPU进行用户程序更新;另外,也可以通过设置用于标识是否需要对第二CPU进行用户程序更新的标识信息IPC Flag,当存在标识信息IPC Flag时,则表示需要对第二CPU进行用户程序更新;当未检测到标识信息IPC Flag时,表示不需要对第二CPU进行用户程序更新。例如,在一种具体的实施方式中,当第二CPU检测到IPC Flag=1时,则跳转到第二CPU的Bootloader的_c_int00开始执行。当第二CPU接收到共享RAM中的第二程序文件后,清除IPC Flag。
可见,本实施例通过进一步设置标识信息,以便第二CPU能够根据标识信息确定是否需要执行用户程序更新的操作,使得对第二CPU进行用户程序更新的过程更加便捷。
在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,在进入用户程序后,方法还包括:
接收上位机发送的更新指令;其中,更新指令为用户输入的用于指示第一CPU和/或第二CPU进行用户程序更新的指令;
根据更新指令跳转至Bootloader程序。
在本实施例中,是在已经进入到用户程序后,在运行用户程序的过程中,用户通过上位机输入更新指令,该更新指令用于指示对第一CPU或第二CPU进行用户程序更新;上位机将接收到用户输入的更新指令发送给电子芯片,电子芯片在接收到更新指令后,根据该更新指令进行***控制,从用户程序跳转至Bootloader程序,在Bootloader程序等待接收上位机发送的待更新用户程序的第一程序文件或第二程序文件,进而利用第一程序文件或第二程序文件实现对第一CPU或第二CPU实现用户程序更新。
本实施例中,通过进一步在进入用户程序后,根据上位机发送的更新指令跳转至Bootloader程序进行用户程序更新,使得进行用户程序更新的时间更加灵活。
为了便于本领域技术人员更清楚地理解本申请的技术方案,为了使本技术领域的人员更好地理解本申请中的技术方案,下面结合实际应用场景对本申请实施例中的技术方案进行详细说明。如图5所示,具体步骤如下:
在电子芯片***上电复位后,电子芯片的启动程序开始从Flash引导,在***复位后,在对串口、GPIO(General-purpose input/output,通用型输入输出)等相关外设配置后,执行CodeStart Branch中的起始代码,这段代码用于实现对当前启动电子芯片的引导;通过寻址Flash扇区地址,读取第一校验值PC_CheckValue和第二校验值Boot_CheckValue,通过判断两者是否一致来决定程序的跳转;若一致,***会跳转到用户程序入口运行;若不一致,则说明上一次的升级发生错误,***会跳转到Bootloader程序入口等待上位机发送的操作指令。
在接收到上位机的操作指令后,判断该操作指令是升级指令还是恢复备份程序的指令,若为恢复备份程序的指令,则跳转至恢复备份程序;若为升级指令,则需要进一步判断是升级第一CPU还是第二CPU;在升级第一CPU时,跳转至第一CPU的Bootloader程序,进入第一CPU的Bootloader程序的_c_int00入口开始执行,对第一CPU进行复位;第一CPU的Bootloader程序调用第一CPU的第一Flash API函数,对第一CPU的第一Flash扇区进行擦除;然后根据通信协议和数据流格式,通过串口接收上位机发送的第一CPU的待更新用户程序的第一程序文件和上位机对该第一程序文件进行校验计算得出的第一校验值PC_CheckValue1;另一方面,第一CPU在利用该第一程序文件进行用户程序升级之后,根据第一程序文件进行校验计算,得出第二校验值Boot_CheckValue1;再将该第一程序文件和两个校验值编程到相应的扇区地址中。
对应的,在升级第二CPU时,第一CPU的Bootloader程序会跳转到第一CPU的数据暂存函数,执行将上位机发送的第二CPU的待更新用户程序的第二程序文件及其对应的第二校验值PC_CheckValue2存入共享RAM中,同时设置标识信息IPC Flag=1;当第二CPU***检测到标识信息IPC Flag时,则跳转到第二CPU的Bootloader程序的_c_int00开始执行;在复位完成后,第二CPU的Bootloader程序调用第二CPU的第二Flash API函数,执行对第二CPU的Flash扇区擦除操作,第二CPU的Bootloader程序将共享RAM中的数据写入相应的Flash中,最后通过第二CPU的Bootloader程序进行软件初始化操作,实现对第二CPU进行用户程序升级。
可见,在本实施例中,可以根据实际需求可以执行对应的程序,满足电子芯片的***运行的多样化实际需求。
应该理解的是,虽然上述实施例涉及的各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述实施例涉及的各流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种电子芯片的***运行装置,包括:获取模块602、第一执行模块604和第二执行模块606,其中:
获取模块602,用于在电子芯片***上电后,获取存储的第一校验值和第二校验值;其中,第一校验值为上位机对用户程序进行校验计算并发送给电子芯片的校验值,第二校验值为电子芯片对上一次更新成功的用户程序进行校验计算得出的校验值;
第一执行模块604,用于当第一校验值和第二校验值一致时,进入用户程序;
第二执行模块606,用于当第一校验值和第二校验值不一致时,跳转至Bootloader程序,并利用Bootloader程序更新第一CPU的用户程序。
本发明实施例提供的一种电子芯片的***运行装置,具有与上述一种电子芯片的***运行方法相同的有益效果。
作为一种优选的实施例,第二执行模块包括:
跳转子模块,用于在跳转至Bootloader程序后,等待接收上位机的操作命令;
接收子模块,用于在接收到操作指令后,根据操作命令,利用Bootloader程序对第一CPU执行用户程序升级或恢复备份程序的操作。
作为一种优选的实施例,接收子模块包括:
擦除单元,用于根据操作命令,利用Bootloader程序调用第一Flash API函数,擦除第一CPU的第一Flash扇区;
接收单元,用于接收上位机发送的待更新用户程序的第一程序文件,并将第一程序文件存储至第一Flash扇区;
升级单元,用于利用第一程序文件对第一CPU进行软件初始化操作,实现用户程序升级。
作为一种优选的实施例,接收子模块包括:
获取单元,用于根据操作命令,利用Bootloader程序获取预先存储的备份程序文件;
恢复备份单元,用于利用备份程序文件对第一CPU进行软件初始化操作,实现恢复备份程序。
作为一种优选的实施例,当电子芯片为双核电子芯片时,装置还包括:
存储模块,用于通过第一CPU从上位机获取第二CPU的待更新用户程序的第二程序文件并存入共享RAM中;
擦除模块,用于通过第一CPU调用第二CPU的第二Flash API函数,擦除第二CPU的第二Flash扇区;
写入模块,用于通过第一CPU将共享RAM中的第二程序文件写入第二Flash扇区中,利用第二程序文件对第二CPU进行软件初始化操作,实现用户程序更新。时
作为一种优选的实施例,装置还包括:
设置模块,用于设置用于标识需要对第二CPU进行用户程序更新的标识信息。
作为一种优选的实施例,装置还包括:
接收模块,用于接收上位机发送的更新指令;其中,更新指令为用户输入的用于指示第一CPU进行用户程序更新的指令;
跳转模块,用于根据更新指令跳转至Bootloader程序。
关于电子芯片的***运行装置的具体限定可以参见上文中对于电子芯片的***运行方法的限定,在此不再赘述。上述电子芯片的***运行装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种电子芯片,电子芯片包括通信连接的第一CPU和第二CPU,电子芯片还包括如上的电子芯片的***运行装置。
本发明实施例提供的一种电子芯片,具有与上述一种电子芯片的***运行方法相同的有益效果。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
在电子芯片***上电后,获取存储的第一校验值和第二校验值;其中,第一校验值为上位机对用户程序进行校验计算并发送给电子芯片的校验值,第二校验值为电子芯片对上一次更新成功的用户程序进行校验计算得出的校验值;
若第一校验值和第二校验值一致,则进入用户程序;若不一致,则跳转至Bootloader程序,并利用Bootloader程序更新第一CPU的用户程序。
本发明实施例提供的一种计算机可读存储介质,具有与上述一种电子芯片的***运行方法相同的有益效果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种电子芯片的***运行方法,其特征在于,所述方法包括:
在电子芯片***上电后,获取存储的第一校验值和第二校验值;其中,所述第一校验值为上位机对用户程序进行校验计算并发送给所述电子芯片的校验值,所述第二校验值为所述电子芯片对上一次更新成功的用户程序进行校验计算得出的校验值;
若所述第一校验值和所述第二校验值一致,则进入所述用户程序;若不一致,则跳转至Bootloader程序,并利用所述Bootloader程序更新第一CPU的所述用户程序。
2.根据权利要求1所述的方法,其特征在于,所述跳转至Bootloader程序,并利用所述Bootloader程序更新第一CPU的所述用户程序的过程,包括:
在跳转至所述Bootloader程序后,等待接收上位机的操作命令;
在接收到所述操作指令后,根据所述操作命令,利用所述Bootloader程序对所述第一CPU执行用户程序升级或恢复备份程序的操作。
3.根据权利要求2所述的方法,其特征在于,所述根据所述操作命令,利用所述Bootloader程序对所述第一CPU执行用户程序升级操作的过程,包括:
根据所述操作命令,利用所述Bootloader程序调用第一Flash API函数,擦除所述第一CPU的第一Flash扇区;
接收所述上位机发送的待更新用户程序的第一程序文件,并将所述第一程序文件存储至所述第一Flash扇区;
利用所述第一程序文件对所述第一CPU进行软件初始化操作,实现用户程序升级。
4.根据权利要求2所述的方法,其特征在于,所述根据所述操作命令,利用所述Bootloader程序对所述第一CPU执行恢复备份程序的操作的过程,包括:
根据所述操作命令,利用所述Bootloader程序获取预先存储的备份程序文件;
利用所述备份程序文件对所述第一CPU进行软件初始化操作,实现恢复备份程序。
5.根据权利要求1至4任一项所述的方法,其特征在于,当所述电子芯片为双核电子芯片,需要对第二CPU进行用户程序更新时,所述方法还包括:
通过所述第一CPU从所述上位机获取所述第二CPU的待更新用户程序的第二程序文件并存入共享RAM中;
通过所述第一CPU调用所述第二CPU的第二Flash API函数,擦除所述第二CPU的第二Flash扇区;
通过所述第一CPU将所述共享RAM中的所述第二程序文件写入所述第二Flash扇区中,利用所述第二程序文件对所述第二CPU进行软件初始化操作,实现用户程序更新。
6.根据权利要求5所述的方法,其特征在于,在将所述第二程序文件存入所述共享RAM中之后,所述方法还包括:
设置用于标识需要对所述第二CPU进行用户程序更新的标识信息。
7.根据权利要求5所述的方法,其特征在于,在进入所述用户程序后,所述方法还包括:
接收所述上位机发送的更新指令;其中,所述更新指令为用户输入的用于指示所述第一CPU和/或所述第二CPU进行用户程序更新的指令;
根据所述更新指令跳转至所述Bootloader程序。
8.一种电子芯片的***运行装置,其特征在于,所述装置包括:
获取模块,用于在电子芯片***上电后,获取存储的第一校验值和第二校验值;其中,所述第一校验值为上位机对用户程序进行校验计算并发送给所述电子芯片的校验值,所述第二校验值为所述电子芯片对上一次更新成功的用户程序进行校验计算得出的校验值;
第一执行模块,用于当所述第一校验值和所述第二校验值一致时,进入所述用户程序;
第二执行模块,用于当所述第一校验值和所述第二校验值不一致时,跳转至Bootloader程序,并利用所述Bootloader程序更新第一CPU的所述用户程序。
9.一种电子芯片,所述电子芯片包括通信连接的第一CPU和第二CPU,其特征在于,所述电子芯片还包括如权利要求8所述的电子芯片的***运行装置。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202111045003.3A 2021-09-07 2021-09-07 电子芯片的***运行方法、装置、电子芯片和存储介质 Pending CN113778485A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111045003.3A CN113778485A (zh) 2021-09-07 2021-09-07 电子芯片的***运行方法、装置、电子芯片和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111045003.3A CN113778485A (zh) 2021-09-07 2021-09-07 电子芯片的***运行方法、装置、电子芯片和存储介质

Publications (1)

Publication Number Publication Date
CN113778485A true CN113778485A (zh) 2021-12-10

Family

ID=78841552

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111045003.3A Pending CN113778485A (zh) 2021-09-07 2021-09-07 电子芯片的***运行方法、装置、电子芯片和存储介质

Country Status (1)

Country Link
CN (1) CN113778485A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117170753A (zh) * 2023-08-18 2023-12-05 新汽有限公司 程序处理方法、程序处理装置、车辆和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117170753A (zh) * 2023-08-18 2023-12-05 新汽有限公司 程序处理方法、程序处理装置、车辆和存储介质
CN117170753B (zh) * 2023-08-18 2024-04-09 新汽有限公司 程序处理方法、程序处理装置、车辆和存储介质

Similar Documents

Publication Publication Date Title
US8423991B2 (en) Embedded network device and firmware upgrading method
US20110283274A1 (en) Firmware image update and management
CN103150231A (zh) 计算机开机的方法与计算机***
CN101021797A (zh) 一种用于嵌入式***的软件修复和升级方法
CN111813428A (zh) 终端固件的升级方法、装置、电子设备及存储介质
CN109582332B (zh) 互联网摄像机的***升级方法及装置
US11314665B2 (en) Information processing system, information processing device, BIOS updating method for information processing device, and BIOS updating program for information processing device
CN104572387A (zh) 一种工程模式下调试终端的方法及装置
CN109783149A (zh) 开机控制方法、装置、移动终端以及存储介质
CN104424047A (zh) 一种nvram数据恢复方法和装置
CN111258666A (zh) 计算机文件的读取方法、装置、计算机***及存储介质
CN113778485A (zh) 电子芯片的***运行方法、装置、电子芯片和存储介质
CN108153548A (zh) 一种emmc固件升级方法和装置
CN113138791A (zh) 基于嵌入式***的升级处理方法、装置及电子设备
CN117130672A (zh) 服务器启动流程控制方法、***、终端及存储介质
CN112214353A (zh) 固件恢复方法、装置、计算机设备和存储介质
CN109522174B (zh) 控制adb使能的方法、装置、终端及存储介质
CN112650513B (zh) 程序升级方法、装置、计算机设备和存储介质
CN115951949A (zh) 一种bios的配置参数的恢复方法、装置及计算设备
CN111399926A (zh) 下载启动程序的方法和装置
CN114510375A (zh) 一种Flash芯片数据区域动态共享***及方法
CN110795155B (zh) ***启动方法及装置、电子设备、存储介质
CN114968297A (zh) Ota升级方法、电子设备及芯片***
KR100588199B1 (ko) 휴대 단말기에서 프로그램 다운로드 실패시 이의 복구방법 및 이를 적용한 휴대 단말기
CN117234544B (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