CN114924778A - 一种基于zynq冗余备份的程序升级方法 - Google Patents
一种基于zynq冗余备份的程序升级方法 Download PDFInfo
- Publication number
- CN114924778A CN114924778A CN202210339565.7A CN202210339565A CN114924778A CN 114924778 A CN114924778 A CN 114924778A CN 202210339565 A CN202210339565 A CN 202210339565A CN 114924778 A CN114924778 A CN 114924778A
- Authority
- CN
- China
- Prior art keywords
- program
- mirror image
- data
- area
- index number
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000005192 partition Methods 0.000 claims abstract description 18
- 238000009432 framing Methods 0.000 claims abstract description 11
- 230000009466 transformation Effects 0.000 claims description 16
- 238000004806 packaging method and process Methods 0.000 claims description 13
- 238000012795 verification Methods 0.000 claims description 11
- 238000012856 packing Methods 0.000 claims description 8
- 244000118350 Andrographis paniculata Species 0.000 claims description 5
- 230000009191 jumping Effects 0.000 claims description 5
- 238000013461 design Methods 0.000 abstract description 2
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000007711 solidification Methods 0.000 description 1
- 230000008023 solidification 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/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供—种基于ZYNQ冗余备份的程序升级方法,以下步骤:S1、FLASH存储地址分区;S2产生和固化底层程序MyFsbl数据文件;S3、产生待升级程序数据文件;S4、组帧、发送、接收、解帧和校验;S5、FLASH分区升级;S6、程序升级完毕,断电重启。本发明采用乒乓存储的设计思想,即在程序升级时,主动选择上上次升级的地址,从而达到了保留最近一次程序升级时的数据,即使系统在升级过程发生意外情况,也能够保证系统恢复到上一次升级的程序进行自我修复并正常运行,从而提高了嵌入式系统的可维护性与容错性,乒乓存储的设计思想,可广泛应用于设备的在线升级备份,减少备份时数据拷贝以及因数据拷贝而产生的麻烦。
Description
技术领域
本发明涉及电数字数据处理技术领域,具体涉及一种基于ZYNQ 冗余备份的程序升级方法。
背景技术
ZYNQ的软件程序更新和升级一般是在SDK环境下通过JTAG 接口操作来实现的。基于JTAG接口的升级方法虽然调试方便易于操作,但经常受空间以及传输距离的限制。在复杂、封闭、不可拆盖的环境中,很难用JTAG接口进行程序升级。这种情况下,上位机可通过网口、USB或1553B总线进行在线远程升级,此时不受复杂系统和复杂环境的限制。
在线远程升级时,数据传输错误和FLASH固化发生的错误,可通过多步校验进行解决。当程序升级面临异常情况如断电,导致 FLASH中的数据被擦除或只有部分数据写入时,FLASH数据异常程序无法启动。此时只能通过连接JTAG进行程序固化,如果在复杂环境下,程序固化将变得非常困难。
发明内容
本发明是为了解决ZYNQ远程升级异常FLASH无法启动的问题,提供一种基于ZYNQ冗余备份的程序升级方法,采用乒乓存储的设计思想,每次升级时保留最近一次的升级数据。因此,即使在升级过程中发生意外,也能恢复到最近的程序版本,提高了程序的可维护性和容错性。
本发明提供一种基于ZYNQ冗余备份的程序升级方法,包括以下步骤:
S1、FLASH存储地址分区:将FLASH存储地址划分为底层程序MyFsbl数据区、镜像索引号、镜像版本信息、A程序区和B程序区,镜像索引号用于指示FLASH擦除和写入时的地址跳转;
S2、产生和固化底层程序MyFsbl数据文件:修改标准FSBL程序,增加镜像索引号逻辑控制和软件复位,产生MyFsbl的升级数据文件并固化,镜像索引号逻辑控制用于根据镜像索引号设置 MultiBootReg的跳转长度;
S3、产生待升级程序数据文件:通过SDK打包工具打包待升级的程序数据文件;
S4、组帧、发送、接收、解帧和校验:在上位机中将待升级数据文件进行组帧,上位机通过网口、USB或1553B总线将组帧后的文件发送给ZYNQ,ZYNQ对接收到的数据进行解帧和校验,并将校验核正确的数据存储在DDR中,接收到完整的程序升级数据包后停止接收;
S5、FLASH分区升级:将校验核正确的程序升级数据文件,从 DDR中读出,根据镜像索引号的标志写入A程序区或B程序区中;
写入完毕后,运行镜像索引号逻辑控制,读取写入区的程序数据,写入区为A程序区或B程序区,并与下发的校验核进行校验后判断校验核与写入区的校验核是否一致,如果是,则写入FLASH中的程序数据无误;如果否,则通过奇偶变换更新镜像索引号,并更新镜像版本信息,返回步骤S4;
S6、程序升级完毕,断电重启。
本发明所述的一种基于ZYNQ冗余备份的程序升级方法,作为优选方式,在步骤S1中,通过镜像索引号的奇偶变换,地址在A程序区和B程序区之间进行乒乓存储,以保留上一次程序升级的数据;
镜像版本信息包括A程序区版本信息和B程序区版本信息,镜像版本信息信息包括版本号、版本更新时间、数据长度和数据校验核。
本发明所述的一种基于ZYNQ冗余备份的程序升级方法,作为优选方式,步骤S2包括以下步骤:
S21、通过SDK引入标准的FSBL程序并进行修改,在标准FSBL 程序调用LoadBootImage之前增加镜像索引号的逻辑控制语句,其它程序保持不变;
S22、逻辑控制语句包括:读取镜像索引号和镜像版本信息并判断镜像索引号的奇偶,如果为奇数,则根据镜像版本信息的长度,读取A程序区的数据,计算校验核后判断算校验核与镜像版本信息中A 程序区的校验核是否一致,如果一致,则将MultiBootReg的跳转长度置到A程序区,置软件复位寄存器,进入步骤S24,如果不一致,则进入步骤S23;
如果为偶数,读取B程序区的数据,计算校验核后判断校验核与镜像版本信息中镜像版本信息B程序区的校验核是否一致,如果一致,则将MultiBootReg的跳转长度置到B程序区,置软件复位寄存器,进入步骤S24,如果不一致,则进入步骤S23;
S23、如果校验核不一致,将镜像索引号进行奇偶变换,写回到 FLASH中,置软件复位寄存器;
S24、通过SDK的Creat Boot Image打包工具产生MyFsbl的升级数据文件MyFsbl.bin,并通过SDK的固化工具将MyFsbl.bin固化到FLASH中的底层程序MyFsbl数据区。
本发明所述的一种基于ZYNQ冗余备份的程序升级方法,作为优选方式,底层程序只固化一次,不再擦除和修改,后期只升级应用程序。
本发明所述的一种基于ZYNQ冗余备份的程序升级方法,作为优选方式,在步骤S3,通过SDK打包工具打包待升级的程序,升级程序包括标准的FSBL程序、FPGA的比特流文件和ARM端的应用程序。
本发明所述的一种基于ZYNQ冗余备份的程序升级方法,作为优选方式,步骤S5包括以下步骤:
S51、将校验核正确的程序升级数据文件,从DDR中读出,读取镜像索引号并判断奇偶,如果为奇数,则将程序升级数据文件写入B 程序区;如果为偶数,则将程序升级数据文件写入A程序区;
S52、写入完毕后,读取写入区的程序数据,写入区为A程序区或B程序区,并与下发的校验核进行校验后判断校验核与写入区的校验核是否一致,如果是,则写入FLASH中的程序数据无误,更新镜像索引号进行奇偶变换,并同时更新镜像版本信息;
如果否,则写入FLASH中的程序数据不正确,返回步骤S4。
一种基于ZYNQ冗余备份的程序升级方法,包括以下步骤:
S1、FLASH存储地址分区:将所述FLASH存储地址划分为底层程序MyFsbl数据区、镜像索引号、镜像版本信息、A程序区和B程序区;
S2、产生和固化底层程序MyFsbl数据文件:修改标准FSBL程序,增加镜像索引号的逻辑控制和软件复位,以便根据镜像索引号设置MultiBootReg的跳转长度;
S3、产生待升级程序数据文件:通过SDK打包工具打包待升级的程序数据文件;
S4、组帧、发送、接收、解帧和校验:在上位机中将待升级数据文件进行组帧,上位机通过网口、USB或1553B总线将组帧后的文件发送给ZYNQ,ZYNQ对接收到的数据进行解帧和校验,并将校验核正确的数据存储在DDR中;直到接收到完整的程序升级数据包;
S5、FLASH分区升级:将校验核正确的程序数据文件,从DDR 中读出,根据镜像索引号的标志写入对应的FLASH分区地址中;
S6、程序升级完毕,断电重启。
在步骤S1中,镜像索引号用来指示FLASH擦除和写入时的地址跳转,通过镜像索引号的奇偶变换,地址在A、B程序区之间进行乒乓存储,从而保留了上一次程序升级的数据;在步骤S1中,镜像版本信息包括A、B程序区的两个程序版本信息,信息结构包括但不限于版本号、版本更新时间、数据长度、数据校验核等。
步骤S2进一步包括以下特征:
S21、通过SDK引入标准的FSBL程序,在标准FSBL程序调用 LoadBootImage之前增加镜像索引号的逻辑控制语句,其它程序保持不变;
S22、逻辑控制语句包括:读取镜像索引号和镜像版本信息,如果镜像索引号为奇数,则根据镜像版本信息的长度,读取A程序区的数据,计算校验核,如果该检验核与镜像版本信息A程序区的校验核一致,则将MultiBootReg的跳转长度置到A程序区,置软件复位寄存器;反之,镜像索引号为偶数,读取B程序区的数据,计算校验核,如果该检验核与镜像版本信息B程序区的校验核一致,则将MultiBootReg的跳转长度置到B程序区,置软件复位寄存器;
S23、如果校验核不一致,镜像索引号奇偶变换,写回到FLASH 的镜像索引号中,置软件复位寄存器,
S24、通过SDK的Creat Boot Image打包工具产生MyFsbl的升级数据文件MyFsbl.bin,并通过SDK的固化工具将MyFsbl.bin固化到FLASH中的底层程序MyFsbl数据区;
S25、底层程序只固化一次,不再擦除和修改,后期只升级应用程序。
在步骤S3,通过SDK打包工具打包待升级的程序,升级程序包括标准的FSBL程序、FPGA的比特流文件和ARM端的应用程序;步骤S4技术比较成熟,在此不再详细说明。
步骤S5进一步包括以下步骤:
S51、读取镜像索引号,如果当前镜像索引号为奇数,表示上一次升级的数据在A程序区,则将待升级数据写入B程序区;反之,当前镜像索引号为偶数时,则将待升级数据写入A程序区;写入完毕后,读取该分区的程序数据,并与下发的校验核进行校验,如果一致,则表示写入FLASH中的程序数据无误;
S52、如果写入FLASH中的程序数据正确,则更新镜像索引号进行奇偶变换,并同时更新对应的镜像版本信息;
S53、如果程序数据写入不正确,跳转到步骤S4,上位机重新发送数据,ZYNQ重新接收,直到程序正确升级。
本发明具有以下优点:
(1)通过镜像索引号的奇偶变换,使FLASH擦除和写入地址在 A、B程序区之间乒乓存储,即在程序升级时,主动选择上上次升级的地址,从而达到了保留最近一次程序升级时的数据。即使系统在升级过程发生意外情况,也能够保证系统恢复到上一次升级的程序进行自我修复并正常运行,从而提高了嵌入式系统的可维护性与容错性。乒乓存储的设计思想,可广泛应用于设备的在线升级备份。
(2)通过A、B程序区之间的乒乓存储方式实现程序的冗余备份,该方法减少了备份时的数据拷贝以及因数据拷贝而产生的麻烦
附图说明
图1为一种基于ZYNQ冗余备份的程序升级方法流程图;
图2为一种基于ZYNQ冗余备份的程序升级方法步骤S2流程图;
图3为一种基于ZYNQ冗余备份的程序升级方法步骤S5流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
实施例1
如图1所示,一种基于ZYNQ冗余备份的程序升级方法,包括以下步骤:
S1、FLASH存储地址分区:将FLASH存储地址划分为底层程序 MyFsbl数据区、镜像索引号、镜像版本信息、A程序区和B程序区,镜像索引号用于指示FLASH擦除和写入时的地址跳转;
通过镜像索引号的奇偶变换,地址在A程序区和B程序区之间进行乒乓存储,以保留上一次程序升级的数据;
镜像版本信息包括A程序区版本信息和B程序区版本信息,镜像版本信息信息包括版本号、版本更新时间、数据长度和数据校验核;
如图2所示,S2、产生和固化底层程序MyFsbl数据文件:修改标准FSBL程序,增加镜像索引号逻辑控制和软件复位,产生MyFsbl 的升级数据文件并固化,镜像索引号逻辑控制用于根据镜像索引号设置MultiBootReg的跳转长度;
S21、通过SDK引入标准的FSBL程序并进行修改,在标准FSBL 程序调用LoadBootImage之前增加镜像索引号的逻辑控制语句,其它程序保持不变;
S22、逻辑控制语句包括:读取镜像索引号和镜像版本信息并判断镜像索引号的奇偶,如果为奇数,则根据镜像版本信息的长度,读取A程序区的数据,计算校验核后判断校验核与镜像版本信息中A 程序区的校验核是否一致,如果一致,则将MultiBootReg的跳转长度置到A程序区,置软件复位寄存器,进入步骤S24,如果不一致,则进入步骤S23;
如果为偶数,读取B程序区的数据,计算校验核后判断所述校验核与所述镜像版本信息中B程序区的校验核是否一致,如果一致,则将MultiBootReg的跳转长度置到B程序区,置软件复位寄存器,进入步骤S24,如果不一致,则进入步骤S23;
S23、将镜像索引号进行奇偶变换,写回到FLASH中,置软件复位寄存器;
S24、通过SDK的Creat Boot Image打包工具产生MyFsbl的升级数据文件MyFsbl.bin,并通过SDK的固化工具将MyFsbl.bin固化到FLASH中的底层程序MyFsbl数据区;
步骤S2用于系统启动;
S3、产生待升级程序数据文件:通过SDK打包工具打包待升级的程序数据文件;
通过SDK打包工具打包待升级的程序,升级程序包括标准的 FSBL程序、FPGA的比特流文件和ARM端的应用程序;
S4、组帧、发送、接收、解帧和校验:在上位机中将待升级数据文件进行组帧,上位机通过网口、USB或1553B总线将组帧后的文件发送给ZYNQ,ZYNQ对接收到的数据进行解帧和校验,并将校验核正确的数据存储在DDR中,接收到完整的程序升级数据包后停止接收;
如图3所示,S5、FLASH分区升级:将校验核正确的程序升级 数据文件,从DDR中读出,根据镜像索引号的标志写入A程序区或 B程序区中;
写入完毕后,运行镜像索引号逻辑控制,读取写入区的程序数据,写入区为A程序区或B程序区,并与下发的校验核进行校验后判断校验核与所述写入区的校验核是否一致,如果是,则写入FLASH中的程序数据无误;如果否,则通过奇偶变换更新镜像索引号,并更新镜像版本信息,返回步骤S4;
S51、将校验核正确的程序升级数据文件,从DDR中读出,读取镜像索引号并判断奇偶,如果为奇数,则将程序升级数据文件写入B 程序区;如果为偶数,则将程序升级数据文件写入A程序区;
S52、写入完毕后,读取写入区的程序数据,并与下发的校验核进行校验后判断校验核与写入区的校验核是否一致,如果是,则写入 FLASH中的程序数据无误,更新镜像索引号进行奇偶变换,并同时更新镜像版本信息;
如果否,则写入FLASH中的程序数据不正确,返回步骤S4;
S6、程序升级完毕,断电重启。
实施例2
一种基于ZYNQ冗余备份的程序升级方法,如图1所示,包括以下步骤:
S1、FLASH存储地址分区:将所述FLASH存储地址划分为底层程序MyFsbl数据区、镜像索引号、镜像版本信息、A程序区和B程序区。其中镜像索引号用来指示FLASH擦除和写入时的地址跳转,通过镜像索引号的奇偶变换,地址在A、B程序区之间乒乓存储;镜像版本信息包括A、B区的两个程序版本信息,信息结构包括但不限于版本号、版本更新时间、数据长度、数据校验核等信息。实施例中, ZYNQ型号为7Z100,其FLASH存储空间32MB,块大小为64KB,分区地址64KB对齐,案例中FLASH存储地址分区如下表所示。
S2、产生和固化底层程序MyFsbl数据文件,步骤S2进一步包括以下特征:
S21、通过SDK引入标准的FSBL程序,在标准FSBL程序调用 LoadBootImage之前增加镜像索引号的逻辑控制语句(流程如图2所示),其它语句保持不变;
S22、逻辑控制语句包括:读取镜像索引号和镜像版本信息,如果镜像索引号为奇数,则根据镜像版本信息的长度,读取A程序区的数据,计算校验核,如果该检验核与镜像版本信息A程序区的校验核一致,则将MultiBootReg的跳转长度置到A程序区(实施例中,MultiBootReg置为32),置软件复位寄存器;反之,镜像索引号为偶数,读取B程序区的数据,计算校验核,如果该检验核与镜像版本信息B程序区的校验核一致,则将MultiBootReg的跳转长度置到B 程序区(实施例中,MultiBootReg置为512),置软件复位寄存器;
S23、如果校验核不一致,镜像索引号奇偶变换,写回到FLASH 的镜像索引号中,置软件复位寄存器,
S24、通过SDK的Creat Boot Image打包工具产生MyFsbl的升级数据文件MyFsbl.bin,并通过SDK的固化工具将MyFsbl.bin固化到FLASH中的MyFsbl程序区;
S25、底层程序只固化一次,不再擦除和修改,后期只升级应用程序。
S3、产生待升级的程序数据文件:通过SDK打包工具打包待升级的程序,升级程序包括标准的FSBL程序,FPGA的比特流文件和 ARM端的应用程序;
S4、组帧、发送、接收、解帧和校验:在上位机中将待升级数据文件进行组帧,上位机通过网口、USB或1553B总线将组帧后的文件发送给ZYNQ,ZYNQ对接收到的数据进行解帧和校验,并将校验核正确的数据存储在DDR中;直到接收到完整的程序升级数据包;
S5、FLASH分区升级:将校验核正确的程序数据文件,从DDR 中读出,根据镜像索引号的标志写入对应的FLASH分区地址中,其逻辑控制流程如图3所示,步骤S5进一步包括以下步骤:
S51、读取镜像索引号,如果当前镜像索引号为奇数,表示上一次升级的数据在A程序区,则将待升级数据写入B程序区;反之,当前镜像索引号为偶数时则将待升级数据写入A程序区;写入完毕后,读取该分区的程序数据,并与下发的校验核进行校对,如果一致,则写入FLASH中的程序数据无误;
S52、如果写入FLASH中的程序数据正确,则更新镜像索引号进行奇偶变换,并同时更新对应的镜像版本信息;
S53、如果程序数据写入不正确,跳转到步骤S4,上位机重新发送数据,ZYNQ重新接收,直到程序正确升级
S6、程序升级完毕,断电重启。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (6)
1.一种基于ZYNQ冗余备份的程序升级方法,其特征在于:包括以下步骤:
S1、FLASH存储地址分区:将FLASH存储地址划分为底层程序MyFsbl数据区、镜像索引号、镜像版本信息、A程序区和B程序区,所述镜像索引号用于指示FLASH擦除和写入时的地址跳转;
S2、产生和固化底层程序MyFsbl数据文件:修改标准FSBL程序,增加镜像索引号逻辑控制和软件复位,产生MyFsbl的升级数据文件并固化,所述镜像索引号逻辑控制用于根据所述镜像索引号设置MultiBootReg的跳转长度;
S3、产生待升级程序数据文件:通过SDK打包工具打包待升级的程序数据文件;
S4、组帧、发送、接收、解帧和校验:在上位机中将待升级数据文件进行组帧,所述上位机通过网口、USB或1553B总线将组帧后的文件发送给ZYNQ,所述ZYNQ对接收到的数据进行解帧和校验,并将校验核正确的数据存储在DDR中,接收到完整的程序升级数据包后停止接收;
S5、FLASH分区升级:将校验核正确的程序升级数据文件,从DDR中读出,根据镜像索引号的标志写入所述A程序区或所述B程序区中;
写入完毕后,运行所述镜像索引号逻辑控制,读取写入区的程序数据,所述写入区为所述A程序区或所述B程序区,并与下发的校验核进行校验后判断所述校验核与所述写入区的校验核是否一致,如果是,则写入FLASH中的程序数据无误;如果否,则通过奇偶变换更新所述镜像索引号,并更新所述镜像版本信息,返回步骤S4;
S6、程序升级完毕,断电重启。
2.根据权利要求1所述的—种基于ZYNQ冗余备份的程序升级方法,其特征在于:在步骤S1中,通过所述镜像索引号的奇偶变换,地址在所述A程序区和所述B程序区之间进行乒乓存储,以保留上一次程序升级的数据;
所述镜像版本信息包括A程序区版本信息和B程序区版本信息,所述镜像版本信息信息包括版本号、版本更新时间、数据长度和数据校验核。
3.根据权利要求1所述的—种基于ZYNQ冗余备份的程序升级方法,其特征在于:步骤S2包括以下步骤:
S21、通过SDK引入标准的FSBL程序并进行修改,在标准FSBL程序调用LoadBootImage之前增加所述镜像索引号的逻辑控制语句,其它程序保持不变;
S22、所述逻辑控制语句包括:读取所述镜像索引号和所述镜像版本信息并判断所述镜像索引号的奇偶,如果为奇数,则根据所述镜像版本信息的长度,读取所述A程序区的数据,计算校验核后判断所述校验核与所述镜像版本信息中所述A程序区的校验核是否一致,如果一致,则将MultiBootReg的跳转长度置到A程序区,置软件复位寄存器,进入步骤S24,如果不一致,则进入步骤S23;
如果为偶数,读取B程序区的数据,计算校验核后判断所述校验核与所述镜像版本信息中所述B程序区的校验核是否一致,如果一致,则将MultiBootReg的跳转长度置到B程序区,置软件复位寄存器,进入步骤S24,如果不一致,则进入步骤S23;
S23、将所述镜像索引号进行奇偶变换,写回到FLASH中,置软件复位寄存器;
S24、通过SDK的Creat Boot Image打包工具产生MyFsbl的升级数据文件MyFsbl.bin,并通过SDK的固化工具将MyFsbl.bin固化到FLASH中的底层程序MyFsbl数据区。
4.根据权利要求3所述的—种基于ZYNQ冗余备份的程序升级方法,其特征在于:底层程序只固化一次,不再擦除和修改,后期只升级应用程序。
5.根据权利要求1所述的—种基于ZYNQ冗余备份的程序升级方法,其特征在于:在步骤S3,通过SDK打包工具打包待升级的程序,升级程序包括标准的FSBL程序、FPGA的比特流文件和ARM端的应用程序。
6.根据权利要求1所述的—种基于ZYNQ冗余备份的程序升级方法,其特征在于:步骤S5包括以下步骤:
S51、将校验核正确的程序升级数据文件,从DDR中读出,读取所述镜像索引号并判断奇偶,如果为奇数,则将所述程序升级数据文件写入所述B程序区;如果为偶数,则将所述程序升级数据文件写入所述A程序区;
S52、写入完毕后,读取所述写入区的程序数据,所述写入区为所述A程序区或所述B程序区,并与下发的校验核进行校验后判断所述校验核与所述写入区的校验核是否一致,如果是,则写入FLASH中的程序数据无误,更新所述镜像索引号进行奇偶变换,并同时更新所述镜像版本信息;
如果否,则写入FLASH中的程序数据不正确,返回步骤S4。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210339565.7A CN114924778B (zh) | 2022-04-01 | 2022-04-01 | 一种基于zynq冗余备份的程序升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210339565.7A CN114924778B (zh) | 2022-04-01 | 2022-04-01 | 一种基于zynq冗余备份的程序升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114924778A true CN114924778A (zh) | 2022-08-19 |
CN114924778B CN114924778B (zh) | 2024-04-26 |
Family
ID=82804900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210339565.7A Active CN114924778B (zh) | 2022-04-01 | 2022-04-01 | 一种基于zynq冗余备份的程序升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114924778B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004102823A (ja) * | 2002-09-11 | 2004-04-02 | Toshiba Corp | 冗長化論理ディスクに対するライトスルー処理方法、ライトスルー処理用プログラム及びディスクコントローラ |
US7415488B1 (en) * | 2004-12-31 | 2008-08-19 | Symantec Operating Corporation | System and method for redundant storage consistency recovery |
CN102110154A (zh) * | 2011-02-21 | 2011-06-29 | 中国科学院计算技术研究所 | 一种集群文件系统中文件冗余存储方法 |
WO2015070521A1 (zh) * | 2013-11-12 | 2015-05-21 | 上海斐讯数据通信技术有限公司 | 将ubi格式的系统文件制作成工厂烧录映像文件方法 |
CN107247603A (zh) * | 2017-04-18 | 2017-10-13 | 深圳市广和通无线股份有限公司 | 支持固件自动恢复功能的远程升级方法与系统 |
CN111309363A (zh) * | 2020-03-07 | 2020-06-19 | 重庆邮电大学 | 基于Contiki操作系统的在线升级方法及装置 |
CN113867750A (zh) * | 2021-08-11 | 2021-12-31 | 北京航天长征飞行器研究所 | 一种soc处理器软件在线升级方法 |
-
2022
- 2022-04-01 CN CN202210339565.7A patent/CN114924778B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004102823A (ja) * | 2002-09-11 | 2004-04-02 | Toshiba Corp | 冗長化論理ディスクに対するライトスルー処理方法、ライトスルー処理用プログラム及びディスクコントローラ |
US7415488B1 (en) * | 2004-12-31 | 2008-08-19 | Symantec Operating Corporation | System and method for redundant storage consistency recovery |
CN102110154A (zh) * | 2011-02-21 | 2011-06-29 | 中国科学院计算技术研究所 | 一种集群文件系统中文件冗余存储方法 |
WO2015070521A1 (zh) * | 2013-11-12 | 2015-05-21 | 上海斐讯数据通信技术有限公司 | 将ubi格式的系统文件制作成工厂烧录映像文件方法 |
CN107247603A (zh) * | 2017-04-18 | 2017-10-13 | 深圳市广和通无线股份有限公司 | 支持固件自动恢复功能的远程升级方法与系统 |
CN111309363A (zh) * | 2020-03-07 | 2020-06-19 | 重庆邮电大学 | 基于Contiki操作系统的在线升级方法及装置 |
CN113867750A (zh) * | 2021-08-11 | 2021-12-31 | 北京航天长征飞行器研究所 | 一种soc处理器软件在线升级方法 |
Non-Patent Citations (2)
Title |
---|
王尧;李荣冰;孙永荣;周颖;王嘉诚;: "DSP在线升级容错性能的研究", 电子测量技术, no. 11, 15 November 2017 (2017-11-15) * |
贾金艳;陈海峰;向晏冰;李平;: "飞行器上设备软件在线升级方案设计与应用", 工业仪表与自动化装置, no. 03, 15 June 2017 (2017-06-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN114924778B (zh) | 2024-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102117234B (zh) | 移动终端在软件升级失败时恢复原有软件的方法 | |
US20110004871A1 (en) | Embedded electronic device and firmware updating method thereof | |
CN107179909A (zh) | 软件升级方法、装置及计算机可读存储介质 | |
CN105930236A (zh) | 一种基于BMS Bootloader升级的应用程序版本回退方法 | |
CN102163155A (zh) | 存储设备的升级方法及升级控制装置 | |
CN109933340B (zh) | 一种航天器eeprom基于页模式的在轨写入和自检方法 | |
CN111651174A (zh) | 一种mcu程序远程升级方法和系统 | |
US11144299B2 (en) | Firmware updating method | |
KR102106449B1 (ko) | 함수 결함을 복구하는 방법, 장치 및 서버 | |
CN106980557B (zh) | 一种基于存储分区的星载软件异构备份方法 | |
CN114924778A (zh) | 一种基于zynq冗余备份的程序升级方法 | |
US7257030B2 (en) | Operating a storage component | |
CN112148339A (zh) | 一种双核芯片及其程序更新方法 | |
CN114968317B (zh) | 一种基于zynq防呆设计的程序升级方法 | |
CN111352764B (zh) | 一种芯片修复的方法、装置、设备及存储介质 | |
CN114356653A (zh) | 一种工控防火墙掉电保护方法及装置 | |
CN114398087A (zh) | 一种提高单片机更新程序后运行稳定性的方法及单片机 | |
CN111104256A (zh) | 一种数据读取方法、装置、设备及存储介质 | |
CN113010114A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN117992099A (zh) | 一种基于fpga的主备程序升级系统及方法 | |
CN109408287B (zh) | 一种数据可靠性的存储及恢复方法、系统及装置 | |
CN113626246A (zh) | 单比特翻转快速修复方法、装置、计算机设备和存储介质 | |
CN117971273A (zh) | Mcu软件更新方法、电池管理系统和计算机可读存储介质 | |
CN114968659A (zh) | 一种高可靠性的惯测组合dsp软件在线升级方法及惯测组合 | |
CN116149693A (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 |