CN113434185A - 一种在线升级处理器应用程序的方法及其系统 - Google Patents
一种在线升级处理器应用程序的方法及其系统 Download PDFInfo
- Publication number
- CN113434185A CN113434185A CN202110728813.2A CN202110728813A CN113434185A CN 113434185 A CN113434185 A CN 113434185A CN 202110728813 A CN202110728813 A CN 202110728813A CN 113434185 A CN113434185 A CN 113434185A
- Authority
- CN
- China
- Prior art keywords
- application program
- application
- storage address
- stored
- loading
- 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 33
- 238000012795 verification Methods 0.000 claims description 14
- 238000007796 conventional method Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 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
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- 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
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种在线升级处理器应用程序的方法及其系统,包括:判断是否存在新版本的第一应用程序;若不存在所述第一应用程序,则加载存储于第二存储地址中的初始版本的第二应用程序,否则,存储所述第一应用程序至第一存储地址;在存储所述第一应用程序至所述第一存储地址且存在版本更新命令的情况下,加载所述第一应用程序。本发明通过改进应用程序的存储及调用方法,使得第一应用程序和第二应用程序能够分别存储在不同存储地址中,在存储有所述第一应用程序至所述第一存储地址且存在版本更新命令的情况下,加载所述第一应用程序。并且在加载所述第一应用程序失败的情况下,能够回退至加载存储于所述第二存储地址的所述第二应用程序。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种在线升级处理器应用程序的方法及其系统。
背景技术
随着人工智能技术的发展,智能设备终端的智能化、网联化趋势更加明显,智能设备终端的能力逐步增强。为了保证智能设备终端适应业务需求,需要定期对智能设备终端进行维护,例如,定期对FPGA硬件加速程序进行升级。
但是,传统的升级处理器应用程序的方法存在以下问题:FPGA程序烧写通常通过JTAG接口来实现,需要通过硬件接口现场下载;并且无法完成在线重启。程序下载后,需要断电重启,才能实现加载新程序,此过程存在空档期,且无法远程控制;同时容错率低,当出现更新失败时,则FPGA会停止工作,需要现场重新烧录;以及灵活性差,下载后只能加载最新程序,无法回退版本,且无法控制程序加载时间。
综上所述,传统的升级处理器应用程序的方法存在安全性较低的问题。
发明内容
有鉴于此,本发明提供一种在线升级处理器应用程序的方法及其系统,通过改进应用程序的存储及调用方法,解决了传统的升级处理器应用程序的方法存在的安全性较低的问题。
为解决以上问题,本发明的技术方案为采用一种在线升级处理器应用程序的方法,包括:判断是否存在新版本的第一应用程序;若不存在所述第一应用程序,则加载存储于第二存储地址中的初始版本的第二应用程序,否则,存储所述第一应用程序至第一存储地址;在存储所述第一应用程序至所述第一存储地址且存在版本更新命令的情况下,加载所述第一应用程序。
可选地,所述第二存储地址与所述第一存储地址不同。
可选地,所述在线升级处理器应用程序的方法还包括:在加载所述第一应用程序失败的情况下,回退至加载存储于所述第二存储地址的所述第二应用程序。
可选地,所述在线升级处理器应用程序的方法还包括:在所述第二应用程序运行时,持续判断上位机命令,在所述上位机发送包含所述第一应用程序的更新数据包的情况下,将所述第一应用程序烧录至所述第一存储地址。
可选地,在将所述第一应用程序烧录至所述第一存储地址时,对所述第一应用程序进行校验,若校验失败,则再次请求所述更新数据包并再次进行校验,直至校验成功或请求次数超限,在所述请求次数超限的情况下,回退至加载存储于所述第二存储地址的所述第二应用程序。
相应地,本发明提供,一种在线升级处理器应用程序的系统,包括:上位机单元,用于下发包含第一应用程序的更新数据包和版本更新命令;FPGA单元,用于判断是否存在新版本的第一应用程序,若不存在所述第一应用程序,则加载初始版本的第二应用程序,否则,存储所述第一应用程序至第一存储地址,并在存在版本更新命令的情况下,加载所述第一应用程序。
可选地,所述FPGA单元包括FLASH存储模块,所述第一应用程序存储于所述FLASH存储模块的所述第一存储地址中,所述第二应用程序存储于所述FLASH存储模块的第二存储地址。
可选地,在所述FPGA单元运行所述第二应用程序时,所述FPGA单元持续判断上位机命令,在所述上位机单元发送包含所述第一应用程序的更新数据包的情况下,所述FPGA单元将所述第一应用程序烧录至所述第一存储地址。
可选地,所述FPGA单元在将所述第一应用程序烧录至所述第一存储地址时,对所述第一应用程序进行校验,若校验失败,则再次向所述上位机单元请求所述更新数据包并再次进行校验,直至校验成功或请求次数超限,在所述请求次数超限的情况下,所述FPGA单元回退至加载存储于所述第二存储地址的所述第二应用程序。
本发明的首要改进之处为提供的在线升级处理器应用程序的方法,通过改进应用程序的存储及调用方法,使得第一应用程序和第二应用程序能够分别存储在不同存储地址中,在存储有所述第一应用程序至所述第一存储地址且存在版本更新命令的情况下,加载所述第一应用程序。并且由于存储及加载所述第一应用程序时,所述第二应用程序不会被覆盖,因此在加载所述第一应用程序失败的情况下,能够回退至加载存储于所述第二存储地址的所述第二应用程序,有效解决了传统的升级处理器应用程序的方法存在的安全性较低的问题。
附图说明
图1是本发明的在线升级处理器应用程序的方法的简化流程图;
图2是本发明的在线升级处理器应用程序的系统的简化单元连接图。
具体实施方式
为了使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步的详细说明。
如图1所示,一种在线升级处理器应用程序的方法,包括:判断是否存在新版本的第一应用程序;若不存在所述第一应用程序,则加载存储于第二存储地址中的初始版本的第二应用程序,否则,存储所述第一应用程序至第一存储地址;在存储所述第一应用程序至所述第一存储地址且存在版本更新命令的情况下,加载所述第一应用程序。具体的,所述第二存储地址与所述第一存储地址不同。本发明通过改进应用程序的存储及调用方法,使得应用程序下载后,无需断电重启,即可实现加载新程序,消除了传统升级处理器应用程序的方法存在的系统空档期,有效提升了系统的安全性。
进一步的,所述在线升级处理器应用程序的方法还包括:在加载所述第一应用程序失败的情况下,回退至加载存储于所述第二存储地址的所述第二应用程序,从而避免当出现更新失败时,FPGA停止工作,需要现场重新烧录的问题出现,有效提升FPGA的容错率。
进一步的,所述在线升级处理器应用程序的方法还包括:在所述第二应用程序运行时,持续判断上位机命令,在所述上位机发送包含所述第一应用程序的更新数据包的情况下,将所述第一应用程序烧录至所述第一存储地址。
进一步的,在将所述第一应用程序烧录至所述第一存储地址时,对所述第一应用程序进行校验,若校验失败,则再次请求所述更新数据包并再次进行校验,直至校验成功或请求次数超限,在所述请求次数超限的情况下,回退至加载存储于所述第二存储地址的所述第二应用程序。本发明通过设置版本校验,有效提升了系统的灵活性,避免了下载后只能加载最新程序,无法回退版本,且无法控制程序加载时间的问题出现。其中,请求限制次数可以是10次。
为便于理解本申请的工作方式,现以上位机为PC端进行工作原理说明:FPGA单元的应用程序正常运行的过程中,FPGA单元通过串口持续接受来自PC端的命令,包括擦除命令,数据包命令,重加载命令。其中,不同种类命令的数据包通过不同包头来区别,并且每一个包的最后一个字节为当前包的异或校验结果。在PC端下发擦除命令,FPGA单元收到后,将第一应用程序所在的第一存储地址对应的数据进行擦除,为下载第一应用程序做准备,当FPGA单元擦除完成后,返回成功标志给PC端;PC端收到擦除成功响应后,开始下发所更新数据包,由于更新数据过大,PC端会将数据拆分为多个大小及格式相同的数据包,FPGA单元在收到一个数据包后,将当前数据包做异或校验,并与PC端校验结果做比对,如果结果一致,则将有效数据存储至FLASH,同时反馈至PC端当前包存储完成,如果不一致,则反馈至PC当前包数据错误,PC端收到后会重新发送当前包,重复此流程直至所有数据包下发存储完成或请求次数超限;当更新数据包下载完成之后,FPGA单元会继续等待PC端命令,如果为重加载命令,则FPGA会在线重加载所述第一应用程序,如果为其他种类命令,则执行命令的相应操作。
相应的,如图2所示,本发明提供,一种在线升级处理器应用程序的系统,包括:上位机单元,用于下发包含第一应用程序的更新数据包和版本更新命令;FPGA单元,用于判断是否存在新版本的第一应用程序,若不存在所述第一应用程序,则加载初始版本的第二应用程序,否则,存储所述第一应用程序至第一存储地址,并在存在版本更新命令的情况下,加载所述第一应用程序。
进一步的,所述FPGA单元包括FLASH存储模块,所述第一应用程序存储于所述FLASH存储模块的所述第一存储地址中,所述第二应用程序存储于所述FLASH存储模块的第二存储地址。
进一步的,在所述FPGA单元运行所述第二应用程序时,所述FPGA单元持续判断上位机命令,在所述上位机单元发送包含所述第一应用程序的更新数据包的情况下,所述FPGA单元将所述第一应用程序烧录至所述第一存储地址。
更进一步的,所述FPGA单元在将所述第一应用程序烧录至所述第一存储地址时,对所述第一应用程序进行校验,若校验失败,则再次向所述上位机单元请求所述更新数据包并再次进行校验,直至校验成功或请求次数超限,在所述请求次数超限的情况下,所述FPGA单元回退至加载存储于所述第二存储地址的所述第二应用程序。
本发明通过改进应用程序的存储及调用方法,使得第一应用程序和第二应用程序能够分别存储在不同存储地址中,在存储有所述第一应用程序至所述第一存储地址且存在版本更新命令的情况下,加载所述第一应用程序。并且由于存储及加载所述第一应用程序时,所述第二应用程序不会被覆盖,因此在加载所述第一应用程序失败的情况下,能够回退至加载存储于所述第二存储地址的所述第二应用程序,有效解决了传统的升级处理器应用程序的方法存在的安全性较低的问题。
以上对本发明实施例所提供的在线升级处理器应用程序的方法及其系统进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
Claims (9)
1.一种在线升级处理器应用程序的方法,其特征在于,包括:
判断是否存在新版本的第一应用程序;
若不存在所述第一应用程序,则加载存储于第二存储地址中的初始版本的第二应用程序,否则,存储所述第一应用程序至第一存储地址;
在存储所述第一应用程序至所述第一存储地址且存在版本更新命令的情况下,加载所述第一应用程序。
2.根据权利要求1所述的在线升级处理器应用程序的方法,其特征在于,所述第二存储地址与所述第一存储地址不同。
3.根据权利要求2所述的在线升级处理器应用程序的方法,其特征在于,所述在线升级处理器应用程序的方法还包括:
在加载所述第一应用程序失败的情况下,回退至加载存储于所述第二存储地址的所述第二应用程序。
4.根据权利要求3所述的在线升级处理器应用程序的方法,其特征在于,所述在线升级处理器应用程序的方法还包括:
在所述第二应用程序运行时,持续判断上位机命令,在所述上位机发送包含所述第一应用程序的更新数据包的情况下,将所述第一应用程序烧录至所述第一存储地址。
5.根据权利要求4所述的在线升级处理器应用程序的方法,其特征在于,在将所述第一应用程序烧录至所述第一存储地址时,对所述第一应用程序进行校验,若校验失败,则再次请求所述更新数据包并再次进行校验,直至校验成功或请求次数超限,
在所述请求次数超限的情况下,回退至加载存储于所述第二存储地址的所述第二应用程序。
6.一种在线升级处理器应用程序的系统,其特征在于,包括:
上位机单元,用于下发包含第一应用程序的更新数据包和版本更新命令;
FPGA单元,用于判断是否存在新版本的第一应用程序,若不存在所述第一应用程序,则加载初始版本的第二应用程序,否则,存储所述第一应用程序至第一存储地址,并在存在版本更新命令的情况下,加载所述第一应用程序。
7.根据权利要求6所述的在线升级处理器应用程序的系统,其特征在于,所述FPGA单元包括FLASH存储模块,所述第一应用程序存储于所述FLASH存储模块的所述第一存储地址中,所述第二应用程序存储于所述FLASH存储模块的第二存储地址。
8.根据权利要求7所述的在线升级处理器应用程序的系统,其特征在于,在所述FPGA单元运行所述第二应用程序时,所述FPGA单元持续判断上位机命令,在所述上位机单元发送包含所述第一应用程序的更新数据包的情况下,所述FPGA单元将所述第一应用程序烧录至所述第一存储地址。
9.根据权利要求8所述的在线升级处理器应用程序的系统,其特征在于,所述FPGA单元在将所述第一应用程序烧录至所述第一存储地址时,对所述第一应用程序进行校验,若校验失败,则再次向所述上位机单元请求所述更新数据包并再次进行校验,直至校验成功或请求次数超限,在所述请求次数超限的情况下,所述FPGA单元回退至加载存储于所述第二存储地址的所述第二应用程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110728813.2A CN113434185A (zh) | 2021-06-29 | 2021-06-29 | 一种在线升级处理器应用程序的方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110728813.2A CN113434185A (zh) | 2021-06-29 | 2021-06-29 | 一种在线升级处理器应用程序的方法及其系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113434185A true CN113434185A (zh) | 2021-09-24 |
Family
ID=77757721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110728813.2A Pending CN113434185A (zh) | 2021-06-29 | 2021-06-29 | 一种在线升级处理器应用程序的方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113434185A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120210312A1 (en) * | 2009-10-26 | 2012-08-16 | Zte Corporation | Software upgrading method, software upgrading system and client |
CN104090796A (zh) * | 2014-07-08 | 2014-10-08 | 成都万维图新信息技术有限公司 | 一种嵌入式设备程序更新方法和系统 |
CN107908496A (zh) * | 2017-11-21 | 2018-04-13 | 东峡大通(北京)管理咨询有限公司 | 用于在mcu固件出错后自动恢复的方法和mcu |
CN110244971A (zh) * | 2019-05-28 | 2019-09-17 | 湖北三江航天险峰电子信息有限公司 | 一种基于多重加载的产品在线升级系统及方法 |
CN111651174A (zh) * | 2020-04-23 | 2020-09-11 | 威胜信息技术股份有限公司 | 一种mcu程序远程升级方法和系统 |
CN112527342A (zh) * | 2020-09-23 | 2021-03-19 | 深圳市银星智能科技股份有限公司 | 一种在应用可编程iap固件升级方法、装置和设备 |
-
2021
- 2021-06-29 CN CN202110728813.2A patent/CN113434185A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120210312A1 (en) * | 2009-10-26 | 2012-08-16 | Zte Corporation | Software upgrading method, software upgrading system and client |
CN104090796A (zh) * | 2014-07-08 | 2014-10-08 | 成都万维图新信息技术有限公司 | 一种嵌入式设备程序更新方法和系统 |
CN107908496A (zh) * | 2017-11-21 | 2018-04-13 | 东峡大通(北京)管理咨询有限公司 | 用于在mcu固件出错后自动恢复的方法和mcu |
CN110244971A (zh) * | 2019-05-28 | 2019-09-17 | 湖北三江航天险峰电子信息有限公司 | 一种基于多重加载的产品在线升级系统及方法 |
CN111651174A (zh) * | 2020-04-23 | 2020-09-11 | 威胜信息技术股份有限公司 | 一种mcu程序远程升级方法和系统 |
CN112527342A (zh) * | 2020-09-23 | 2021-03-19 | 深圳市银星智能科技股份有限公司 | 一种在应用可编程iap固件升级方法、装置和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7200845B2 (en) | System and method for high availability firmware load | |
EP1087294B1 (en) | Method and apparatus of remotely updating firmware of a communication device | |
US8136108B2 (en) | Updating firmware with multiple processors | |
US6553490B1 (en) | Computer system including local computer with capability to automatically update operating system or application program from network server | |
US8554748B1 (en) | Method and apparatus for differential file based update for embedded systems | |
US20040015940A1 (en) | Intelligent device upgrade engine | |
US20030106052A1 (en) | System and method for high availability firmware load | |
CN112152846B (zh) | 一种基于物联网的计量仪表远程升级方法 | |
CN102089753B (zh) | 用于在网络上安全地更新瘦客户机操作系统的系统和方法 | |
CN108509215B (zh) | 一种系统软件的更换方法、装置、终端设备及存储介质 | |
CN107566169A (zh) | 一种基于openwrt的固件升级方法及路由器 | |
CN115454469A (zh) | 镜像更新方法、装置、芯片、电子设备及存储介质 | |
CN110580167A (zh) | 一种系统升级方法、智能设备及服务器 | |
CN111338652B (zh) | 一种操作系统镜像制作方法、装置和设备及介质 | |
CN113434185A (zh) | 一种在线升级处理器应用程序的方法及其系统 | |
US6766425B2 (en) | Calibration method implementing segmented flash memory and RAM overlay | |
JP2005284902A (ja) | 端末装置、その制御方法及び制御プログラム、ホスト装置、その制御方法及び制御プログラム、遠隔更新システム、方法及びプログラム | |
CN113377425B (zh) | Bmc固件生成方法和装置、bmc启动方法和装置及存储介质 | |
CN114780122A (zh) | 嵌入式设备固件更新方法以及嵌入式设备 | |
CN114610355A (zh) | 一种适用于电力芯片控制软件的升级方法及装置 | |
Cisco | Miscellaneous System Tasks | |
CN114527994A (zh) | 固件的烧写方法、系统、车辆控制系统 | |
Cisco | Miscellaneous System Tasks | |
CN114064086B (zh) | 多级处理器系统及其升级方法 | |
CN112631637B (zh) | 基于rtos的ota升级方法、系统、设备及存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210924 |