一种多核嵌入式系统的在线升级方法及系统与流程

文档序号:25038329发布日期:2021-05-11 17:11阅读:170来源:国知局
一种多核嵌入式系统的在线升级方法及系统与流程

本发明属于嵌入式系统技术领域,特别是涉及一种多核嵌入式系统的在线升级方法及系统。



背景技术:

mpsoc是赛灵思公司公司推出的第二代多处理soc系统,mpsoc包括先进的电源管理系统,高密度片上静态存储器,单通道速率高达32gbps的高速收发器,pci-express接口以及高性能可编程逻辑等。传统的mpsoc平台固件一般需要外置jtag、sd卡或ethernet接口,但是在数据中心领域应用的mpsoc往往是不存在这些外置接口,只有pci-express接口。

未配置jtag、sd卡或ethernet接口等外置接口的mpsoc在升级时,需要应用mpsoc的电子设备例如服务器进行断电重启,这会对服务器中其他功能模块造成影响。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种多核嵌入式系统的在线升级方法及系统,用于解决现有技术中多核嵌入式系统升级不便的技术问题。

为实现上述目的及其他相关目的,本发明的实施例提供一种多核嵌入式系统的在线升级系统,包括服务系统和多核嵌入式系统;所述服务系统用于提供所述多核嵌入式系统升级所需的升级固件文件;所述多核嵌入式系统包括:片上系统,所述片上系统包括多核嵌入式处理器系统和位于所述片上系统的可编程逻辑模块,其中,所述可编程逻辑模块将所述多核嵌入式处理器系统的内存映射于所述服务系统中;通信模块,与所述片上系统的可编程逻辑模块连接,用于建立所述片上系统与所述服务系统之间的通信连接,从所述服务系统接收并缓存升级固件文件;寄存器模块,配置于所述片上系统的可编程逻辑模块中,所述片上系统的可编程逻辑模块和所述多核嵌入式处理器系统共享所述寄存器模块,所述寄存器模块用于所述多核嵌入式处理器系统与所述服务系统之间进行控制信息交互;dma模块,用于所述通信模块和所述多核嵌入式处理器系统的内存之间的数据快速搬运;中断控制器,配置于所述片上系统的可编程逻辑模块中,通过所述寄存器模块触发中断请求,用于在从所述服务系统接收到所述升级固件文件时,执行中断处理,以使得所述多核嵌入式处理器系统通过内存获取所述升级固件文件,实现所述多核嵌入式系统进行在线升级。

于本申请的一实施例中,所述所述可编程逻辑模块为fpga,所述多核嵌入式处理器系统为多核嵌入式arm处理器系统;所述服务系统为x86服务系统。

于本申请的一实施例中,所述所述可编程逻辑模块通过外部pci-express总线和内部axi4总线的转换将所述多核嵌入式处理器系统的内存映射于所述服务系统中。

于本申请的一实施例中,所述多核嵌入式处理器系统采用mpsoc架构。

于本申请的一实施例中,所述片上系统中还设有与所述多核嵌入式处理器系统相连的双倍速率内存颗粒或者是内存芯片,嵌入式多媒体存储器,基于队列串行外围接口协议的闪存器。

于本申请的一实施例中,所述多核嵌入式处理器系统将从内存获取的所述升级固件文件写入所述嵌入式多媒体存储器或基于队列串行外围接口协议的闪存器。

于本申请的一实施例中,所述通信模块为pci-express接口。

本发明的实施例还提供一种多核嵌入式系统的在线升级方法,包括:将多核嵌入式处理器系统与提供升级固件文件的服务系统通过通信模块相连,令可编程逻辑模块将多核嵌入式处理器系统的内存映射于服务系统中,并令所述多核嵌入式处理器系统和所述所述可编程逻辑模块共享寄存器模块;在所述多核嵌入式系统接收到所述服务系统发送的升级固件文件时,所述多核嵌入式处理器系统通过内存获取所述升级固件文件,实现所述多核嵌入式系统进行在线升级。

于本申请的一实施例中,所述多核嵌入式处理器系统通过内存获取所述升级固件文件的过程包括:在所述多核嵌入式系统接收到所述服务系统发送的升级固件文件传输指令时,所述多核嵌入式处理系统从寄存器模块中获取即将升级固件文件的文件大小和文件类型,所述多核嵌入式处理器系统基于所述升级固件文件大小申请内存地址并配置寄存器模块中的地址寄存器;所述服务器系统根据寄存器模块中的地址寄存器提供的地址信息,通过所述通信接口发送升级固件文件,并在所述升级固件文件传输结束时,配置文件传输状态;所述多核嵌入式处理器系统基于所述文件传输状态和文件类型,通过内存获取升级固件文件。

