CN110377358A - 协处理器固件动态加载方法、系统、设备及存储介质 - Google Patents

协处理器固件动态加载方法、系统、设备及存储介质 Download PDF

Info

Publication number
CN110377358A
CN110377358A CN201910573864.5A CN201910573864A CN110377358A CN 110377358 A CN110377358 A CN 110377358A CN 201910573864 A CN201910573864 A CN 201910573864A CN 110377358 A CN110377358 A CN 110377358A
Authority
CN
China
Prior art keywords
coprocessor
firmware
load
communication chip
loads
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
CN201910573864.5A
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.)
Shenzhen Huichuan Technology Co Ltd
Shenzhen Inovance Technology Co Ltd
Original Assignee
Shenzhen Huichuan Technology Co Ltd
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 Shenzhen Huichuan Technology Co Ltd filed Critical Shenzhen Huichuan Technology Co Ltd
Priority to CN201910573864.5A priority Critical patent/CN110377358A/zh
Publication of CN110377358A publication Critical patent/CN110377358A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)

Abstract

本发明实施例提供了一种协处理器固件动态加载方法、系统、设备及存储介质,应用于异构平台中的协处理器的固件加载,所述方法包括由主控芯片执行的以下步骤:控制通讯芯片触发所述协处理器执行复位操作,并使所述通讯芯片查询所述协处理器的状态以确认所述协处理器复位操作是否成功;当接收到所述通讯芯片反馈的所述协处理器复位成功的提示信息时,检测所述协处理器是否可进行加载操作;若所述协处理器可进行加载操作,则向所述协处理器发送固件加载数据,使所述协处理器根据所述固件加载数据进行固件加载。本发明实施例通过主控芯片对协处理器的固件进行动态加载,可大大提高协处理器固件加载效率。

Description

