CN108694052A - 一种固件升级方法、固件升级装置及固件升级系统 - Google Patents
一种固件升级方法、固件升级装置及固件升级系统 Download PDFInfo
- Publication number
- CN108694052A CN108694052A CN201810706543.3A CN201810706543A CN108694052A CN 108694052 A CN108694052 A CN 108694052A CN 201810706543 A CN201810706543 A CN 201810706543A CN 108694052 A CN108694052 A CN 108694052A
- Authority
- CN
- China
- Prior art keywords
- mirror image
- data
- flash
- updated
- fpga
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种固件升级方法,包括:首先接收待写入的第一数据,通过用户指令确定待更新镜像,若所述待更新镜像为预设的第一镜像,则读取引导指针的数值,所述引导指针的地址为闪存flash开机上电时第一个镜像的地址,再将该数值插入到所述第一数据的起始位置,接着擦除待更新镜像内的内容,最后将所述第一数据写入到待更新镜像中。通过上述方式,无需使用大量线缆连接主机和FPGA这种方式对flash进行擦写,减少了升级成本,同时体现了固件升级的便捷性和灵活性。
Description
技术领域
本申请涉及电路设计领域,尤其涉及一种固件升级方法、固件升级装置及固件升级系统。
背景技术
具有低成本、便携化、可扩展性高等优点的云计算已然是信息快速发展时代的主流,国内外互联网厂商都相继推出了自己的云服务平台,比如阿里巴巴的阿里云等,以推动传统的信息技术(Information Technolog,IT)基础设施向云端转变。随着越来越多的业务上云,对云端计算能力以及较快响应业务的能力也提出了挑战。
现场可编程门阵列(Field-Programmable Gate Array,FPGA)由于其低能耗、可编程、高吞吐等优良特性已逐渐用于加速多个业务领域,比如数据库、大数据分析和高性能计算等。尤其FPGA结合云端服务器可以发挥突出的作用,企业可通过FPGA云服务器进行FPGA硬件编程,现有技术中,FPGA目前是以高速串行计算机扩展总线(peripheral componentinterconnect express,PCI-e)板卡的形式安插在服务器主板上,处理器通过联合测试工作组(Joint Test Action Group,jtag)定义的jtag接口与FPGA连接,对flash等器件进行编程。
FPGA通过jtag接口与处理器连接时是通过线缆的有线方式进行连接的,不仅耗费成本较高,而且在本地调试和升级时需要接大量线缆,耗费大量人力财力,并且对更新和测试的灵活性形成了限制。
发明内容
本申请实施例提供了一种固件升级方法、固件升级装置及固件升级系统,无需使用大量线缆连接主机和FPGA这种方式对flash进行擦写,减少了升级成本,同时体现了固件升级的便捷性和灵活性。
有鉴于此,本发明第一方面提供了一种固件升级方法,包括:
接收待写入的第一数据;
通过用户指令确定待更新镜像;
若所述待更新镜像为预设的第一镜像,则读取引导指针的地址,所述引导指针的地址为flash开机上电时第一个镜像的地址;
将该数值插入到所述第一数据的起始位置;
擦除待更新镜像内的内容;
将所述第一数据写入到待更新镜像中。
结合本申请实施例第一方面,在本申请实施例第一方面的第一种实施方式中,所述方法还包括:
若所述待更新镜像为预设的第二镜像,则擦除待更新镜像内的内容;
将所述第一数据写入到待更新镜像中。
结合本申请实施例第一方面或第一方面的第一种实施方式,在本申请实施例第一方面的第二种实施方式中,所述接收待写入的第一数据之前,所述方法还包括:
接收第二数据;
将所述第二数据根据预设转化规则转化成第一数据。
结合本申请实施例第一方面的第二种实施方式,在本申请实施例第一方面的第三种实施方式中,
所述擦除待更新镜像内的内容之前,所述方法还包括:
判断所述预设的第一镜像和所述第一数据的大小之差是否在预设的范围内;
若所述预设的第一镜像和所述第一数据的大小之差在预设的范围内,则使能flash写入标志位;
将flash的写保护标志位置于disable。
结合本申请实施例第一方面的第三种实施方式,在本申请实施例第一方面的第四种实施方式中,所述将所述第一数据写入到待更新镜像中之后,所述方法包括:
读取写入的所述第一数据与内存数据对比;
若所述第一数据与内存数据一致,则确定所述第一数据已正确写入。
结合本申请实施例第一方面的第四种实施方式,在本申请实施例第一方面的第五种实施方式中所述方法还包括:
若所述第一数据已正确写入,则使能所述flash的写保护标志位。
结合本申请实施例第一方面的第五种实施方式,在本申请实施例第一方面的第六种实施方式中,所述将所述第一数据写入到待更新镜像中之后,所述方法还包括;
根据所述待更新镜像的起始地址从flash中加载所述待更新镜像中的第一数据;
关闭PCI-e的中断程序,所述PCI-e为与FPGA连接的接口;
对flash重新配置所述引导指针的地址;
重启所述PCI-E的终端程序。
本申请第二方面提供了一种固件升级装置,包括:
接收单元,用于接收待写入的第一数据;
处理单元,用于通过用户指令确定待更新镜像;
当所述待更新镜像为预设的第一镜像时,读取引导指针的地址,所述引导指针的地址为闪存flash开机上电时第一个镜像的地址;
将该数值插入到所述第一数据的起始位置;
擦除待更新镜像内的内容;
将所述第一数据写入到待更新镜像中。
结合本申请实施例第二方面,在本申请实施例第二方面的第一种实施方式中,所述处理单元,还用于当所述待更新镜像为预设的第二镜像时,擦除待更新镜像内的内容;
将所述第一数据写入到待更新镜像中。
结合本申请实施例第二方面和第二方面的第一种实施方式,在本申请实施例第二方面的第二种实施方式中,所述接收单元,还用于接收第二数据;
所述处理单元,还用于将所述第二数据根据预设转化规则转化成第一数据。
结合本申请实施例第二方面的第二种实施方式,在本申请实施例第二方面的第三种实施方式中,所述处理单元,还用于判断所述预设的第一镜像和所述第一数据的大小之差是否在预设的范围内;
若所述预设的第一镜像和所述第一数据的大小之差在预设的范围内,则使能flash写入标志位;
将flash的写保护标志位置于disable。
结合本申请实施例第二方面的第三种实施方式,在本申请实施例第二方面的第四种实施方式中,
所述处理单元,还用于将所述第一数据与内存数据进行对比;
若所述第一数据与内存数据一致,则确定所述第一数据已正确写入。
结合本申请实施例第二方面第四种实施方式,在本申请实施例第二方面的第五种实施方式中,
所述处理单元,还用于若所述第一数据已正确写入,则使能所述flash的写保护标志位。
结合本申请实施例第二方面的第五种实施方式,在本申请实施例第二方面的第六种实施方式中,
所述处理单元,还用于根据所述待更新镜像的起始地址从flash中加载所述待更新镜像中的第一数据;
关闭高速串行计算机扩展总线标准PCI-e的中断程序,所述PCI-e为与现场可编程门阵列FPGA连接的接口;
对flash重新配置所述引导指针的地址;
重启所述PCI-e的终端程序。
本发明第三方面提供了一种固件升级系统,所述固件升级系统包括主机、FPGA和flash;
所述主机与FPGA通过PCI-e相连,所述FPGA通过QSPI与flash相连;
将所述flash空间划分为引导指针、预设的第一镜像和第二镜像等多个镜像区域;
所述flash通过QSPI接口将多个镜像对应的地址空间映射到FPGA缓存中;
主机通过PCI-e-FPGA-flash形成的通路根据镜像对应的地址对flash进行擦写以使得flash中的固件升级。
本申请第四方面提供一种计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述任一方面的方法。
本申请第五方面提供一种计算机存储介质,用于储存为上述方法所用的计算机软件指令,当其在计算机上运行时,使得计算机可以执行上述中任一方面的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例提供了一种固件升级方法,首先接收待写入的第一数据,然后通过用户指令确定待更新镜像,若所述待更新镜像为预设的第一镜像,则读取引导指针的地址,所述引导指针的地址为flash开机上电时第一个镜像的地址,再将该数值插入到所述第一数据的起始位置,接着擦除待更新镜像内的内容,最后将所述第一数据写入到待更新镜像中。本申请实施例中的固件升级系统中的主机与FPGA通过PCI-e相连,所述FPGA通过串行外设接口扩展(Queued Serial Peripheral Interface,QSPI)与flash相连;所述flash通过QSPI接口将多个镜像对应的地址空间映射到FPGA缓存中;主机通过PCI-e-FPGA-flash形成的通路根据镜像对应的地址对flash进行擦写以使得flash中的固件升级。通过上述方式无需使用大量线缆连接主机和FPGA这种方式对flash进行擦写,减少了升级成本,同时体现了固件升级的便捷性和灵活性。
附图说明
图1为本申请实施例中实现固件升级方法的硬件连接示意图;
图2为本申请实施例中flash地址空间分配示意图;
图3为本申请实施例中固件升级方法的一个实施例示意图;
图4为本申请实施例中固件升级方法的另一实施例示意图;
图5为本申请实施例中固件升级装置的结构示意图。
具体实施方式
本申请实施例提供了一种固件升级的方法,flash通过QSPI接口将地址空间映射到FPGA的缓存中,主机通过PCI-E-FPGA-flash形成的通路根据镜像对应的地址可远程对flash进行擦写以使得flash中的固件升级,无需使用大量线缆连接主机和FPGA这种方式对flash进行擦写,减少了升级成本,同时体现了固件升级的便捷性和灵活性。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
FPGA的基本原理是在芯片内集成大量的数字门电路以及存储器,用户可以通过烧入FPGA配置文件来来定义这些门电路以及存储器之间的连线,进而得到不同的硬件功能,因此FPGA具有灵活便捷、可重复利用的优点。云计算以其低成本、便携化、可扩展性高等优点也逐渐进入人们的视线。因此FPGA结合云端服务器可以发挥突出的作用,FPGA可以帮助分担云端数据中心的一些任务,它能够根据系统资源和算法特征灵活调整,达到最优适配。
本申请实施例提供了一种支持云端FPGA加速卡固件升级的方法,FPGA加速卡直接面向云服务,如图1所示,FPGA以PCI-e板卡的形式安插在服务器主板上,FPGA与主机之间通过PCI-e链路进行通信,PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,优点是传输速率高。FPGA通过QSPI与flash进行连接,板卡上的flash用于存储固件,固件实质是固化在集成电路内部的程序代码,负责控制和协调集成电路的功能。其中,可将flash空间划分为多个镜像image区域,如图2所示,flash可划分多个image区域,包括引导指针、镜像0、镜像1至镜像N,镜像0为静态镜像,里面存放的是程序代码,调用image0中的程序代码可实现本申请实施例中的固件升级方法。镜像1至镜像N为动态镜像,flash通过QSPI接口将地址空间映射到FPGA的缓存中,主机通过PCI-e-FPGA-flash形成的通路根据镜像对应的地址可远程对flash进行擦写。
本申请实施例提供一种固件升级的方法,实现固件升级的方法的总体流程如图3所示:
101、加载镜像0到FPGA运行;
镜像0是提前通过jtag接口烧录在flash中,也就是说固件中必须包含镜像0,镜像0中包含了本申请实施例中固件升级的方法的程序代码,通过调用镜像0中的程序代码即可实现本申请实施例中的固件升级方法。
将FPGA工作的镜像置于固件中镜像0的起始位置,通过FPGA的加载运动模块将镜像0加载到FPGA进行运行。
102、将待烧录数据通过PCI-e-FPGA-flash通路写入flash的指定镜像中;
待烧录数据为对应FPGA型号的的第三方待烧录文件,为可以通用识别的二进制文件。首先将该待烧录数据读入电脑内存中,然后利用FPGA将待烧录数据通过PCI-e-FPGA-flash通路写入flash的指定镜像中,在此过程中,需先将电脑内存中的待烧录数据形式进行转化,按照一定的规则转化成符合flash写入要求的数据形式。
103、将指定镜像加载到FPGA运行,实现指定镜像中待烧录数据对应的功能。
通过FPGA的引导模块将指定镜像加载到FPGA运行,实现指定镜像中待烧录数据对应的功能。假设在将待烧录数据写入指定镜像之前,如果指定镜像中已经存在数据,则需将存在的数据先进行擦除,再将待烧录数据写入指定镜像中。
本申请实施例中提供的固件升级方法的具体实施步骤如图4所示:
201、通过用户指令接收待写入的第一数据;
本申请中待写入的第一数据指的是已根据预设转化规则转化成符合flash写入要求的数据,具体的,假设电脑内存中数据二进制序列为01010101,首先对二进制序列的每一位标识编号,例如第一位是0、第二位是1、第三位是0、以此类推,是按照第一位到第八位的顺序进行显示,那么具体的转化规则可以是:将第八位变成第一位,第七位变成第二位,第六位变成第三位,以此类推,那么得到符合flash写入要求的数据形式则为10101010,即为本申请实施例中的待写入第一数据。需要说明的是,预设的转化规则还可以是其他的转化方式,具体此处不作限定。
202、通过用户指令确定待更新镜像;
待更新镜像是由用户确定的,确定的待更新镜像将会被擦除当前的数据内容,重新写入第一数据以实现第一数据对应的功能。
203、若所述待更新镜像为预设的第一镜像,则读取引导指针的地址,所述引导指针的地址为flash开机上电时第一个镜像的地址;
首先判断待更新镜像是否为预设的某个镜像,实际应用中,预设的第一镜像指的是镜像0,也就是静态镜像,静态镜像中储存的是执行整个固件升级方法的程序代码,FPGA加载运行镜像0中的代码实现本申请实施例中的固件升级方法,因此可将镜像0看成是包含擦写模块和引导模块两个模块的载体,擦写模块负责将第一数据通过PCI-E-FPGA-flash通路写入flash的指定镜像中,而引导模块负责FPGA的电路引导,负责控制FPGA从flash中加载指定的镜像到FPGA并运行,以实现指定镜像对应的功能。一般来说,静态镜像里的数据内容是固定的,不会随意进行修改,因此称为静态镜像。
204、如果待更新镜像为镜像0,则读取引导指针的数值,所述引导指针指向flash开机上电后待加载镜像的首地址。
205、将该数值插入到所述第一数据的起始位置;
206、通过QSPI接口擦除待更新镜像中的内容;
本申请实施例中的FPGA与flash通过QSPI接口相连,QSPI是SPI接口的扩展,比SPI应用更加广泛,在SPI协议的基础上,增加了队列传输机制,推出了队列串行外围接口协议(即QSPI协议)。使用该接口,用户可以一次性传输包含多达16个8位或16位数据的传输队列。一旦传输启动,直到传输结束,都不需要CPU干预,极大的提高了传输效率。
FPGA中的擦写模块通过QSPI接口擦除待更新镜像中的历史内容,以便后续重新写入新的数据,实现新的功能。
207、将所述第一数据写入到待更新镜像中。
FPGA中的擦写模块将待写入的第一数据通过PCI-e-FPGA-flash通路写入flash的待更新镜像中;
本申请实施例通过PCI-e-FPGA-flash形成的通路对flash进行擦写以使得flash中的固件升级,无需使用大量线缆连接主机和FPGA这种方式对flash进行擦写,减少了升级成本,同时体现了固件升级的便捷性和灵活性。
在上述实施例的基础上,本发明实施例提供的固件升级方法的又一实施例中,还包括:
若所述待更新镜像为预设的第二镜像,则擦除待更新镜像内的内容;
假设将flash的地址空间划分成镜像0至镜像N,那么本申请实施例中提及的第二镜像则为镜像1至镜像N中的任意一个,镜像1至镜像N称为动态镜像,镜像内存储的程序代码能够使得FPGA实现各种具体功能,FPGA通过引导模块可从flash中加载指定的镜像并运行。
假设所述待更新镜像为镜像0至镜像N中的任意一个,则擦除待更新镜像内的内容,并将所述第一数据写入到待更新镜像中。
本申请实施例中当待更新镜像分别为静态镜像和动态镜像时对于flash的擦除有不同的流程处理方法,当待更新镜像为动态镜像时可直接擦除待更新镜像中的数据内容,并将第一数据写入实现固件升级,对不同的情况设置不同的处理方法有助于提高固件升级的效率。
可选地,在上述实施例的基础上,本发明实施例提供的固件升级方法的第一个可选实施例中,所述接收待写入的第一数据之前,所述方法还包括:
FPGA接收第二数据,此处的第二数据指的是存入电脑内存中的数据,该数据需要经过一定的转化转化成符合flash写入要求的第一数据,具体转化的过程如步骤201中所示,具体此处不再赘述,需要说明的是,转化规则多种多样,本申请仅仅具体举例其中一种,其他形式的转化规则也在本申请的保护范围之内。
本申请实施例中通过将原始的第二数据转化成符合flash写入要求的第一数据保证了写入过程的顺利进行。
可选地,在上述实施例的基础上,本发明实施例提供的固件升级方法的第二个可选实施例中,擦除待更新镜像内的内容之前,所述方法还包括:
判断所述待更新镜像的存储空间和所述第一数据的大小是否匹配;若所述预设的待更新镜像和所述第一数据匹配,则使能flash的写入标志位,将flash的写保护标志位置于disable;
待更新镜像与第一数据的大小是否匹配具体可以理解成待更新镜像的存储空间大于第一数据的大小的情况,也可以理解成待更新镜像的存储空间大于第一数据的大小并且两者之差在一定的范围之内。
若待更新镜像的存储空间和第一数据的大小匹配,则使能flash的写入标志位,将flash的写保护标志位置于disable,即说明此时可以对flash写入数据。
本申请实施例中通过提前判断待更新镜像与第一数据的大小是否匹配确定是否可以将第一数据写入flash,能够避免因存储空间不够导致数据溢出的情况。
可选地,在上述实施例的基础上,本发明实施例提供的固件升级方法的第三个可选实施例中,所述将所述第一数据写入到待更新镜像中之后,所述方法包括:
读取写入的所述第一数据与内存数据对比,若所述第一数据与内存数据一致,则确定所述第一数据已正确写入。
本申请实施例中写入过程可能会出现错误,出现改变某个比特的情况,因此将已写入的第一数据再次读取出来,并与内存数据作对比是必要的,通过校验保证写入数据的准确性。
可选地,在上述实施例的基础上,本发明实施例提供的固件升级方法的第四个可选实施例中,所述方法还包括:
若所述第一数据已正确写入,则使能所述flash的写保护标志位,对flash的写进行保护,禁止再写入数据。
通过使能flash的写保护标志位保证了flash存储数据的稳定性,不会对同一个镜像写入多次数据,造成混淆。
可选地,在上述实施例的基础上,本发明实施例提供的固件升级方法的第五个可选实施例中,所述将所述第一数据写入到待更新镜像中之后,所述方法还包括;
根据所述待更新镜像的起始地址从flash中加载所述待更新镜像,调用第一数据执行相应的功能;
关闭PCI-e的中断程序,所述PCI-e为与FPGA连接的接口;
对flash重新配置所述引导指针的地址;
重启所述中断程序。
在对flash进行重新配置之前需先关闭中断,关闭中断后可以保护操作系统,防止系统重启,在重新配置flash之后还需重新开启中断程序。
上面从一种固件升级方法的角度本申请实施例进行了说明,请参照图5,下面将从固件升级装置进行说明。
一种固件升级装置,包括:
接收单元501,用于接收待写入的第一数据;
处理单元502,用于通过用户指令确定待更新镜像;
若所述待更新镜像为预设的第一镜像,则读取引导指针的地址,所述引导指针的地址为闪存flash开机上电时第一个镜像的地址;
将该数值插入到所述第一数据的起始位置;
擦除待更新镜像内的内容;
将所述第一数据写入到待更新镜像中。
本申请实施例中还提供一种固件升级系统,包括主机、FPGA和flash;
所述主机与FPGA通过PCI-e相连,所述FPGA通过QSPI与flash相连;
将所述flash划分为引导指针、预设的第一镜像和第二镜像等多个镜像区域;
所述flash通过QSPI接口将多个镜像对应的地址空间映射到FPGA缓存中;
主机通过PCI-e-FPGA-flash形成的通路根据镜像对应的地址对flash进行擦写以使得flash中的固件升级。
本申请实施例中通过主机、FPGA和flash相配合,通过形成的PCI-e-FPGA-flash通路即可远程对flash进行擦写,无需通过有线形式连接的jtag接口对实现固件的升级,减少了固件升级的成本,并且体现了本技术方案中固件升级的便捷性和灵活性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、磁碟或者光盘等各种可以存储程序代码的介质,但不包括随机存取存储器(RAM,Random Access Memory),因为RAM上存储的东西在掉电后容易丢失。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (17)
1.一种固件升级方法,其特征在于,所述方法包括:
接收待写入的第一数据;
通过用户指令确定待更新镜像;
若所述待更新镜像为预设的第一镜像,则读取引导指针的数值,所述引导指针的地址为闪存flash开机上电时第一个镜像的地址;
将该数值插入到所述第一数据的起始位置;
擦除待更新镜像内的内容;
将所述第一数据写入到待更新镜像中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述待更新镜像为预设的第二镜像,则擦除待更新镜像内的内容;
将所述第一数据写入到待更新镜像中。
3.根据权利要求1或2所述的方法,其特征在于,所述接收待写入的第一数据之前,所述方法还包括:
接收第二数据;
将所述第二数据根据预设转化规则转化成第一数据。
4.根据权利要求3所述的方法,其特征在于,所述擦除待更新镜像内的内容之前,所述方法还包括:
判断所述预设的第一镜像和所述第一数据的大小之差是否在预设的范围内;
若所述预设的第一镜像和所述第一数据的大小之差在预设的范围内,则使能flash写入标志位;
将flash的写保护标志位置于disable。
5.根据权利要求4所述方法,其特征在于,所述将所述第一数据写入到待更新镜像中之后,所述方法包括:
读取写入的所述第一数据与内存数据对比;
若所述第一数据与内存数据一致,则确定所述第一数据已正确写入。
6.根据权利要求5所述方法,其特征在于,所述方法还包括:
若所述第一数据已正确写入,则使能所述flash的写保护标志位。
7.根据权利要求6所述的方法,其特征在于,所述将所述第一数据写入到待更新镜像中之后,所述方法还包括:
根据所述待更新镜像的起始地址从flash中加载所述待更新镜像中的第一数据;
关闭高速串行计算机扩展总线标准PCI-e的中断程序,所述PCI-e为与现场可编程门阵列FPGA连接的接口;
对flash重新配置所述引导指针的地址;
重启所述PCI-e的终端程序。
8.一种固件升级装置,其特征在于,所述装置包括:
接收单元,用于接收待写入的第一数据;
处理单元,用于通过用户指令确定待更新镜像;
若所述待更新镜像为预设的第一镜像,则读取引导指针的地址,所述引导指针的地址为闪存flash开机上电时第一个镜像的地址;
将该数值插入到所述第一数据的起始位置;
擦除待更新镜像内的内容;
将所述第一数据写入到待更新镜像中。
9.根据权利要求8所述的固件升级装置,其特征在于,所述处理单元,还用于若所述待更新镜像为预设的第二镜像,则擦除待更新镜像内的内容;
将所述第一数据写入到待更新镜像中。
10.根据权利要求8或9所述的固件升级装置,其特征在于,所述接收单元,还用于接收第二数据;
所述处理单元,还用于将所述第二数据根据预设转化规则转化成第一数据。
11.根据权利要求10所述的固件升级装置,其特征在于,所述处理单元,还用于判断所述预设的第一镜像和所述第一数据的大小之差是否在预设的范围内;
若所述预设的第一镜像和所述第一数据的大小之差在预设的范围内,则使能flash写入标志位;
将flash的写保护标志位置于disable。
12.根据权利要求11所述固件升级装置,其特征在于,所述处理单元,还用于将所述第一数据与内存数据进行对比;
若所述第一数据与内存数据一致,则确定所述第一数据已正确写入。
13.根据权利要求12所述的固件升级装置,其特征在于,所述处理单元,还用于若所述第一数据已正确写入,则使能所述flash的写保护标志位。
14.根据权利要求13所述的固件升级装置,其特征在于,所述处理单元,还用于根据所述待更新镜像的起始地址从flash中加载所述待更新镜像中的第一数据;
关闭高速串行计算机扩展总线标准PCI-e的中断程序,所述PCI-e为与现场可编程门阵列FPGA连接的接口;
对flash重新配置所述引导指针的地址;
重启所述PCI-e的终端程序。
15.一种固件升级系统,其特征在于,所述固件升级系统包括主机、FPGA和flash;
所述主机与FPGA通过PCI-e相连,所述FPGA通过串行外设接口扩展QSPI与flash相连;
将flash划分为引导指针、预设的第一镜像和第二镜像等多个镜像区域;
所述flash通过QSPI接口将多个镜像对应的地址空间映射到FPGA缓存中;
主机通过PCI-e-FPGA-flash形成的通路根据镜像对应的地址对flash进行擦写以使得flash中的固件升级。
16.一种包含有程序代码的flash,其特征在于,当所述flash中的程序代码在FPGA上运行时,使得FPGA执行如权利要求1至7中任一项所述的固件升级的方法。
17.一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得计算机执行如权利要求1至7中任意一项所述的固件升级的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810706543.3A CN108694052B (zh) | 2018-06-29 | 2018-06-29 | 一种固件升级方法、固件升级装置及固件升级系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810706543.3A CN108694052B (zh) | 2018-06-29 | 2018-06-29 | 一种固件升级方法、固件升级装置及固件升级系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108694052A true CN108694052A (zh) | 2018-10-23 |
CN108694052B CN108694052B (zh) | 2021-08-10 |
Family
ID=63850223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810706543.3A Active CN108694052B (zh) | 2018-06-29 | 2018-06-29 | 一种固件升级方法、固件升级装置及固件升级系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108694052B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966385A (zh) * | 2020-06-24 | 2020-11-20 | 上海昊博影像科技有限公司 | 平板探测器在线升级方法、平板探测器以及上位机 |
CN112269585A (zh) * | 2020-11-04 | 2021-01-26 | 配天机器人技术有限公司 | 一种关节驱动器固件在线更新方法、装置及关节驱动器 |
CN113535213A (zh) * | 2021-07-21 | 2021-10-22 | 联想长风科技(北京)有限公司 | 一种可编程逻辑器件的固件更新方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120260267A1 (en) * | 2011-04-07 | 2012-10-11 | Adobe Systems Incorporated | Methods and Systems for Supporting a Rendering API Using a Runtime Environment |
CN103106163A (zh) * | 2013-03-06 | 2013-05-15 | 上海维宏电子科技股份有限公司 | 基于数据帧异步传输协议的fpga芯片在线升级结构及方法 |
CN105204899A (zh) * | 2015-09-17 | 2015-12-30 | 浪潮软件集团有限公司 | 一种基于网络的单片机固件升级方法的实现 |
CN106598654A (zh) * | 2016-11-30 | 2017-04-26 | 中国兵器装备集团自动化研究所 | 一种在线更新PowerPC主板引导芯片的方法 |
-
2018
- 2018-06-29 CN CN201810706543.3A patent/CN108694052B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120260267A1 (en) * | 2011-04-07 | 2012-10-11 | Adobe Systems Incorporated | Methods and Systems for Supporting a Rendering API Using a Runtime Environment |
CN103106163A (zh) * | 2013-03-06 | 2013-05-15 | 上海维宏电子科技股份有限公司 | 基于数据帧异步传输协议的fpga芯片在线升级结构及方法 |
CN105204899A (zh) * | 2015-09-17 | 2015-12-30 | 浪潮软件集团有限公司 | 一种基于网络的单片机固件升级方法的实现 |
CN106598654A (zh) * | 2016-11-30 | 2017-04-26 | 中国兵器装备集团自动化研究所 | 一种在线更新PowerPC主板引导芯片的方法 |
Non-Patent Citations (1)
Title |
---|
贾钢: ""一种FPGA智能加载和远程更新的实现方法"", 《无线电通信技术》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966385A (zh) * | 2020-06-24 | 2020-11-20 | 上海昊博影像科技有限公司 | 平板探测器在线升级方法、平板探测器以及上位机 |
CN111966385B (zh) * | 2020-06-24 | 2024-01-02 | 地太科特影像科技(上海)有限公司 | 平板探测器在线升级方法、平板探测器以及上位机 |
CN112269585A (zh) * | 2020-11-04 | 2021-01-26 | 配天机器人技术有限公司 | 一种关节驱动器固件在线更新方法、装置及关节驱动器 |
CN112269585B (zh) * | 2020-11-04 | 2022-11-25 | 配天机器人技术有限公司 | 一种关节驱动器固件在线更新方法、装置及关节驱动器 |
CN113535213A (zh) * | 2021-07-21 | 2021-10-22 | 联想长风科技(北京)有限公司 | 一种可编程逻辑器件的固件更新方法及系统 |
CN113535213B (zh) * | 2021-07-21 | 2024-03-29 | 联想长风科技(北京)有限公司 | 一种可编程逻辑器件的固件更新方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108694052B (zh) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10540310B2 (en) | Selectable peripheral logic in programmable apparatus | |
US11526440B2 (en) | Providing multiple memory modes for a processor including internal memory | |
CN107463499A (zh) | Adb远程连接方法、装置、设备及存储介质 | |
TWI470436B (zh) | 用於排序關聯於儲存裝置之複數個寫入命令之系統、方法、及電腦程式產品 | |
CN105993009A (zh) | 通过非透明桥向PCIe集群中的计算资源传送MSI-X中断的方法和装置 | |
CN108694052A (zh) | 一种固件升级方法、固件升级装置及固件升级系统 | |
US20190115752A1 (en) | Interface circuitry with multiple direct current power contacts | |
JP2010523383A (ja) | 航空機端末と携帯資源を有する航空機通信システム | |
US11531636B2 (en) | Storage system, method, and apparatus for fast IO on PCIE devices | |
CN113010470B (zh) | 边缘节点远程控制系统、方法、设备及存储介质 | |
US7895376B2 (en) | Hardware configuration information system, method, and computer program product | |
CN109451098A (zh) | Fpga加速卡mac地址配置方法、装置及加速卡 | |
CN112966824A (zh) | 推理库的部署方法、装置和电子设备 | |
CN111581152A (zh) | 可重构硬件加速soc芯片系统 | |
US11231927B2 (en) | System, apparatus and method for providing a fabric for an accelerator | |
CN108733614A (zh) | 数据传输系统、方法和装置 | |
CN108471384A (zh) | 用于端到端通信的报文转发的方法和装置 | |
CN116306408B (zh) | 片上系统soc的验证环境确定方法、装置、设备和存储介质 | |
CN107402723A (zh) | 读写数据的方法及存储系统 | |
US20140075063A1 (en) | Smart device with no AP | |
CN111459506A (zh) | 深度学习平台集群的部署方法、装置、介质及电子设备 | |
CN113434089B (zh) | 数据搬移方法、装置及pcie系统 | |
WO2013105978A1 (en) | Allocation of flow control credits for high performance devices | |
CN105740007B (zh) | 一种pci-e设备的插件装载方法及装置 | |
CN109257211A (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 |