于本申请的一实施例中,在通过内存获取所述升级固件文件之后,还包括根据获取的升级固件文件的类型将所述升级固件文件写入嵌入式多媒体存储器或基于队列串行外围接口协议的闪存器。

如上所述,本发明的多核嵌入式系统的在线升级方法及系统,具有以下有益效果:

1、本发明提供的多核嵌入式系统可以在电子设备不掉电的情况下实现对mpsoc平台固件的升级,不会对电子设备中其他功能模块造成影响。

2、本发明中多核嵌入式系统实现方式简单,无需额外的硬件接口,并且还具有在线升级速度快的优点。

附图说明

图1显示为本发明的多核嵌入式系统的在线升级系统的原理结构示意图。

图2显示为本发明的多核嵌入式系统的在线升级系统的原理框架结构示意图。

图3显示为本发明的多核嵌入式系统的在线升级系统的软件框架示意图。

图4显示为本发明的多核嵌入式系统的在线升级方法中多核嵌入式处理器系统通过内存获取所述升级固件文件的过程流程示意图。

图5显示为本发明的多核嵌入式系统的在线升级方法的流程示意图。

元件标号说明

1多核嵌入式系统的在线升级系统

10服务系统

20多核嵌入式系统

200片上系统

210多核嵌入式处理器系统

211内存模块

212存储器

213闪存模块

220可编程逻辑模块

221dma模块

222寄存器模块

223中断控制器

240通信模块

s100~s200步骤

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

本实施例的目的在于提供一种多核嵌入式系统的在线升级方法及系统,用于解决现有技术中多核嵌入式系统升级不便的技术问题。

以下将详细阐述本实施例的多核嵌入式系统的在线升级方法及系统的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本发明的多核嵌入式系统的在线升级方法及系统。

实施例1

如图1所示,本实施例提供一种多核嵌入式系统的在线升级系统1,所述多核嵌入式系统的在线升级系统1包括服务系统10和多核嵌入式系统20。本实施例中的多核嵌入式系统的在线升级系统1采用异构处理器内存(memory)共享。通过将所述多核嵌入式系统20中的内存(memory)和寄存器组映射到服务系统10中,以达到服务系统10和多核嵌入式系统20之间数据交互,实现多核嵌入式系统20从服务系统10获取升级固件文件的目的。

其中,于本实施例中,所述服务系统10用于提供所述多核嵌入式系统20升级所需的升级固件文件。具体地,所述服务系统10为但不限于x86服务系统,x86服务系统是标准的x86架构,本实施例中对所述服务系统10不再赘述。

于本实施例中,所述多核嵌入式系统20包括片上系统200,通信模块240,寄存器模块222以及中断控制器223。

其中,所述片上系统200包括多核嵌入式处理器系统210和位于所述片上系统200的可编程逻辑模块220。

图2显示为本实施例的多核嵌入式系统的在线升级系统1的原理框架结构示意图。如图2所示,于本实施例中,所述多核嵌入式处理器系统210采用mpsoc架构。mpsoc架构主要由fpga和cortex-a53arm组成。进一步地,于本实施例中,所述可编程逻辑模块220为fpga(fieldprogrammablegatearray,现场可编程门阵列),所述多核嵌入式处理器系统210为多核嵌入式arm处理器系统。

如图2所示,于本实施例中,所述多核嵌入式处理器系统210采用mpsoc架构,所述mpsoc架构还包括内存模块211,存储器212和闪存模块213等。更进一步地,即于本实施例中,所述片上系统200中设有与所述多核嵌入式处理器系统210相连的双倍速率内存颗粒或者是内存芯片,嵌入式多媒体存储器212(emmc,embeddedmultimediacard),基于队列串行外围接口协议(qspi)的闪存器。其中双倍速率内存颗粒或者是内存芯片优选采用第四代双倍速率动态内存颗粒或者是动态内存芯片(ddr4)。

于本实施例中,所述可编程逻辑模块220用于实现通信模块240,寄存器模块222,中断控制器223,并且所述可编程逻辑模块220将所述多核嵌入式处理器系统210的内存映射于所述服务系统10中。