协处理器固件动态加载方法、系统、设备及存储介质
技术领域
本发明实施例涉及固件加载领域,更具体地说,涉及一种协处理器固件动态加载方法、系统、设备及存储介质。
背景技术
DSP(Digital Signal Processor,数字信号处理器)具有强大的数据处理能力及较高的运行速度,在运动控制等领域中得到广泛应用。对于功能要求复杂的嵌入式系统,往往采用多核异构方式,并将DSP作为协处理器用于处理相关计算问题。
很多DSP(例如美国德州仪器的TMS320C67XX系列DSP)的引导程序提供了多种启动方式,支持如I2C、SPI(Serial Peripheral Interface,串行外设接口)、NOR闪存接口、NAND闪存接口、UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)等主引导模式(master mode)或从引导模式(slave mode)的启动方式。并且,目前大部分启动方式支持AIS(Application Image Script,应用镜像脚本)启动,为DSP启动程序提供了多种方案选择。
目前多数含有DSP协处理器的异构平台中,将DSP作为一种独立处理器模块来启动,并没有体现异构平台中主控芯片对整个平台的控制地位,从而对于DSP固件加载是否成功往往需要额外手段确认。并且,在DSP通过主引导模式下通过读取闪存启动时,往往在硬件上需要一个或多个闪存,且这种方式对于需要加载不同DSP程序的场合极为不便,例如需要通过其他芯片在线烧录闪存,然后再单独重启DSP或者整个异构平台全部重启,以完成程序加载,从而导致DSP固件加载效率不高、可靠性和灵活性不高、且成本较高。
发明内容
本发明实施例针对上述异构平台中由于将DSP作为一种独立处理器模块启动而导致需通过额外方式确认DSP是否启动成功,且需在硬件上设置多个闪存,并导致DSP固件加载效率不高、可靠性和灵活性不高、且成本较高的问题,提供一种协处理器固件动态加载方法、系统、设备及存储介质。
本发明实施例解决上述技术问题的技术方案是,提供一种协处理器固件动态加载方法,应用于异构平台中的协处理器的固件加载,所述异构平台包括主控芯片、通讯芯片以及协处理器,且所述协处理器内置有引导程序,所述方法包括由所述主控芯片执行的以下步骤:
控制所述通讯芯片触发所述协处理器执行复位操作,并使所述通讯芯片查询所述协处理器的状态以确认所述协处理器复位操作是否成功;
当接收到所述通讯芯片反馈的所述协处理器复位成功的提示信息时,检测所述协处理器是否可进行加载操作;
若所述协处理器可进行加载操作,则向所述协处理器发送固件加载数据,使所述协处理器根据所述固件加载数据进行固件加载。
优选地,所述若所述协处理器可进行加载操作,则向所述协处理器发送固件加载数据,使所述协处理器根据所述固件加载数据进行固件加载之后还包括:
查询所述通信芯片是否接收到所述协处理器反馈的正常启动的提示信息;
若查询到所述通信芯片接收到所述协处理器反馈的正常启动的提示信息,则确认所述协处理器固件加载成功。
优选地,所述当接收到所述通讯芯片反馈的所述协处理器复位成功的提示信息时,检测所述协处理器是否可进行加载操作包括:
当接收到所述通讯芯片反馈的所述协处理器复位成功的提示信息时,查询所述协处理器是否完成了初始化操作;
当所述协处理器完成了初始化操作,则向所述协处理器发送操作码握手消息;
在接收到所述协处理器返回的操作码握手响应消息后,向所述协处理器发送握手次数N,所述N为大于1的整数;
在接收到所述协处理器返回的握手次数N后,依次向所述协处理器发送数字1~N,且在所述协处理器依次返回对应的数字时,确认所述协处理器可进行加载操作。
优选地,所述协处理器内置的引导程序使得所述协处理器在复位成功后自动按照预先配置的从引导模式启动,执行软件初始化操作;所述当接收到所述通讯芯片反馈的所述协处理器复位成功的提示信息时,查询所述协处理器是否完成了初始化操作包括:
当接收到所述通讯芯片反馈的所述协处理器复位成功的提示信息时,按照预设频率向所述协处理器发送开始字消息;所述开始字消息用于触发所述协处理器在初始化操作完成后向所述主控芯片发送相应的反馈信息;
当接收到所述协处理器根据所述开始字消息反馈的响应信息时,则确认所述协处理器完成了初始化操作。
优选地,所述向所述协处理器发送固件加载数据,使所述协处理器根据所述固件加载数据进行固件加载包括:
根据所述协处理器所需加载固件向所述协处理器发送固件加载数据,所述固件加载数据包括:固件加载指令、固件加载参数及所述协处理器所需加载固件的固件数据包,使所述协处理器根据所述固件加载数据进行固件加载;
其中,所述协处理器所需加载固件由用户预先配置或者根据用户输入的固件选择指令确定。
优选地,所述协处理器固件动态加载方法还包括:
若在固件加载过程中出现异常,则返回至所述控制所述通讯芯片触发所述协处理器执行复位操作的步骤,重新进行加载操作;
当重复执行加载操作达到预设次数,协处理器固件加载仍然失败,则输出加载失败提示信息至用户,所述加载失败提示信息包括异常位置及原因。
本发明实施例还提供一种协处理器固件动态加载系统,应用于异构平台中的协处理器的固件加载,所述异构平台包括主控芯片、通讯芯片以及协处理器,且所述协处理器内置有引导程序,所述系统包括复位控制单元、加载检测单元以及加载控制单元,其中:
所述复位控制单元,用于控制所述通讯芯片触发所述协处理器执行复位操作,并使所述通讯芯片查询所述协处理器的状态以确认所述协处理器复位操作是否成功;
所述加载检测单元,用于在接收到所述通讯芯片反馈的所述协处理器复位成功的提示信息时,检测所述协处理器是否可进行加载操作;
所述加载控制单元,用于在所述加载检测单元确认所述协处理器可进行加载操作时,向所述协处理器发送固件加载数据,使所述协处理器根据所述固件加载数据进行固件加载。
优选地,所述系统包括加载查验单元,且所述加载查验单元用于在所述协处理器进行固件加载后,查询所述通信芯片是否接收到所述协处理器反馈的正常启动的提示信息,并在查询到所述通信芯片接收到所述协处理器反馈的正常启动的提示信息时,确认所述协处理器固件加载成功;
所述协处理器为数字信号处理器,所述通讯芯片为现场可编程门阵列FPGA;所述主控芯片通过串行外设接口与所述协处理器连接,所述主控芯片通过外部存储接口和输入输出接口与所述通信芯片连接,所述协处理器通过外部存储接口和输入输出接口与所述通信芯片连接;
所述系统包括异常处理单元,所述异常处理单元用于在固件加载过程中出现异常时,使所述复位控制单元控制所述通讯芯片触发所述协处理器执行复位操作,并在出现异常达到预设次数时,输出加载失败提示信息至用户,所述加载失败提示信息包括异常位置及原因;
所述加载控制单元向所述协处理器发送的固件加载数据包括:固件加载指令、固件加载参数及所述协处理器所需加载固件的固件数据包,且所述协处理器所需加载固件由用户预先配置或者根据用户输入的固件选择指令确定;
所述加载检测单元包括初始化检测子单元、操作码同步子单元,其中:
所述初始化检测子单元,用于在接收到所述通讯芯片反馈的所述协处理器复位成功的提示信息时,查询所述协处理器是否完成了初始化操作;
所述操作码同步子单元,用于在确认所述协处理器完成了初始化操作后,向所述协处理器发送操作码握手消息;并在接收到所述协处理器返回的操作码握手响应消息后,向所述协处理器发送握手次数N,所述N为大于1的整数;以及,在接收到所述协处理器返回的握手次数N后,依次向所述协处理器发送数字1~N,且在所述协处理器依次返回对应的数字时,确认所述协处理器可进行加载操作。
本发明实施例还提供一种协处理器固件动态加载设备,包括存储器和处理器,所述存储器中存储有可在所述处理器执行的计算机程序,且所述处理器执行所述计算机程序时实现如上任一项所述的协处理器固件动态加载方法的步骤。
本发明实施例还提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如上任一项所述协处理器固件动态加载方法的步骤。
本发明实施例的协处理器固件动态加载方法、系统、设备及存储介质,通过主控芯片对协处理器的固件进行动态加载,可大大提高协处理器固件加载效率。并且,本发明实施例通过主控芯片直接从文件系统获取需加载的固件数据,在加载内容上具有很大的可选择性及灵活性,并具有很高的可靠性,同时提供了错误处理机制,减少了异构平台的硬件成本。
附图说明
图1是本发明实施例提供的协处理器固件动态加载方法所使用的异构平台的示意图;
图2是本发明实施例提供的协处理器固件动态加载方法的流程示意图;
图3是本发明实施例提供的协处理器固件动态加载方法中判断协处理器是否满足加载条件的流程示意图;
图4是本发明实施例提供的协处理器固件动态加载系统的示意图;
图5是本发明另一实施例提供的协处理器固件动态加载系统的示意图;
图6是本发明实施例提供的协处理器固件动态加载设备的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的协处理器固件动态加载方法,可应用于如图1所示的异构平台,上述异构平台包括主控芯片11、协处理器12以及通讯芯片13,并可实现协处理器12的固件的动态加载。当然,上述异构平台还包括一些其他芯片以及外围电路。
具体地,在上述异构平台中,主控芯片11可采用ARM架构的处理器;协处理器12可采用数字信号处理器(DSP),并支持AIS启动;通讯芯片13则可采用现场可编程门阵列(FPGA)。并且,主控芯片11通过串行外设接口(SPI)与协处理器12连接,该主控芯片11还通过外部存储接口和输入输出接口与通信芯片13连接,协处理器12则通过外部存储接口和输入输出接口与通信芯片13连接。在该异构平台中,主控芯片11运行主任务,并根据需求调度协处理器12和通讯芯片13;协处理器12作为该异构平台下的运算主单元,主要进行运动规划及控制等;通讯芯片13作为通信单元,负责与主控芯片11、协处理器12,以及外部输入输出、总线通信等。
如图2所示,是本发明实施例提供的协处理器固件动态加载方法的流程示意图,该方法通过主控芯片11实现内置有引导程序(例如支持SPI从引导模式启动)的协处理器12的固件动态加载。本实施例的协处理器固件动态加载方法包括由主控芯片44执行的以下步骤:
步骤S21:控制通讯芯片13触发协处理器12执行复位操作,并使通讯芯片13查询协处理器12的状态以确认协处理器12复位操作是否成功。
在该步骤之前,主控芯片11可先与加载好固件的通讯芯片13进行握手通信,以根据通讯芯片13与协处理器12的交互状态,确认协处理器12和通讯芯片13是否可以正常工作。若主控芯片11确认协处理器12和通讯芯片13可以正常工作,则控制通讯芯片13触发协处理器12执行复位操作。
主控芯片11在控制通讯芯片13触发协处理器12执行复位操作时,通过向通讯芯片13发送指令触发通讯芯片13,使通讯芯片13向协处理器12发出复位信号,从而实现协处理器12的复位。通过复位操作,在协处理器12完成固件加载后,可在线动态加载其他固件,而无需断电重启,从而大大提高了加载的灵活性和加载效率。
协处理器12复位后执行内置的引导程序,自动按照预先配置的从引导模式启动,执行软件初始化操作。通讯芯片13可通过查看协处理器12对应引脚的电平确认协处理器12是否复位成功,并在确认协处理器12复位成功时,向主控芯片11反馈协处理器12复位成功的提示信息。
步骤S22:当接收到通讯芯片13反馈的协处理器12复位成功的提示信息时,检测协处理器12是否可进行加载操作。
当主控芯片11接收到通讯芯片13反馈的协处理器12复位成功的提示信息时,确认协处理器12复位操作完成,并与协处理器12进行交互,以确认协处理器12是否可进行加载操作。
步骤S23:若协处理器12可进行加载操作,则向协处理器12发送固件加载数据,使协处理器12根据固件加载数据进行固件加载。
具体地,主控芯片11可按照AIS协议(AIS协议内容可由制作协处理器所需加载固件的固件数据时生成,主控芯片11只需按照预先生成的协议内容发送即可)向协处理器12发送固件加载数据,上述固件加载数据包括:固件加载指令、固件加载参数及协处理器12所需加载固件的固件数据包,且上述协处理器所需加载固件由用户预先配置或者根据用户输入的固件选择指令确定。协处理器12在接收到上述固件加载数据后,对固件加载数据进行解析,并执行解析获得的固件加载指令:根据解析获得的固件加载参数对协处理器12进行,以及将解析获得的固件数据包存储到指定位置。协处理器12在每次接收到固件加载数据时,向主控芯片11返回响应予以确认。
上述协处理器固件动态加载方法,通过主控芯片11对协处理器12的固件进行动态加载,可大大提高异构平台中协处理器12固件的加载效率。
在本发明的另一实施例中,为提高固件加载的可靠性,防止因为其它原因导致加载成功而并未正常运行,上述协处理器固件动态加载方法还可包括由主控芯片11在步骤S23后执行的以下步骤:查询所述通信芯片13是否接收到协处理器12反馈的正常启动的提示信息,若查询到通信芯片13接收到协处理器12反馈的正常启动的提示信息,则确认协处理器12固件加载成功。该步骤中,若通讯芯片13接收到来自协处理器12的通信数据(上述通信数据由协处理器12在固件加载成功后主动发送到通讯芯片13),即认为接收到协处理器12反馈的正常启动的提示信息。
具体地,可在协处理器12的加载固件中加入使协处理器12在启动后向通讯芯片13写入数据表明正确启动的内容,这样,主控芯片11在协处理器12完成固件加载后,不断查询通讯芯片13是否收到来自协处理器12的通信数据,如果收到,则认为协处理器12固件加载成功并正常运行。
在本发明的另一实施例中,上述协处理器固件动态加载方法还可包括:主控芯片11启动后,按照特定的需求从文件系统中选择与协处理器12相关的固件数据,并对固件数据进行检测。上述步骤S21中的固件数据包即根据主控芯片11从文件系统中选择的固件数据创建。通过上述方式,可提高协处理器12的固件加载的灵活性。
如图3所述,是本发明实施例提供的协处理器固件动态加载方法中检测协处理器是否可进行加载操作的流程示意图。该方法包括由主控芯片11执行的以下步骤:
步骤S301:通过通讯芯片13判断协处理器12是否复位成功,并在接收到通讯芯片13反馈的协处理器复位成功的提示信息时,确认协处理器12复位成功后,执行步骤S302,否则执行步骤S309。
步骤S302:主控芯片11通过SPI向协处理器12发送开始字消息(例如0x5853),并在一个预设时间段内不断发送。协处理器12内部初始化完成后,若收到主控芯片11的开始字消息,会通过SPI向主控芯片22返回开始字同步响应消息(例如0x5253)作为响应。
步骤S303:主控芯片11确认是否接收到来自协处理器12的开始字同步响应消息,若接收到开始字同步响应消息,则认为协处理器12完成了预定的初始化操作,并则执行步骤S304;否则执行步骤S309。
通过上述步骤S302和S303,可查询协处理器12是否完成了初始化操作。
步骤S304:主控芯片11向协处理器12发送操作码握手消息PING_DEVICE(例如0x5853590B),并在一个预设时间段内不断发送。协处理器12若收到主控芯片11的操作码握手消息,会通过SPI向主控芯片22返回操作码握手响应消息RECV_PING_DEVICE(例如0x5253590B)作为响应。
步骤S305:主控芯片11确认是否接收到来自协处理器12返回的操作码握手响应消息,并在接收到操作码握手响应消息时执行步骤S306,否则执行步骤S309。
步骤S306:主控芯片11向协处理器12发送操作码同步消息。
步骤S307:主控芯片11确认是否接收到协处理器12返回的操作码同步响应消息,并在接收到操作码同步响应消息时执行步骤S308,否则执行步骤S309。
在上述步骤S306和步骤S307中,主控芯片11和协处理器12需进行多次操作码同步消息发送和响应。具体地,主控芯片11先向协处理器12发送握手次数N(N为大于或等于2的整数),直至收到协处理器12返回的N,主控芯片11再接着向协处理器12依次发送数字1,2,3,…,N,每次等待协处理器12返回相应值,从而确保协处理器12可进行固件加载操作。
步骤S308:主控芯片11确认协处理器12可进行加载操作。
步骤S309:主控芯片11确认固件加载异常。
步骤S310:主控芯片11判断固件加载异常是否超过预设次数(例如三次),若固件加载异常超过预设次数,则执行步骤S311,否则执行步骤S21,控制通讯芯片13触发协处理器12重新执行复位操作。
步骤S311:主控芯片11确认协处理器12不满足加载条件。
通过上述方式确认协处理器12是否满足加载条件,可大大提高协处理器12固件加载的可靠性,实现容错、报错、查错。
如图4所示,是本发明实施例提供的协处理器固件动态加载系统的示意图,该系统可应用于如图1所示的异构平台中的协处理器的固件加载,且上述异构平台包括主控芯片11、通讯芯片13以及协处理器12,协处理器12内置有引导程序。具体地,上述异构平台中,协处理器12可采用数字信号处理器,通讯芯片13可采用为现场可编程门阵列FPGA;主控芯片11通过串行外设接口与协处理器12连接,主控芯片11通过外部存储接口和输入输出接口与通信芯片13连接,协处理器12通过外部存储接口和输入输出接口与通信芯片13连接。
本实施例的系统包括复位控制单元41、加载检测单元42和加载控制单元43,上述复位控制单元41、加载检测单元42和加载控制单元43具体可结合运行在主控芯片11上的软件实现。
复位控制单元41用于控制通讯芯片13触发协处理器12执行复位操作,并使通讯芯片13查询协处理器12的状态以确认协处理器12复位操作是否成功。具体地,主控芯片11可先与加载好固件的通讯芯片13进行握手通信,以根据通讯芯片13与协处理器12的交互状态确认协处理器12和通讯芯片13是否可以正常工作。若主控芯片11确认协处理器12和通讯芯片13可以正常工作,则复位控制单元41通过向通讯芯片13发送指令触发通讯芯片13,使通讯芯片13向协处理器12发出复位信号,从而实现协处理器12的复位。通过复位操作,在协处理器12完成固件加载后,可在线动态加载其他固件,而无需断电重启,从而大大提高了加载的灵活性和加载效率。
协处理器12复位后执行内置的引导程序,自动按照预先配置的从引导模式启动,执行软件初始化操作。通讯芯片13可通过查看协处理器12对应引脚的电平确认协处理器12是否复位成功,并在确认协处理器12复位成功时,向主控芯片11反馈协处理器12复位成功的提示信息。
加载检测单元42用于接收到通讯芯片13反馈的协处理器12复位成功的提示信息时,检测协处理器12是否可进行加载操作。当加载检测单元42接收到通讯芯片13反馈的协处理器12复位成功的提示信息时,确认协处理器12复位操作完成,并与协处理器12进行交互,以确认协处理器12是否可进行加载操作。
加载控制单元43用于在加载检测单元42确认协处理器12可进行加载操作时,向协处理器12发送固件加载数据,使协处理器12根据固件加载数据进行固件加载。
具体地,加载控制单元43可按照AIS协议(AIS协议内容可由制作协处理器固件时生成,加载控制单元42只需按照预先生成的协议内容发送即可)向协处理器12发送固件加载数据,上述固件加载数据可包括:固件加载指令、固件加载参数及协处理器12所需加载固件的固件数据包,且上述协处理器所需加载固件由用户预先配置或者根据用户输入的固件选择指令确定。协处理器12在接收到上述固件加载数据后,对上述固件加载数据进行解析,并执行解析获得的固件加载指令:根据解析获得的固件加载参数对协处理器12进行,以及将解析获得的固件数据包存储到指定位置。协处理器12在每次接收到固件加载数据时,向主控芯片11返回响应予以确认。
如图5所示,在本发明的另一实施例中,协处理器固件动态加载系统除了包括复位控制单元51、加载检测单元52和加载控制单元53外,还包括加载查验单元54,上述复位控制单元51、加载检测单元、加载控制单元52和加载查验单元54具体可结合运行在主控芯片11上的软件实现。
上述加载查验单元54用于在协处理器12进行固件加载后,查询通信芯片13是否接收到协处理器12反馈的正常启动的提示信息,并在查询到通信芯片13接收到协处理器12反馈的正常启动的提示信息时,确认协处理器12固件加载成功。具体地,加载查验单元54可查询通信芯片13的状态,若通讯芯片13接收到来自协处理器12的通信数据(上述通信数据由协处理器12在固件加载成功后主动发送到通讯芯片13),即认为接收到协处理器12反馈的正常启动的提示信息。通过加载查验单元54,可提高固件加载的可靠性,防止因为其它原因导致协处理器12固件加载成功而并未正常运行。
此外,上述加载控制单元52可包括初始化检测子单元521、操作码同步子单元522,并通过上述初始化检测子单元521、操作码同步子单元522确认异构平台中的协处理器12是否满足固件加载条件。
具体地,初始化检测子单元521用于在接收到通讯芯片反馈的协处理器复位成功的提示信息时,查询协处理器是否完成了初始化操作。具体地,该初始化检测子单元521可通过向协处理器12发送开始字消息确认协处理器12是否完成了初始化操作,若初始化检测子单元521接收到协处理器12返回的开始字响应消息,则确认协处理器12完成了初始化操作。
操作码同步子单元522用于在初始化检测子单元521确认协处理器完成了初始化操作时,向协处理器12发送操作码同步消息;在接收到协处理器12返回的开始字同步响应消息后,向协处理器12发送操作码同步消息;在接收到协处理器12返回的操作码同步响应消息后,向协处理器12发送握手次数N(N为大于1的整数);以及,在接收到协处理器12返回的握手次数N后,依次向协处理器12发送数字1~N,且在协处理器12依次返回对应的数字时,确认协处理器12可进行固件加载。
本实施例中的协处理器固件动态加载系统与上述图2对应实施例中的协处理器固件动态加载方法属于同一构思,其具体实现过程详细见对应的方法实施例,且方法实施例中的技术特征在本设备实施例中均对应适用,这里不再赘述。
本发明实施例还提供一种协处理器固件动态加载设备6,该设备6具体可以是异构平台中的主控芯片,如图6所示,该协处理器固件动态加载设备6包括存储器61和处理器62,存储器61中存储有可在处理器62执行的计算机程序,且处理器62执行计算机程序时实现如上所述协处理器固件动态加载方法的步骤。
本实施例中的协处理器固件动态加载设备6与上述图2对应实施例中的协处理器固件动态加载方法属于同一构思,其具体实现过程详细见对应的方法实施例,且方法实施例中的技术特征在本设备实施例中均对应适用,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,该存储介质上存储有计算机程序,计算机程序被处理器执行时,实现如上所述协处理器固件动态加载方法的步骤。本实施例中的计算机可读存储介质与上述图2对应实施例中的协处理器固件动态加载方法属于同一构思,其具体实现过程详细见对应的方法实施例,且方法实施例中的技术特征在本设备实施例中均对应适用,这里不再赘述。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成。实施例中的各功能单元、模块可以集成在一个处理器中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的应用程序容器集群报警实现方法、系统及设备,可以通过其它的方式实现。例如,以上所描述的应用程序容器集群报警实现系统实施例仅仅是示意性的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理器中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或界面切换设备、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种协处理器固件动态加载方法,应用于异构平台中的协处理器的固件加载,所述异构平台包括主控芯片、通讯芯片以及协处理器,且所述协处理器内置有引导程序,其特征在于,所述方法包括由所述主控芯片执行的以下步骤:
控制所述通讯芯片触发所述协处理器执行复位操作,并使所述通讯芯片查询所述协处理器的状态以确认所述协处理器复位操作是否成功;
当接收到所述通讯芯片反馈的所述协处理器复位成功的提示信息时,检测所述协处理器是否可进行加载操作;
若所述协处理器可进行加载操作,则向所述协处理器发送固件加载数据,使所述协处理器根据所述固件加载数据进行固件加载。
2.根据权利要求1所述的协处理器固件动态加载方法,其特征在于,所述若所述协处理器可进行加载操作,则向所述协处理器发送固件加载数据,使所述协处理器根据所述固件加载数据进行固件加载之后还包括:
查询所述通信芯片是否接收到所述协处理器反馈的正常启动的提示信息;
若查询到所述通信芯片接收到所述协处理器反馈的正常启动的提示信息,则确认所述协处理器固件加载成功。
3.根据权利要求2所述的协处理器固件动态加载方法,其特征在于,所述当接收到所述通讯芯片反馈的所述协处理器复位成功的提示信息时,检测所述协处理器是否可进行加载操作包括:
当接收到所述通讯芯片反馈的所述协处理器复位成功的提示信息时,查询所述协处理器是否完成了初始化操作;
当所述协处理器完成了初始化操作,则向所述协处理器发送操作码握手消息;
在接收到所述协处理器返回的操作码握手响应消息后,向所述协处理器发送握手次数N,所述N为大于1的整数;
在接收到所述协处理器返回的握手次数N后,依次向所述协处理器发送数字1~N,且在所述协处理器依次返回对应的数字时,确认所述协处理器可进行加载操作。
4.根据权利要求3所述的协处理器固件动态加载方法,其特征在于,所述协处理器内置的引导程序使得所述协处理器在复位成功后自动按照预先配置的从引导模式启动,执行软件初始化操作;所述当接收到所述通讯芯片反馈的所述协处理器复位成功的提示信息时,查询所述协处理器是否完成了初始化操作包括:
当接收到所述通讯芯片反馈的所述协处理器复位成功的提示信息时,按照预设频率向所述协处理器发送开始字消息;所述开始字消息用于触发所述协处理器在初始化操作完成后向所述主控芯片发送相应的反馈信息;
当接收到所述协处理器根据所述开始字消息反馈的响应信息时,则确认所述协处理器完成了初始化操作。
5.如权利要求1所述的协处理器固件动态加载方法,其特征在于,所述向所述协处理器发送固件加载数据,使所述协处理器根据所述固件加载数据进行固件加载包括:
根据所述协处理器所需加载固件向所述协处理器发送固件加载数据,所述固件加载数据包括:固件加载指令、固件加载参数及所述协处理器所需加载固件的固件数据包,使所述协处理器根据所述固件加载数据进行固件加载;
其中,所述协处理器所需加载固件由用户预先配置或者根据用户输入的固件选择指令确定。
6.如权利要求1所述的协处理器固件动态加载方法,其特征在于,所述协处理器固件动态加载方法还包括:
若在固件加载过程中出现异常,则返回至控制所述通讯芯片触发所述协处理器执行复位操作的步骤,重新进行加载操作;
当重复执行加载操作达到预设次数,协处理器固件加载仍然失败,则输出加载失败提示信息至用户,所述加载失败提示信息包括异常位置及原因。
7.一种协处理器固件动态加载系统,应用于异构平台中的协处理器的固件加载,所述异构平台包括主控芯片、通讯芯片以及协处理器,且所述协处理器内置有引导程序,其特征在于,所述系统包括复位控制单元、加载检测单元以及加载控制单元,其中:
所述复位控制单元,用于控制所述通讯芯片触发所述协处理器执行复位操作,并使所述通讯芯片查询所述协处理器的状态以确认所述协处理器复位操作是否成功;
所述加载检测单元,用于在接收到所述通讯芯片反馈的所述协处理器复位成功的提示信息时,检测所述协处理器是否可进行加载操作;
所述加载控制单元,用于在所述加载检测单元确认所述协处理器可进行加载操作时,向所述协处理器发送固件加载数据,使所述协处理器根据所述固件加载数据进行固件加载。
8.根据权利要求7所述的协处理器固件动态加载系统,其特征在于,所述系统包括加载查验单元,且所述加载查验单元用于在所述协处理器进行固件加载后,查询所述通信芯片是否接收到所述协处理器反馈的正常启动的提示信息,并在查询到所述通信芯片接收到所述协处理器反馈的正常启动的提示信息时,确认所述协处理器固件加载成功;
所述协处理器为数字信号处理器,所述通讯芯片为现场可编程门阵列FPGA;所述主控芯片通过串行外设接口与所述协处理器连接,所述主控芯片通过外部存储接口和输入输出接口与所述通信芯片连接,所述协处理器通过外部存储接口和输入输出接口与所述通信芯片连接;
所述系统包括异常处理单元,所述异常处理单元用于在固件加载过程中出现异常时,使所述复位控制单元控制所述通讯芯片触发所述协处理器执行复位操作,并在出现异常达到预设次数时,输出加载失败提示信息至用户,所述加载失败提示信息包括异常位置及原因;
所述加载控制单元向所述协处理器发送的固件加载数据包括:固件加载指令、固件加载参数及所述协处理器所需加载固件的固件数据包,且所述协处理器所需加载固件由用户预先配置或者根据用户输入的固件选择指令确定;
所述加载检测单元包括初始化检测子单元、操作码同步子单元,其中:
所述初始化检测子单元,用于在接收到所述通讯芯片反馈的所述协处理器复位成功的提示信息时,查询所述协处理器是否完成了初始化操作;
所述操作码同步子单元,用于在确认所述协处理器完成了初始化操作后,向所述协处理器发送操作码握手消息;并在接收到所述协处理器返回的操作码握手响应消息后,向所述协处理器发送握手次数N,所述N为大于1的整数;以及,在接收到所述协处理器返回的握手次数N后,依次向所述协处理器发送数字1~N,且在所述协处理器依次返回对应的数字时,确认所述协处理器可进行加载操作。
9.一种协处理器固件动态加载设备,其特征在于,包括存储器和处理器,所述存储器中存储有可在所述处理器执行的计算机程序,且所述处理器执行所述计算机程序时实现如权利要求1-6中任一项所述的协处理器固件动态加载方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1至6中任一项所述协处理器固件动态加载方法的步骤。
CN201910573864.5A 2019-06-28 2019-06-28 协处理器固件动态加载方法、系统、设备及存储介质 Pending CN110377358A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910573864.5A CN110377358A (zh) 2019-06-28 2019-06-28 协处理器固件动态加载方法、系统、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910573864.5A CN110377358A (zh) 2019-06-28 2019-06-28 协处理器固件动态加载方法、系统、设备及存储介质

