CN117992099A - 一种基于fpga的主备程序升级系统及方法 - Google Patents
一种基于fpga的主备程序升级系统及方法 Download PDFInfo
- Publication number
- CN117992099A CN117992099A CN202410246618.XA CN202410246618A CN117992099A CN 117992099 A CN117992099 A CN 117992099A CN 202410246618 A CN202410246618 A CN 202410246618A CN 117992099 A CN117992099 A CN 117992099A
- Authority
- CN
- China
- Prior art keywords
- program
- boot
- bin
- main
- upgrading
- 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 20
- 230000006870 function Effects 0.000 claims description 27
- 238000005192 partition Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 230000009191 jumping Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 description 6
- 230000007547 defect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008023 solidification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007711 solidification 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
- 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
- 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/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- 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/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
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 Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及程序升级技术领域,公开了一种基于FPGA的主备程序升级系统及方法,该系统,包括相互通信连接的软件升级PC机、升级器件。本发明解决了现有技术存在的容易出现升级故障等问题。
Description
技术领域
本发明涉及程序升级技术领域,具体是一种基于FPGA的主备程序升级系统及方法。
背景技术
程序的升级作为ZYNQ芯片的基本功能,传统升级方法是通过外挂仿真器方式进行。此方法存在受设备限制,效率低等缺陷。
因此新的升级方案大多采用设计思路:PC机通过上位机软件将升级程序经过有线链路传到ZYNQ,ZYNQ将程序存入到程序启动FLASH相应地址。
但是,对于新的升级方案,由于设计了更多外设环节,在升级过程中出现断电、上位机程序故障都会导致升级程序未能正常储存到启动FLASH中,设备无法正常升级。最终不仅升级前的正常功能无法实现,而且进行错误的修改的PC升级功能也无法实现。
发明内容
为克服现有技术的不足,本发明提供了一种基于FPGA的主备程序升级系统及方法,解决现有技术存在的容易出现升级故障等问题。
本发明解决上述问题所采用的技术方案是:
一种基于FPGA的主备程序升级系统,包括相互通信连接的软件升级PC机、升级器件。
作为一种优选的技术方案,升级器件包括ZYNQ-7000芯片。
作为一种优选的技术方案,升级器件还包括与ZYNQ-7000芯片通信连接的存储器。
作为一种优选的技术方案,存储器为FLASH存储器。
作为一种优选的技术方案,存储器的型号为JFM25F128A。
作为一种优选的技术方案,软件升级PC机、升级器件通过网线通信连接。
一种基于FPGA的主备程序升级方法,采用所述的一种基于FPGA的主备程序升级系统进行程序升级。
作为一种优选的技术方案,在存储器中存储两份升级固化程序,分别是主用升级固化程序boot_main.bin、备用升级固化程序boot_backup.bin;其中,boot_main.bin包含升级器件所有功能的程序,boot_backup.bin程序是将升级器件的其他功能进行裁剪,仅保留升级一项功能的程序。
作为一种优选的技术方案,boot_main.bin程序启动包括如下步骤:
A1,启动boot_main.bin程序的FSBL;
A2,初始化boot_main.bin程序的MIO、CLOCK、DDR;
A3,获得boot_main.bin程序所在的存储器地址的分区信息,确认boot_main.bin程序的启动程序的头部信息;
A4,从boot_main.bin程序所在的存储器地址读取boot_main.bin程序的启动程序的头部信息的首个字节,判断首个字节是否为boot_main.bin首字节;若是,则进入步骤A5;若否,则进入步骤A6;
A5,从boot_main.bin程序所在的存储器地址加载启动boot_main.bin程序;
A6,跳转到boot_backup.bin程序所在的存储器地址,加载启动boot_backup.bin程序。
作为一种优选的技术方案,boot_backup.bin程序启动包括如下步骤:
B1,启动boot_backup.bin程序的FSBL;
B2,初始化boot_backup.bin程序的MIO、CLOCK、DDR;
B3,获得boot_backup.bin程序所在的存储器地址的分区信息,确认boot_backup.bin程序的启动程序的头部信息;
B4,从boot_backup.bin程序所在的存储器地址加载启动boot_backup.bin程序。
本发明相比于现有技术,具有以下有益效果:
(1)本发明架构发挥了PC机通过网线链路传到ZYNQ,ZYNQ将程序存入到程序启动FLASH相应地址,此发明克服了传统升级方法是通过外挂仿真器方式进行升级的缺点,使得程序升级效率更高、使用更便捷;
(2)本发明创新设计了主备两套升级程序方案,克服了以下问题:升级过程中出现断电、上位机程序故障都会导致升级程序未能正常储存到启动FLASH中,设备无法正常升级,最终不仅升级前的正常功能无法实现,而且进行错误的修改的PC升级功能也无法实现;本发明主备方案在主程序不能正常工作时,可以运行包含升级功能的备程序,使得设备还有重新升级并且恢复正常升级程序功能优势,使得整体方案实用性、鲁棒性更强;
(3)本发明主备程序根据应用需求,设计成主全功能程序,备仅含升级功能程序,而不是1套全功能程序存两份,大大减小了两套程序储存空间,选用的存储芯片也是国产化芯片,本发明方案在适应国内国产化趋势下,还有效降低了成本。
附图说明
图1为本发明所述的一种基于FPGA的主备程序升级系统的硬件架构框图;
图2为BOOT.bin文件结构图;
图3为FLASH存储程序对应地址示意图;
图4为boot_backup.bin程序启动流程图;
图5为boot_main.bin程序启动流程图。
具体实施方式
下面结合实施例及附图,对本发明作进一步的详细说明,但本发明的实施方式不限于此。
实施例1
如图1至图5所示,本发明硬件包括软件升级PC机和升级器件。升级程序通过网线进行传输。
本发明选用Xilinx系列的ZYNQ-7000芯片,该芯片在开发时使用的JTAG调试下载进去的二进制文件断电后会丢失的。想要芯片设备重启之后继续能够工作需要对程序进行固化(即将程序存储在非易失性存储器中)。
根据ZYNQ-7000芯片升级程序的固化属性,选择片外非易失性存储器(Quad SPIFLASH模式),选用JFM25F128A国产FLASH作为固化程序存储。该产品是一款串行SPI FLASH存储器,属于非挥发存储器,可多次写入读出,具有在电源撤除后,仍然保持存储的数据信息的特性。可用于整机系统中的程序存储介质,也可以作为小容量数据存储介质。
对于需要固化的程序通过芯片开发软件生成BOOT.bin文件,其文件结构如图,将BOOT.bin文件存储到FLASH中,升级器件每次上电重启都能够自动运行。
本发明存储在FLASH中设计两套主备升级固化程序(boot_main.bin和boot_backup.bin)。在FLASH选定两块对应地址分别存储主备升级固化程序。如图3。boot_main.bin程序是包含升级器件所有功能的程序。boot_backup.bin程序是将升级器件的其他功能进行裁剪,保留升级一项功能的程序。
boot_backup.bin的设计在功能上仅设计升级功能,单一功能保证了程序的鲁棒性,而且程序占用存储空间小,也大大降低了成本。程序启动顺序流程如图4。
boot_backup.bin程序启动包括如下步骤:
B1,启动boot_backup.bin程序的FSBL;
B2,初始化boot_backup.bin程序的MIO、CLOCK、DDR;
B3,获得boot_backup.bin程序所在的存储器地址的分区信息,确认boot_backup.bin程序的启动程序的头部信息;
B4,从boot_backup.bin程序所在的存储器地址加载启动boot_backup.bin程序。
boot_main.bin包含升级器件所有功能的程序,保证升级器件完整功能的程序。根据bin文件组成,在其FSBL启动代码上进行功能的添加。程序启动顺序流程如图5。
boot_main.bin通过开发软件生成后都能够读取生成文件16进制信息,知晓其首字节。生成文件的FSBL代码部分添加的功能如示意图读取选定FLASH的A区域,将读取启动程序头首个字节,将提前知晓的boot_main.bin首字节进行对比,如果一样从选定FLASH的A区域,加载启动A区域boot_main.bin程序,不一样跳转到选定FLASH的B区域,加载启动B区域boot_backup.bin程序。
boot_main.bin程序启动包括如下步骤:
A1,启动boot_main.bin程序的FSBL;
A2,初始化boot_main.bin程序的MIO、CLOCK、DDR;
A3,获得boot_main.bin程序所在的存储器地址的分区信息,确认boot_main.bin程序的启动程序的头部信息;
A4,从boot_main.bin程序所在的存储器地址读取boot_main.bin程序的启动程序的头部信息的首个字节,判断首个字节是否为boot_main.bin首字节;若是,则进入步骤A5;若否,则进入步骤A6;
A5,从boot_main.bin程序所在的存储器地址加载启动boot_main.bin程序;
A6,跳转到boot_backup.bin程序所在的存储器地址,加载启动boot_backup.bin程序。
本发明具有如下技术效果:
(1)本发明架构发挥了PC机通过网线链路传到ZYNQ,ZYNQ将程序存入到程序启动FLASH相应地址,此发明克服了传统升级方法是通过外挂仿真器方式进行升级的缺点,使得程序升级效率更高、使用更便捷;
(2)本发明创新设计了主备两套升级程序方案,克服了以下问题:升级过程中出现断电、上位机程序故障都会导致升级程序未能正常储存到启动FLASH中,设备无法正常升级,最终不仅升级前的正常功能无法实现,而且进行错误的修改的PC升级功能也无法实现;本发明主备方案在主程序不能正常工作时,可以运行包含升级功能的备程序,使得设备还有重新升级并且恢复正常升级程序功能优势,使得整体方案实用性、鲁棒性更强;
(3)本发明主备程序根据应用需求,设计成主全功能程序,备仅含升级功能程序,而不是1套全功能程序存两份,大大减小了两套程序储存空间,选用的存储芯片也是国产化芯片,本发明方案在适应国内国产化趋势下,还有效降低了成本。
如上所述,可较好地实现本发明。
本说明书中所有实施例公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合和/或扩展、替换。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,依据本发明的技术实质,在本发明的精神和原则之内,对以上实施例所作的任何简单的修改、等同替换与改进等,均仍属于本发明技术方案的保护范围之内。
Claims (10)
1.一种基于FPGA的主备程序升级系统,其特征在于,包括相互通信连接的软件升级PC机、升级器件。
2.根据权利要求1所述的一种基于FPGA的主备程序升级系统,其特征在于,升级器件包括ZYNQ-7000芯片。
3.根据权利要求2所述的一种基于FPGA的主备程序升级系统,其特征在于,升级器件还包括与ZYNQ-7000芯片通信连接的存储器。
4.根据权利要求3所述的一种基于FPGA的主备程序升级系统,其特征在于,存储器为FLASH存储器。
5.根据权利要求4所述的一种基于FPGA的主备程序升级系统,其特征在于,存储器的型号为JFM25F128A。
6.根据权利要求3至5任一项所述的一种基于FPGA的主备程序升级系统,其特征在于,软件升级PC机、升级器件通过网线通信连接。
7.一种基于FPGA的主备程序升级方法,其特征在于,采用权利要求3至6任一项所述的一种基于FPGA的主备程序升级系统进行程序升级。
8.根据权利要求7所述的一种基于FPGA的主备程序升级方法,其特征在于,在存储器中存储两份升级固化程序,分别是主用升级固化程序boot_main.bin、备用升级固化程序boot_backup.bin;其中,boot_main.bin包含升级器件所有功能的程序,boot_backup.bin程序是将升级器件的其他功能进行裁剪,仅保留升级一项功能的程序。
9.根据权利要求8所述的一种基于FPGA的主备程序升级方法,其特征在于,boot_main.bin程序启动包括如下步骤:
A1,启动boot_main.bin程序的FSBL;
A2,初始化boot_main.bin程序的MIO、CLOCK、DDR;
A3,获得boot_main.bin程序所在的存储器地址的分区信息,确认boot_main.bin程序的启动程序的头部信息;
A4,从boot_main.bin程序所在的存储器地址读取boot_main.bin程序的启动程序的头部信息的首个字节,判断首个字节是否为boot_main.bin首字节;若是,则进入步骤A5;若否,则进入步骤A6;
A5,从boot_main.bin程序所在的存储器地址加载启动boot_main.bin程序;
A6,跳转到boot_backup.bin程序所在的存储器地址,加载启动boot_backup.bin程序。
10.根据权利要求8或9所述的一种基于FPGA的主备程序升级方法,其特征在于,boot_backup.bin程序启动包括如下步骤:
B1,启动boot_backup.bin程序的FSBL;
B2,初始化boot_backup.bin程序的MIO、CLOCK、DDR;
B3,获得boot_backup.bin程序所在的存储器地址的分区信息,确认boot_backup.bin程序的启动程序的头部信息;
B4,从boot_backup.bin程序所在的存储器地址加载启动boot_backup.bin程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410246618.XA CN117992099A (zh) | 2024-03-05 | 2024-03-05 | 一种基于fpga的主备程序升级系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410246618.XA CN117992099A (zh) | 2024-03-05 | 2024-03-05 | 一种基于fpga的主备程序升级系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117992099A true CN117992099A (zh) | 2024-05-07 |
Family
ID=90891424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410246618.XA Pending CN117992099A (zh) | 2024-03-05 | 2024-03-05 | 一种基于fpga的主备程序升级系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117992099A (zh) |
-
2024
- 2024-03-05 CN CN202410246618.XA patent/CN117992099A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113377408B (zh) | 一种高可靠sram型fpga在线升级方法及系统 | |
CN106227680B (zh) | 一种数据处理及防掉电数据保护方法 | |
CN104239082A (zh) | 嵌入式系统的热补丁实现方法 | |
CN105808292A (zh) | 嵌入式终端设备的固件升级方法 | |
CN110032377B (zh) | 通信模块软件升级方法、系统及通信模块 | |
CN103365696A (zh) | Bios镜像文件获取方法及装置 | |
CN101593120A (zh) | 带外升级方法和系统 | |
CN112947977A (zh) | 一种软件在线升级方法及系统 | |
CN110716721A (zh) | 兼容网口和串口的tms320c6748程序加载方法 | |
CN112925569A (zh) | 一种固件数据处理方法、装置、设备及存储介质 | |
CN115840579A (zh) | Fpga远程更新方法、系统、贴片机及存储介质 | |
CN102446101A (zh) | 固件强制升级的系统及其固件的强制升级方法 | |
CN100353321C (zh) | 具有主用和备用引导程序的系统及启动方法 | |
CN101083817B (zh) | 一种动态更换移动台字库模块的方法 | |
CN117992099A (zh) | 一种基于fpga的主备程序升级系统及方法 | |
CN117524278A (zh) | 动态随机存储器兼容方法、装置和设备 | |
CN117034294A (zh) | 一种低成本bootloader在线安全固化及安全启动方法 | |
CN102184115B (zh) | 升级系统软件的方法及终端设备 | |
CN111290765B (zh) | 一种固件快速烧录方法、系统及存储介质 | |
CN113380308B (zh) | 一种使用pflash软件模拟eeprom的数据存储方法 | |
CN114995852A (zh) | 一种设备升级方法、设备及计算机可读存储介质 | |
JP2001117766A (ja) | マスクromのパッチ機能を備えた情報処理装置 | |
CN102023906B (zh) | 便携式终端的微处理器、便携式终端及其修复方法 | |
CN102736985A (zh) | 数据合并方法、控制器与储存装置 | |
CN114816023B (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 |