具体地,于本实施例中,所述可编程逻辑模块220(fpga)通过外部pci-express总线和内部axi4总线的转换将所述多核嵌入式处理器系统210的内存映射于所述服务系统10中。

其中,所述可编程逻辑模块220(fpga)通过外部pci-express总线和内部axi4总线的转换将所述多核嵌入式处理器系统210的内存映射于所述服务系统10中的原理如下:

服务系统10和所述可编程逻辑模块220(fpga)之间的pci-express总线数据传输是基于pci-express总线地址域,所述可编程逻辑模块220(fpga)与多核嵌入式arm处理器系统之间的axi4总线数据传输是基于axi4总线地址域,这两个地址域不能直接进行数据传输,需要于所述可编程逻辑模块220(fpga)内部进行总线地址域的转换,所以通过外部pci-express总线和内部axi4总线的转换即对应于实现所述多核嵌入式处理器系统210与所述服务系统10之间的内存映射。

其中,在所述可编程逻辑模块220(fpga)内部通过axi4总线将多核嵌入式arm处理器系统的内存映射到所述服务系统10(x86server系统)中。axi4总线的数据位宽为128bit,总线频率为250mhz,数据传输带宽为4gb/s,从而使得所述服务系统10(x86server系统)可以达到几乎零延时访问多核嵌入式arm处理器系统的内存。

于本实施例中,所述通信模块240与所述片上系统200连接,用于建立所述片上系统200与所述服务系统10之间的通信连接,通信模块240通过通信接口从所述服务系统10接收并缓存升级固件文件。

其中,所述通信模块240通过高速缓存来缓存所述升级固件文件。所述dma(直接存储器访问,directmemoryaccess)模块221用于所述通信模块和所述多核嵌入式处理器系统的内存之间的数据快速搬运。

于本实施例中,所述通信模块240优选为pci-express通信接口。

即所述服务系统10(x86服务系统)与所述多核嵌入式arm处理器系统通过pci-express接口总线进行通信。

于本实施例中,所述寄存器模块222配置于所述片上系统200的可编程逻辑模块220中,所述片上系统200的可编程逻辑模块220和所述多核嵌入式处理器系统210共享所述寄存器模块222,所述寄存器模块222用于所述多核嵌入式处理器系统210与所述服务系统10之间进行控制信息交互。

具体地,于本实施例中,在所述可编程逻辑模块220(fpga)内部定义一组寄存器,用于所述服务系统10(x86server系统)和多核嵌入式arm处理器系统共享访问。所述可编程逻辑模块220(fpga)实现寄存器访问仲裁逻辑,避免所述寄存器模块222中的寄存器访问出现死锁现象。所述寄存器模块222中的共享寄存器用于所述服务系统10(x86server系统)和多核嵌入式arm处理器系统间的控制信息交互。

所以本实施例的多核嵌入式系统20的在线升级通过将多核嵌入式处理器系统210(mpsoc)本地的内存和寄存器组映射到所述服务系统10(x86server系统),来达到所述服务系统10(x86server系统)和多核嵌入式arm处理器系统间数据的交互。

于本实施例中,所述中断控制器223配置于所述片上系统200的可编程逻辑模块220中,用于在从所述服务系统10接收到所述升级固件文件时,执行中断处理,以使得所述多核嵌入式处理器系统210通过内存从高速缓存获取所述升级固件文件,实现所述多核嵌入式系统20进行在线升级。所以本实施例提供的多核嵌入式系统20可以在电子设备不掉电的情况下实现对mpsoc平台固件的升级,不会对电子设备中其他功能模块造成影响,而且实现方式简单,无需额外的硬件接口,在线升级速度快。

其中,于本实施例中,所述多核嵌入式处理器系统210将从内存获取的所述升级固件文件写入所述嵌入式多媒体存储器212(ddr4)或基于队列串行外围接口协议的闪存器(qspiflash)。

图3显示为本实施例的多核嵌入式系统的在线升级系统1的软件框架示意图。如图3所示,所述服务系统10(x86server系统)由应用程序和通信设备驱动即pcie设备驱动组成;其中应用程序实现功能主要是将要升级的文件下发至pcie设备驱动以及共享寄存器的访问;pcie设备驱动的程序主要实现与多核嵌入式系统20中的pcie设备驱动的交互功能。