Publications (1)

Publication Number Publication Date
CN110377358A true CN110377358A (zh) 2019-10-25

Family

ID=68251215

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910573864.5A Pending CN110377358A (zh) 2019-06-28 2019-06-28 协处理器固件动态加载方法、系统、设备及存储介质

Country Status (1)

Country Link
CN (1) CN110377358A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021115257A1 (zh) * 2019-12-12 2021-06-17 Oppo广东移动通信有限公司 应用切换方法、装置、存储介质及电子设备
CN114816547A (zh) * 2022-04-28 2022-07-29 中国第一汽车股份有限公司 一种autosar架构下复杂驱动初始化外围芯片的方法及装置
CN114827431A (zh) * 2021-01-27 2022-07-29 Oppo广东移动通信有限公司 场景包处理方法、协处理芯片、主处理芯片及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101192165A (zh) * 2006-11-29 2008-06-04 中兴通讯股份有限公司 主从式多处理器系统以及软件版本加载方法
US20100272275A1 (en) * 2009-04-28 2010-10-28 Carreras Ricardo F ANR Settings Boot Loading
CN101996087A (zh) * 2010-12-02 2011-03-30 北京星河亮点通信软件有限责任公司 多核处理器阵列程序的动态加载系统及方法
CN103399771A (zh) * 2013-08-12 2013-11-20 中国航空无线电电子研究所 基于串行高速接口总线的多dsp自举加载系统及其方法
US20130346736A1 (en) * 2012-06-21 2013-12-26 Brent Aaron Cook Systems and method for booting devices in a multiple-card computing system
US20150261544A1 (en) * 2013-03-15 2015-09-17 Alvin Anonuevo Manlapat Embedded System Boot from a Storage Device
CN107544815A (zh) * 2016-06-28 2018-01-05 中兴通讯股份有限公司 一种多处理器系统的启动方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101192165A (zh) * 2006-11-29 2008-06-04 中兴通讯股份有限公司 主从式多处理器系统以及软件版本加载方法
US20100272275A1 (en) * 2009-04-28 2010-10-28 Carreras Ricardo F ANR Settings Boot Loading
CN101996087A (zh) * 2010-12-02 2011-03-30 北京星河亮点通信软件有限责任公司 多核处理器阵列程序的动态加载系统及方法
US20130346736A1 (en) * 2012-06-21 2013-12-26 Brent Aaron Cook Systems and method for booting devices in a multiple-card computing system
US20150261544A1 (en) * 2013-03-15 2015-09-17 Alvin Anonuevo Manlapat Embedded System Boot from a Storage Device
CN103399771A (zh) * 2013-08-12 2013-11-20 中国航空无线电电子研究所 基于串行高速接口总线的多dsp自举加载系统及其方法
CN107544815A (zh) * 2016-06-28 2018-01-05 中兴通讯股份有限公司 一种多处理器系统的启动方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021115257A1 (zh) * 2019-12-12 2021-06-17 Oppo广东移动通信有限公司 应用切换方法、装置、存储介质及电子设备
CN114827431A (zh) * 2021-01-27 2022-07-29 Oppo广东移动通信有限公司 场景包处理方法、协处理芯片、主处理芯片及电子设备
CN114816547A (zh) * 2022-04-28 2022-07-29 中国第一汽车股份有限公司 一种autosar架构下复杂驱动初始化外围芯片的方法及装置

