一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于ARM和FPGA的一体化升级方法与流程

2022-03-16 03:14:18 来源:中国专利 TAG:

一种基于arm和fpga的一体化升级方法
技术领域
1.本公开属于嵌入式电子技术领域,特别涉及一种基于arm和fpga的一体化升级方法。


背景技术:

2.随着导弹信息化、智能化的发展,软件所实现的功能越来越复杂,软件升级和维护的频率越来越高。在产品已经装弹时,将其拆开利用jtag接口对软件更新,不仅耗费时间,对硬件产品的诸多试验也需要重新做以确保其可靠性。这种方式在现场调试、设备数量大时维护非常困难。
3.另外,当硬件产品不做任何更改的情况下,由于用户的新需求或软件自身的错误,软件仍需不断升级和维护。而采用固有的jtag接口需要将硬件拆开,此时硬件产品往往已经集成在一个大系统中,不能直接烧写程序,需要多次烧写,程序烧写较复杂。


技术实现要素:

4.有鉴于此,本公开提出了一种基于arm和fpga的一体化升级方法,针对arm和fpga通过axi总线互联集成于单个芯片的情况,在线升级技术能够设计成一次性烧写,不用多次分批烧写,解决了无法通过固有jtag接口烧写程序的问题,以及降低了arm和fpga分批多次烧写的复杂度,提高了程序烧写的便利性。
5.根据本公开的一方面,提出了一种基于arm和fpga的一体化升级方法,所述方法包括:
6.生成一个含有fsbl引导程序、fpga程序和arm程序的可执行文件,并将至少两个相同的可执行文件分别存储在flash的multiboot镜像区和golden镜像区,形成可执行文件的multiboot镜像版本和golden镜像版本;
7.利用jtag接口将所述可执行文件烧写至golden镜像版本,断电;重新上电,运行golden镜像版本,通过地面测试平台,将接收到的可执行文件数据烧写至multiboot镜像版本,完成可执行文件的首次烧写;
8.对multiboot镜像md5进行校验,当multiboot镜像md5校验正常时,运行multiboot镜像中的可执行文件,通过地面测试平台,将接收的可执行文件的升级数据烧写至multiboot镜像;否则,运行golden镜像中的可执行文件,通过地面测试平台,将接收的可执行文件的升级数据烧写至multiboot镜像,完成可执行文件的在线升级的在线升级。
9.在一种可能的实现方式中,所述可执行文件通过fsbl引导程序,将arm程序和fpga程序合成一体化,实现rm程序和fpga的一体化升级。
10.在一种可能的实现方式中,当进行可执行文件的在线升级时,上位机处于等待状态后,下位机进行加电。
11.在一种可能的实现方式中,所述可执行文件的在线升级包括可执行文件升级握手指令、可执行文件开始升级指令、可执行文件升级数据指令和烧写可执行文件指令。
12.在一种可能的实现方式中,下位机加电后,发送可执行文件升级握手指令到上位机,接收上位机发送的可执行文件开始升级指令后并回复可执行文件开始升级回令到上位机,实现下位机和上位机的握手。
13.在一种可能的实现方式中,所述可执行文件开始升级指令包含可执行文件开始升级指令每次升级的总包数、总长度和总crc。
14.在一种可能的实现方式中,当所述上位机与下位机完成握手之后,采用一问一答形式对可执行文件的升级数据进行升级,当所有可执行文件的升级数据的crc校验、总包数和总长度均正确时,将所述可执行文件的升级数据烧写到flash响应地址中。
15.在一种可能的实现方式中,所述可执行文件的在线升级程序设有时间窗口。
16.在一种可能的实现方式中,在时间窗口内,所述上位机与下位机完成握手失败,跳转至飞行程序。
17.本公开的基于arm和fpga的一体化升级方法,通过生成一个含有fsbl引导程序、fpga程序和arm程序的可执行文件,并将至少两个相同的可执行文件分别存储在flash的multiboot镜像区和golden镜像区,形成可执行文件的multiboot镜像版本和golden镜像版本;利用jtag接口将所述可执行文件烧写至golden镜像版本,断电;重新上电,运行golden镜像版本,通过地面测试平台,将接收到的可执行文件数据烧写至multiboot镜像版本,完成可执行文件的首次烧写;对multiboot镜像md5进行校验,当multiboot镜像md5校验正常时,运行multiboot镜像中的可执行文件,通过地面测试平台,将接收的可执行文件的升级数据烧写至multiboot镜像;否则,运行golden镜像中的可执行文件,通过地面测试平台,将接收的可执行文件的升级数据烧写至multiboot镜像,完成可执行文件的在线升级的在线升级。能够在不拆弹的条件下,由上位机软件对可执行文件进行读取分包,利用系统本身的弹地通信口,将数据发送给下位机,从而直接对软件进行升级,解决了无法通过固有jtag接口烧写程序的问题,以及降低了arm和fpga分批多次烧写的复杂度,提高了程序烧写的便利性。
18.根据下面参考附图对示例性实施例的详细说明,本发明公开的其它特征及方面将进行详细阐述。
附图说明
19.包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
20.图1示出根据本公开一实施例的基于arm和fpga的一体化升级方法流程图;
21.图2示出根据本公开一实施例的flash升级分配示意图;
22.图3示出根据本公开另一实施例的基于arm和fpga的一体化升级方法流程图;
23.图4示出根据本公开一实施例的上位机和下位机之间的数据处理流程图;
24.图5示出根据本公开一实施例的下位机数据处理流程图。
具体实施方式
25.以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除
非特别指出,不必按比例绘制附图。
26.在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
27.另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
28.fpga即可编程逻辑器件(programmable logic,pl),具有强大的并行处理能力,能够实现接口设计,高速逻辑等。而arm即处理器系统(programmable system,ps),适用于复杂的逻辑运算。针对arm和fpga通过axi总线互联集成于单个芯片的情况,arm和fpga程序的升级可以被设计成一次性烧写。
29.图1和图3分别示出根据本公开一实施例的基于arm和fpga的一体化升级方法流程图。该方法通过由上位机软件对可执行文件进行读取分包,利用系统本身的弹地通信口,将数据发送给下位机,从而直接对软件进行升级。具体如图1所示,该方法包括:
30.步骤s1:生成一个含有fsbl引导程序、fpga程序和arm程序的可执行文件,并将至少两个相同的可执行文件分别存储在flash的multiboot镜像区和golden镜像区,形成可执行文件的multiboot镜像版本和golden镜像版本。
31.其中,可执行文件通过fsbl引导程序,将arm程序和fpga程序合成一体化,实现rm程序和fpga的一体化升级,并采用md5校验。
32.图2示出根据本公开一实施例的flash升级分配示意图。如图2所示,flash平均分两个区进行存储可执行文件,前半部分称为multiboot镜像区,存储可执行文件的multiboot镜像版本,后半部分称为golden镜像区,存储可执行文件的golden镜像版本。例如,arm程序中实现在线升级功能,能够将arm程序烧写至multiboot镜像区。
33.步骤s2:利用jtag接口将可执行文件烧写至golden镜像版本,断电;重新上电,运行golden镜像版本,通过地面测试平台,将接收到的可执行文件数据烧写至multiboot镜像版本,完成可执行文件的首次烧写。
34.如图3所示,当拿到新产品时,其flash中没有任何程序,采用jtag接口直接烧写程序(arm程序和/或fpga程序)至golden镜像版本,烧写完成后断电,然后重新上电,运行golden镜像版本,通过地面测试台与其通信,将接收到的可执行文件数据烧写至multiboot镜像版本。
35.步骤s3:对multiboot镜像md5进行校验,当multiboot镜像md5校验正常时,运行multiboot镜像中的可执行文件,通过地面测试平台,将接收的可执行文件的升级数据烧写至multiboot镜像;否则,运行golden镜像中的可执行文件,通过地面测试平台,将接收的可执行文件的升级数据烧写至multiboot镜像,完成可执行文件的在线升级的在线升级。
36.如图3所示,在进行程序后续升级时,multiboot镜像已经存在可执行的软件。程序执行会从flash基地址查找有效执行程序,即会运行multiboot镜像中程序,接收到可执行文件的升级数据时,仍将其写入multiboot镜像。若multiboot镜像版本损坏,由于md5校验的存在,会继续向后搜索正确版本,即golden镜像版本,运行该golden镜像版本仍可继续升级,且golden镜像版本永远不擦除。
37.在一示例中,当程序执行在线升级功能时(可执行文件的在线升级时),上位机处
于等待状态后,下位机进行加电。其中,可执行文件的在线升级包括可执行文件升级握手指令、可执行文件开始升级指令、可执行文件升级数据指令和烧写可执行文件指令。
38.图4示出根据本公开一实施例的上位机和下位机之间的数据处理流程图。
39.如图4所示,下位机加电后,下位机发送可执行文件升级握手指令到上位机,等待并接收上位机(地面)发送的可执行文件开始升级指令,并回复可执行文件开始升级回令到上位机,实现下位机和上位机的握手。当上位机与下位机完成握手之后,采用一问一答形式对可执行文件的升级数据进行升级,当所有可执行文件的升级数据的crc校验、总包数和总长度均正确时,将可执行文件的升级数据烧写到flash响应地址中。其中,可执行文件升级握手指令、可执行文件开始升级指令、可执行文件开始升级指令回令、可执行文件的升级数据和可执行文件的升级数据回令的具体内容见下表1-表5。
40.表1串口可执行文件升级握手指令
[0041][0042]
表2串口可执行文件开始升级指令
[0043]
[0044][0045]
表3串口可执行文件开始升级指令回令
[0046][0047]
表4串口可执行文件的升级数据
[0048]
[0049][0050]
表5串口可执行文件的升级数据回令
[0051][0052]
在一示例中,可执行文件的在线升级程序设有时间窗口,在时间窗口内,所述上位机与下位机完成握手失败,跳转至飞行程序。
[0053]
图5示出根据本公开一实施例的下位机数据处理流程图。
[0054]
弹上软件安全性很重要,稍有不慎便会弹毁人亡。因此基于arm和fpga的一体化升级方法必须设有时间窗口,例如时间窗口可以是1s、2s等,在此不做限定。如图5所示,当下位机和上位机的完成握手指令时,上电1s内未收到可执行文件开始升级指令时,能够跳转至飞行程序,但飞行程序不允许跳转至升级程序,以免引起不必要的危险。即下位机和上位机握手失败则直接跳转飞行程序,不再进行升级。下位机和上位机握手成功则进行升级,升级过程中,任一时刻可以从可执行文件开始升级指令重新开始接受可执行文件升级数据,程序升级成功后,断电再次上电即可运行至飞行程序。
[0055]
本公开的基于arm和fpga的一体化升级方法,采用双备份方式,无论是升级过程中断电,升级文件错误等任何意外情况,重新上电后程序依然可以运行,可以再次升级。上电初始进行上位机和下位机握手,握手失败跳转至飞行程序,飞行程序不再执行升级功能,安全可靠。通过加入fsbl引导文件,将arm程序和fpga程序其合成一个可执行文件,一次性同时升级arm和fpga,降低了arm和fpga分批多次烧写的复杂度,解决了无法通过固有jtag接口烧写程序的问题,可通过产品自身的通信接口进行在线升级,包括串口,1553b等,提高程序升级的便利性,
[0056]
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献