多核嵌入式arm处理器系统由arm应用程序和arm设备驱动程序组成;其中,arm设备驱动程序包括共享寄存器设备驱动和内存设备驱动,设备驱动程序用于应用程序访问外部硬件。arm应用程序的功能为访问共享寄存器,从内存中读取所述服务系统10(x86server系统)下发的升级固件文件,将升级固件文件写入基于队列串行外围接口协议(qspi)的闪存器和嵌入式多媒体存储器(emmc,embeddedmultimediacard)存储,实现所述多核嵌入式系统20进行在线升级。

本实施例中,如图4所示,所述多核嵌入式系统的在线升级系统1中多核嵌入式系统20从服务系统10获取用于升级的升级固件文件的过程如下:

通信接口(pci-express通信接口)接收到服务系统10(x86server系统)下发的要传输升级固件文件的文件指令,通信接口写文件类型和文件大小寄存器,通信接口触发中断所述中断控制器223,在多核嵌入式系统20收到中断请求,以确定服务器系统10即将对多核嵌入式系统20进行升级后,多核嵌入式arm处理器系统读取文件类型和文件大小寄存器,并根据文件大小进行连续物理内存的动态内存分配(malloc),多核嵌入式arm处理器系统将申请的连续物理内存首地址写入地址寄存器,然后将地址准备(ready)位写1。通信接口在检测到地址准备位为1时,读取地址寄存器获得地址,并清除地址准备位,然后通信接口开始传输升级固件文件。在通信接口传输完毕升级固件文件时,通信接口写文件传输状态位为1,多核嵌入式arm处理器系统在检测到文件传输状态位为1时,从内存读取升级固件文件的文件数据,并清除文件传输状态位。在多核嵌入式arm处理器系统完成升级固件文件的数据读取时,写文件读完成位为1,并根据获取的文件类型将升级固件文件写入基于队列串行外围接口协议(qspi)的闪存器或嵌入式多媒体存储器212(emmc,embeddedmultimediacard)存储,实现所述多核嵌入式系统20进行在线升级。同时,通信接口在检测到文件读完成位为1时,通信接口清除文件读完成位,完成多核嵌入式系统20从服务系统10获取用于升级的升级固件文件的过程。

实施例2

如图5所示,本实施例提供一种多核嵌入式系统的在线升级方法,应用于mpsoc平台,所述多核嵌入式系统的在线升级方法包括以下步骤:

步骤s100,将多核嵌入式处理器系统与提供升级固件文件的服务系统通过通信模块相连,令可编程逻辑模块将多核嵌入式处理器系统的内存映射于服务系统中,并令所述多核嵌入式处理器系统和所述可编程逻辑模块共享寄存器模块;

步骤s200,在所述多核嵌入式系统接收到所述服务系统发送的升级固件文件时,所述多核嵌入式处理器系统通过内存获取所述升级固件文件,实现所述多核嵌入式系统进行在线升级。

具体地,于本实施例中,所述多核嵌入式处理器系统通过内存获取所述升级固件文件的过程包括:

1)在所述多核嵌入式系统接收到所述服务系统发送的升级固件文件传输指令时,所述多核嵌入式处理系统从寄存器模块中获取即将升级固件文件的文件大小和文件类型,所述多核嵌入式处理器系统基于所述升级固件文件大小申请内存地址并配置寄存器模块中的地址寄存器。

2)所述服务器系统根据寄存器模块中的地址寄存器提供的地址信息,通过所述通信接口发送升级固件文件,并在所述升级固件文件传输结束时,配置文件传输状态。

3)所述多核嵌入式处理器系统基于所述文件传输状态和文件类型,通过内存获取升级固件文件。

4)在通过内存获取所述升级固件文件之后,根据获取的升级固件文件的类型将所述升级固件文件写入嵌入式多媒体存储器或基于队列串行外围接口协议的闪存器。

本实施例中多核嵌入式系统的在线升级方法与的实现原理与实施例1中的多核嵌入式系统的在线升级系统1的实现原理相同,原理间相似或相同的技术特征不再赘述。

综上所述,本发明提供的多核嵌入式系统可以在电子设备不掉电的情况下实现对mpsoc平台固件升级的升级,不会对电子设备中其他功能模块造成影响。本发明中多核嵌入式系统实现方式简单,无需额外的硬件接口,并且还具有在线升级速度快的优点。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1