Similar Documents

Publication Publication Date Title
US7552217B2 (en) System and method for Automatic firmware image recovery for server management operational code
WO2018032770A1 (zh) 一种应用组件部署方法及部署节点
CN110377358A (zh) 协处理器固件动态加载方法、系统、设备及存储介质
JPH0644168A (ja) コンピュータ・ネットワーク
CN110134399B (zh) 编译方法及装置
CN114281394A (zh) 一种快速在线升级程序的方法、系统、设备及介质
CN108804109B (zh) 基于多路功能等价模块冗余仲裁的工业部署和控制方法
CN101710288A (zh) 升级处理方法和系统、升级服务器以及升级设备
CN104137062A (zh) 将代码动态注入到运行中的进程
CN102567063A (zh) 一种自动安装软件的方法及装置
US11119754B1 (en) Upgrading system components with forward and backward compatibility
CN109597653A (zh) Bios与bmc命令交互的方法、bios及bmc
CN110019482A (zh) 粮情数据采集方法、粮情中间件平台及粮情数据采集系统
CN111679842B (zh) 应用程序热更新处理方法、装置及系统
US11023220B2 (en) Firmware update with integrated smart sequence and action engine
CN110634230A (zh) 一种自动售卖机的应用程序与硬件设备信息交互的方法
CN105550050A (zh) 硬件通信的方法及装置
CN115840617A (zh) 一种调试方法、系统及相关装置
CN114879977A (zh) 应用部署方法、装置及存储介质
CN116466973B (zh) 一种多并发固件升级方法、系统、计算机设备及存储介质
CN101803339A (zh) 交叉往返消除协议
US20240036850A1 (en) Configuration aware firmware update
US11842057B2 (en) Seamless creation of raid arrays with optimized boot time
US11929876B1 (en) Method for modifying network configuration of resource manager and managed resources
CN116541015B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20191025

RJ01 Rejection of invention patent application after publication