CN117992099A - 一种基于fpga的主备程序升级系统及方法 - Google Patents

一种基于fpga的主备程序升级系统及方法 Download PDF

Info

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
Application number
CN202410246618.XA
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.)
Chengdu Aerospace Communication Equipment Co ltd
University of Electronic Science and Technology of China
Original Assignee
Chengdu Aerospace Communication Equipment Co ltd
University of Electronic Science and Technology of China
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 Chengdu Aerospace Communication Equipment Co ltd, University of Electronic Science and Technology of China filed Critical Chengdu Aerospace Communication Equipment Co ltd
Priority to CN202410246618.XA priority Critical patent/CN117992099A/zh
Publication of CN117992099A publication Critical patent/CN117992099A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及程序升级技术领域,公开了一种基于FPGA的主备程序升级系统及方法,该系统,包括相互通信连接的软件升级PC机、升级器件。本发明解决了现有技术存在的容易出现升级故障等问题。

Description

一种基于FPGA的主备程序升级系统及方法
技术领域
本发明涉及程序升级技术领域,具体是一种基于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程序。
CN202410246618.XA 2024-03-05 2024-03-05 一种基于fpga的主备程序升级系统及方法 Pending CN117992099A (zh)

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)

Similar Documents

Publication Publication Date Title
CN106095620B (zh) 一种嵌入式Linux存储分区的开发方法
CN101937340B (zh) 使用补丁对软件进行动态升级与控制的方法和装置
CN104239082A (zh) 嵌入式系统的热补丁实现方法
US20110004871A1 (en) Embedded electronic device and firmware updating method thereof
CN105808292A (zh) 嵌入式终端设备的固件升级方法
CN102073517A (zh) 一种嵌入式系统的升级、备份方法和装置
CN113377408B (zh) 一种高可靠sram型fpga在线升级方法及系统
CN112947977B (zh) 一种软件在线升级方法及系统
CN112379932B (zh) 电子设备的Boot方法、Boot装置和电子设备
CN101593120A (zh) 带外升级方法和系统
CN105653330A (zh) 一种基于SD卡的NorFlash烧写系统和方法
CN115840579A (zh) Fpga远程更新方法、系统、贴片机及存储介质
CN115718610A (zh) 一种可靠的单片机应用程序更新的方法
CN110716721A (zh) 兼容网口和串口的tms320c6748程序加载方法
CN100353321C (zh) 具有主用和备用引导程序的系统及启动方法
CN117992099A (zh) 一种基于fpga的主备程序升级系统及方法
CN102184115B (zh) 升级系统软件的方法及终端设备
CN116501357A (zh) 一种单片机的在线升级方法
CN111290765B (zh) 一种固件快速烧录方法、系统及存储介质
CN113380308B (zh) 一种使用pflash软件模拟eeprom的数据存储方法
CN114995852A (zh) 一种设备升级方法、设备及计算机可读存储介质
JP2001117766A (ja) マスクromのパッチ機能を備えた情報処理装置
CN102023906B (zh) 便携式终端的微处理器、便携式终端及其修复方法
KR100811559B1 (ko) 비휘발성 메모리의 데이터 저장영역 관리 방법 및 장치
CN114816023B (zh) 服务器备电功能优化方法、系统、终端及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination