CN114500479B - 一种多核嵌入式集成软件系统程序上传方法及系统 - Google Patents
一种多核嵌入式集成软件系统程序上传方法及系统 Download PDFInfo
- Publication number
- CN114500479B CN114500479B CN202111614499.1A CN202111614499A CN114500479B CN 114500479 B CN114500479 B CN 114500479B CN 202111614499 A CN202111614499 A CN 202111614499A CN 114500479 B CN114500479 B CN 114500479B
- Authority
- CN
- China
- Prior art keywords
- layer
- software module
- dsp
- uploading
- data
- 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.)
- Active
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种多核嵌入式集成软件系统程序上传方法及系统,根据硬件间通信方式,实现第一层软件模块向其他硬件平台上的第二层软件模块的数据传输先将程序数据通过板间通信传给目标核,再由目标核的软件烧写模块将程序烧写入目标核的存储空间中;当第三层软件模块与第一层软件模块运行在不同的硬件平台上时,由第一层软件模块接收到外部数据后,先传输给与第三层软件模块在同一平台上的第二层软件模块暂存,再由第二层软件模块分包分别传输至第三层软件模块所在的芯片;第一层软件模块汇总接收各个软件模块的传输过程信息和上传结果,将过程信息和上传结果通过对外接口应答给外部设备。能够保证上传功能的可靠性和通用性,协议内容丰富全面适用范围广泛。
Description
技术领域
本发明涉及集成软件系统技术领域,特别涉及一种多核嵌入式集成软件系统程序上传方法及系统。
背景技术
多核嵌入式集成软件系统指多芯片、多板间通信的底层架构构建起的多软件协同工作系统,软件系统由底层硬件启动后由固定逻辑自动加载,因此软件固化后存在更改升级不灵活、代价大的问题。二次引导技术是解决单核软件升级困难的有效方法,即在完成正式功能软件的同时编写一段升级软件的引导程序,每次硬件启动后先启动引导程序,当需要程序升级时利用引导程序实现程序升级,若不需要升级则二次引导启动正式功能的软件加载运行。但是对于多芯片、多板间通信的多核软件系统,一个二次引导程序无法满足复杂的多核程序上传,特别是FPGA芯片不支持二次引导的方法升级程序。多核软件系统的程序上传需要根据软件功能、硬件上电顺序、芯片外设搭载情况设计完整的多核协同工作流程,目前仍缺少针对于多核嵌入式软件系统的完整上传方案。
发明内容
本发明提出一种多核嵌入式集成软件系统程序上传方法及系统,用于解决复杂软件集成系统,特别是含FPGA软件的软件系统程序上传困难的问题。
本发明提出一种多核嵌入式集成软件系统程序上传方法,其包括:
步骤一,将多核集成嵌入式软件系统运行的硬件平台划分软件模块层次:第一层软件模块控制系统内部统一向外通信的接口功能,其能够运行在与系统实现接口功能的硬件平台上,第二层软件模块为设置在各个内部功能的硬件平台上且负责与第一层软件模块通信并且能够控制存储设备的软件模块,第三层软件模块为各个硬件平台的内部软件模块;
步骤二,使用二次引导的方法实现第一层软件的程序上传功能。第一层软件模块与上位机直接通信使得第一软件模块可接收上位机的指令和程序数据,从而实现第一层软件的程序上传;
步骤三,设置第二层软件模块的二次引导程序,使得第二层软件模块收到第一层软件模块发送的数据后能使用二次引导的方式完成上传;
步骤四,制订上传文件格式信息;
步骤五,根据硬件内部通信方式,实现第一层软件模块向同硬件平台上的第三层软件模块的程序上传;底层第三层软件模块采用即传即烧的方式完成上传流程;
步骤六,根据系统内各类硬件间的通信方式,制订对应的通信协议,实现第一层软件模块向其他硬件平台上的第二层软件模块的数据传输:先将程序数据通过板间通信传给目标核,再由目标核的软件烧写模块将程序烧写入目标核的存储空间中;
步骤七,当第三层软件模块与第一层软件模块运行在不同的硬件平台上时,由第一层软件模块接收到外部数据后,先传输给与第三层软件模块在同一平台上的第二层软件模块暂存,再由第二层软件模块分包分别传输至第三层软件模块所在的芯片;
步骤八,第一层软件模块汇总接收各个软件模块的传输过程信息和上传结果,将过程信息和上传结果通过对外接口应答给外部设备。
进一步的,多核集成嵌入式软件系统中含多块电路板作为硬件平台,每块电路板上含多个芯片核,每个芯片上运行一个软件模块组成所述多核软件系统。
进一步的,第一层软件模块运行在DSP上作为第一层DSP软件模块,第二层软件模块运行在DSP上作为第二层DSP软件模块,第三层软件模块运行在FPGA上作为第三层FPGA软件模块;当第三层FPGA软件模块与第一层DSP软件模块运行在不同的硬件平台上时,由第一层软件模块接收到外部数据后,先传输给与第三层FPGA软件模块在同一平台上的第二层软件模块暂存,再由第二层DSP软件模块分包分别传输至第三层FPGA软件模块所在的芯片。
进一步的,上传文件格式信息包括:整个文件大小、文件头标识、文件大小、程序ID、校验信息、版本信息、文件信息、芯片标识、擦写关键字、包长度、Flash块容量、上传软件首地址、保留扩展信息。
进一步的,步骤五根据硬件内部通信方式,实现第一层软件模块向同硬件平台上的第三层软件模块的程序上传,包括:第一步,第一层DSP软件模块接收到数据后解读数据文件头,解析为同平台的第三层FPGA软件模块;第二步,第一层DSP软件模块根据共同拟定的协议向第三层FPGA软件模块发送握手指令通知第三层FPGA软件模块进入程序上传状态,第三层FPGA软件模块收到握手指令后向第一层DSP软件模块应答握手成功;第三步,第一层DSP软件模块组数据帧向第三层FPGA软件模块发送并等待第三层FPGA软件模块应答,第三层FPGA软件模块接收到数据帧后先应答第一层DSP软件模块成功接收,随后开始自身内部的flash存储擦写工作直至完成;第四步,收到第三层FPGA软件模块应答成功接收后,第一层DSP软件模块开始向第三层FPGA软件模块发送查询帧,查询第三层FPGA软件模块内部flash存储擦写状态,全部数据发送成功或失败退出后,由第一层DSP软件模块根据状态填写外部应答信息,经以太网接口传至上位机。
进一步的,步骤五进一步包括:其中所述应答包含“烧写成功”、“正在烧写”、“通信错误”三种情况,当第三层FPGA软件模块应答结果为“正在烧写”时第一层DSP软件模块以轮询的方式持续查询等待最多100ms,当应答结果为“烧写成功”时第一层DSP软件模块组帧并发送下一帧数据帧,当应答结果为“烧写错误”或等待超时无应答时重复第四步最多三次,若仍失败则退回到第三步最多三次。
进一步的,步骤六进一步包括:第一步,第一层DSP软件模块接收到数据后解读文件头,解析为第二层DSP软件模块;第二步,为了使DSP启动引导程序给第二层DSP软件模块所在硬件平台断电重启,并向DSP连续发送握手指令,使第二层DSP软件模块在加电时一级引导程序收到握手指令后加载上传工程,进入上传准备状态,第二层DSP软件模块进入上传准备状态后向第一层DSP软件模块应答握手成功;第二步,第一层DSP软件模块接收到握手成功应答后组数据帧逐包发送,第二层DSP软件模块收到数据后存入自带DDR存储中并应答数据接收成功;第三步第一层DSP软件模块向第二层DSP软件模块发送查询指令并等待应答,第二层DSP软件模块收到查询指令后直接应答查询成功,第一层DSP软件模块收到查询成功指令后继续发送下一包数据直至全部发送完成;第四步,所有数据发送结束后,第二层DSP软件模块自行校验数据无误后开始flash烧写流程,第一层DSP软件模块以轮询的方式等待第二层DSP软件模块应答烧写结果,第一层DSP软件模块收到烧写结果后将结果写入以太网接口返回至上位机;第五步,第一层DSP软件模块给第二层DSP软件模块所在硬件平台断电。
进一步的,步骤七,当第三层软件模块与第一层软件模块运行在不同的硬件平台上时,由第一层软件模块接收到外部数据后,先传输给与第三层软件模块在同一平台上的第二层软件模块暂存,再由第二层软件模块分包分别传输至第三层软件模块所在的芯片;进一步包括:
首先,根据系统内不同硬件间通信方式,制订通信协议,实现第一层DSP软件模块向第二层DSP软件模块的数据传输,给硬件平台上电后先通过握手指令使目标DSP软件进入上传状态,在逐包传输数据由第二层DSP软件模块接收并存入DDR存储;再使用硬件内部通信方式,实现第二层DSP软件模块向同硬件平台上的第三层FPGA软件模块的程序上传,由第二层DSP软件模块向FPGA发送握手指令使第一层FPGA软件模块进入上传状态,随后发送数据指令帧和查询指令帧控制第一层FPGA软件模块上传流程,最后接收第三层FPGA软件模块上传结果返回给第一层DSP软件模块再由第一层DSP软件模块上传至上位机,从而实现各个硬件平台上第三层DSP软件模块的程序上传。
本发明还提出一种多核嵌入式集成软件系统,多核集成嵌入式软件系统由信号处理器实现,信号处理器具有两块电路板,每块电路板具有多个DSP核和FPGA核;所述多核集成嵌入式软件系统实现程序上传方法。
进一步的,信号处理器与上位机通信的电路板为接口板,另一电路板为其他板,接口板的第一层软件模块由DSP实现,其用于与上位机通信;接口板的第二层软件模块由DSP实现,用于核间、板间通信和逻辑控制;接口板的第三层软件模块由FPGA实现,用于控制接口板第一、二层软件模块之间的底层通信;其他板的第二层软件模块由DSP实现,用于进行板上逻辑控制、板间通信、核间通信;其他板的第三层软件模块由FPGA实现,用于进行运算和控制其他板第二、三层软件模块之间的底层通信。
本发明能够有效地解决嵌入式软件程序上传中,多核集成软件系统上传困难的问题,特别是没有诸如DDR等缓存外设的FPGA芯片的程序无法上传的问题。本发明通过三层软件划分统一了多软件系统的上传接口,解决了多软件多上传操作程序复杂的问题,降低了上传失败的风险;本发明设计三层软件级联向下传递数据,统一规划了系统传输链路,降低了通信误码导致上传失败的风险;本发明设计第二层软件牵引第三层软件完成程序上传的方法,解决了第三层软件通信接口少、无存储外设难以实现自身程序上传的问题;本发明设计了三级应答通信协议和集成软件系统统一的上传文件制备格式,有利于保证上传功能的可靠性和通用性,协议内容丰富全面适用范围广泛。
附图说明
图1为本发明一种多核嵌入式软件系统程序上传方法的流程示意图。
图2为本发明多核系统内部多核板间通信流程示意图。
图3为本发明软件三层划分结构与数据传输流程示意图。
图4为本发明底层FPGA核程序上传流程示意图。
图5为本发明其他板顶层核程序上传流程示意图。
具体实施方式
本发明提出一种多核嵌入式集成软件系统程序上传方法及系统。本发明将一个复杂的电路系统根据功能通信链路划分为三层:第一层由接口软件接收由外部传入系统的程序数据;第二层为不同硬件上负责与接口软件通讯的顶层软件;第三层为各硬件内部仅与该硬件顶层软件通信的底层软件,设计制订统一的上传协议,使用第一层向第二层传递数据的方式实现第二层软件的程序上传,第二层牵引第三层的方式实现无存储外设的第三次软件的程序上传功能。
为了保证程序上传可靠,方案设计逐帧应答的三级通信协议,通信协议由握手指令、上传指令、查询指令三级指令和相应的应答组成,每级指令应答错误或超时均以三次错误重传的方法保证上传流程的可靠性;方案还考虑到上传期间断电、传输异常等故障导致上传失败的情况,调试固化了第三层软件的上传程序,保证流程与正式功能逻辑分开,每次上传只上传软件正式功能部分,若上传失败上传功能不受损,可重复上传更改错误的内容。
以下结合附图和具体实施例对本发明作进一步详细说明,根据下面说明和权利要求书,本发明的优点和特征将更清楚。需要说明的是,附图均采用非常简化的形式且均适用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
需要说明的是,为了清楚地说明本发明的内容,本发明特举多个实施例以进一步阐释本发明的不同实现方式,其中,该多个实施例是列举式而非穷举式。此外,为了说明的简洁,前实施例中已提及的内容往往在后实施例中予以省略,因此,后实施例中未提及的内容可相应参考前实施例。
虽然该发明可以以多种形式的修改和替换来扩展,说明书中也列出了一些具体的实施图例并进行详细阐述。应当理解的是,发明者的出发点不是将该发明限于所阐述的特定实施例,正相反,发明者的出发点在于保护所有给予由本权利声明定义的精神或范围内进行的改进、等效替换和修改。同样的元器件号码可能被用于所有附图以代表相同的或类似的部分。
请参照图1,本发明的一种多核集成嵌入式软件系统程序上传方法,包括:接口程序软件的上传;上传文件的统一制备;其他程序软件上传等步骤。
作为具体的实施例,本发明的一种多核嵌入式集成软件系统程序上传方法包括:
步骤一,根据软件的功能属性与软件运行的硬件平台划分软件层次:整个系统中负责对系统外部通信的接口软件为第一层软件模块;多核软件系统含多个硬件平台,定义每个硬件平台上负责对外部通信且可用DDR等存储外设的软件为第二层软件模块;每个硬件平台内部固化程度高、对外接口少,仅与硬件内部软件通信的软件为第三层软件模块。如图2所示即为多核软件系统运行的硬件平台结构,整个系统中含四块电路板,每个电路板上含多个芯片核,每个芯片上运行一个软件组成整个多核软件系统,如图3所示,软件系统在硬件平台上的三层划分,第一层软件模块负责系统内部统一向外通信,可以运行在与系统实现接口功能的硬件平台上,第二层软件模块为设置在各个内部功能的硬件平台上且负责与第一层软件模块通信并且能够控制存储设备的软件模块,第三层软件模块为各个硬件平台内部软件模块,他们功能独立性高、功能较单一、仅与第二层软件模块通信。
这里,第一层、第二层软件模块都是可以控存储外设的软件模块,第三层软件模块是不可控存储外设的软件模块,第一层、第二层一般是DSP软件,第三层一般是FPGA软件,但不限于DSP和FPGA软件。例如,第一层软件模块运行在DSP上作为第一层DSP软件模块,第二层软件模块运行在DSP上作为第二层DSP软件模块,第三层软件模块运行在FPGA上作为第三层FPGA软件模块。
步骤二,使用二次引导的方法实现第一层软件模块的程序上传功能;第一层软件模块直接与上位机通信,且具有DDR、Flash等外设,可以直接使用二次引导的方式实现程序上传。第一层软件模块与上位机直接通信使得第一软件模块可直接接收上位机的指令和程序数据,从而实现第一层软件的程序上传。二次引导方法是能够控制存储外设的软件常用的升级方法,软件程序段分为引导程序和正式程序两部分,分别保存在存储外设内,当硬件上电开始运行时首先根据硬件逻辑启动引导程序,再根据引导程序将存储在指定位置的正式程序启动运行。二次引导即将正式程序再分为两部分程序,引导程序启动后首先接收由外部接口传入的信息,根据外部信息引导指定程序启动。由于上传功能通常和其他功能相互影响,使用二次引导的方法选择启动其中一个程序,能够保证上传功能和正式功能稳定可靠。
步骤三,设计第二层软件模块的二次引导程序,确保第二层软件模块收到第一层软件发送的数据后能使用二次引导的方式正常完成上传。
步骤四,制订上传文件格式,上传文件需要具有统一的文件格式,从而支持第一层软件模块根据读取上传文件内容确定文件类型、文件大小、烧写方式等上传文件格式信息,从而确定执行相应的上传流程,为了保证上传流程安全可靠,设计上传文件格式如下表。
步骤五,根据硬件内部通信方式,实现第一层软件模块向同硬件平台上的第三层软件模块的程序上传。底层第三层软件模块通常无外设DDR,无法存储数据,因此采用即传即烧的方式完成,上传流程如图4所示。其中具体包括:第一步,第一层DSP软件模块接收到数据后解读数据文件头,解析为同平台的第三层FPGA软件模块;第二步,根据共同拟定的协议向 FPGA发送握手指令通知FPGA进入程序上传状态,FPGA收到握手指令后向DSP软件应答握手成功;第三步,DSP组数据帧向FPGA发送并等待FPGA应答,FPGA接收到数据帧后先应答DSP 成功接收,随后开始自身内部的flash擦写工作直至完成;第四步,收到FPGA应答成功接收后,DSP开始向FPGA发送查询帧,查询FPGA内部flash擦写状态,其中应答包含“烧写成功”、“正在烧写”、“通信错误”三种情况,当FPGA应答结果为“正在烧写”时DSP以轮询的方式持续查询等待最多100ms,当应答结果为“烧写成功”时DSP组帧并发送下一帧数据帧,当应答结果为“烧写错误”或等待超时无应答时重复第四步最多三次,若仍失败则退回到第三步最多三次。第五步,全部数据发送成功或失败退出后,由DSP根据状态填写外部应答信息,经以太网接口传至上位机。
步骤六,根据系统内不同硬件间的通信方式,制订对应的通信协议,实现第一层软件模块向其他硬件平台上的第二层软件模块的数据传输,第二层软件模块应具有DDR等存储外设,可先将程序数据通过板间通信传给目标核,再由目标核的软件烧写模块将程序自行烧写入自带的Flash存储空间中。本步骤关键在于接口板顶层核的传输流程应与其他板自身烧写的二次引导程序协同工作,确保正确使用板间通信启动其他板顶层核,并传输数据。上传流程如图5所示。第一步,第一层DSP软件模块接收到数据后解读文件头,解析为第二层DSP软件模块;第二步,为了使DSP启动引导程序给第二层DSP软件模块所在硬件平台断电重启,并向DSP连续发送握手指令。该步骤的目的是使第二层DSP软件模块在加电时一级引导程序收到握手指令后加载上传工程,进入上传准备状态,第二层DSP软件模块进入上传准备状态后向第一层DSP软件模块应答握手成功;第二步,第一层DSP软件模块接收到握手成功应答后组数据帧逐包发送,第二层DSP软件模块收到数据后存入自带DDR中并应答数据接收成功;第三步第一层DSP软件模块向第二层DSP软件模块发送查询指令并等待应答,由于不需要立刻烧写flash第二层DSP软件模块收到查询指令后直接应答查询成功,第一层DSP软件模块收到查询成功指令后继续发送下一包数据直至全部发送完成;第四步,所有数据发送结束后,第二层DSP软件模块自行校验数据无误后开始flash烧写流程,第一层DSP软件模块以轮询的方式等待第二层DSP软件模块应答烧写结果,收到烧写结果后将结果写入以太网接口返回至上位机。第五步,给第二层DSP软件模块所在硬件平台断电。
步骤七,当第三层FPGA软件模块与第一层DSP软件模块运行在不同的硬件平台上时,由于传输链路复杂、通信时间长等原因需要第一层DSP软件模块接收到外部数据后,先传输给与FPGA软件在同一平台上的第二层DSP软件模块暂存,再由第二层DSP软件模块分包分别传输至FPGA芯片。首先,根据系统内不同硬件间通信方式,制订通信协议,实现第一层软件模块向第二层软件模块的数据传输,数据传输方式与步骤六相同,给硬件平台上电后先通过握手指令使目标DSP软件进入上传状态,在逐包传输数据由第二层DSP软件模块接收并存入DDR;再使用硬件内部通信方式,实现第二层软件向同硬件平台上的第三层软件的程序上传同步骤五,即由第二层DSP软件向FPGA发送握手指令使FPGA软件进入上传状态,随后发送数据指令帧和查询指令帧控制FPGA上传流程,最后接收FPGA上传结果返回给第一层DSP软件再由第一层DSP软件上传至上位机,从而实现各个硬件平台上第三层软件的程序上传。
步骤八,第一层软件汇总接收各个软件的传输过程信息和上传结果,通过以对外接口答给外部设备,从而使上传结果完整返回。
本发明还提出一种多核嵌入式集成软件系统,多核嵌入式集成软件系统由信号处理器实现,信号处理器具有两块电路板,每块电路板具有多个DSP核和FPGA核;所述多核集成嵌入式软件系统实现前述的程序上传方法。
信号处理器与上位机通信的电路板为接口板,另一电路板为其他板。接口板的第一层软件模块可由DSP实现,其用于与上位机通信;接口板的第二层软件模块可由DSP实现,用于核间、板间通信和逻辑控制;接口板的第三层软件模块可由FPGA实现,用于控制接口板第一、二层软件模块之间的底层通信;其他板的第二层软件模块可由DSP实现,用于进行板上逻辑控制、板间通信、核间通信;其他板的第三层软件模块可由FPGA实现,用于进行运算和控制其他板第二、三层软件模块之间的底层通信。
作为具体的实施例,某型信号处理器具有2块电路板每块电路板上都装有不同数量的DSP 核和FPGA核,其中DSP核硬件搭载了DDR等存储设备可使用二次引导的方式实现自身程序上传,FPGA核仅保留了与同平台DSP核通信的接口,与计算功能,无法存储较大数据也无法独立完成程序上传,现对该信号处理器上的所有核软件程序设计上传方案如下。
步骤一、确定与上位机通信的电路板为接口板,另一板为其他板,该信号处理机上的处理核分布情况与功能划分如下表所示:
步骤二、在接口板内搭载的多核DSP芯片通过分工协作的方式完成上位机指令的接收、解析、任务调度、流程控制等功能,多核上所有运行程序组合统称为系统的第一层DSP软件,第一层DSP软件中的核0部分程序用于实现接口板第一层DSP软件自身程序上传功能,要求该核代码简洁、可靠,只负责与上位机通信与第一层DSP软件程序上传,从而保证程序上传功能稳定可靠。伪代码如下:
1、第一层DSP软件的以太网通信模块接收上位机传输数据;
2、第一层DSP软件解析传输数据帧头;
3、If(帧头==第一层DSP软件程序)
a)校验上传文件,检查文件是否正确;
b)第一层DSP软件的核0程序执行写接口板flash功能模块,将程序数据写入接口板多核DSP芯片flash;
c)回读flash数据,确认是否完整写入;
d)将校验和回读结果写入以太网应答帧;
e)退出程序上传流程;
Else if(帧头==其他核程序)
启动其他核上传流程;
4、退出接口程序上传流程
步骤三、设计引导程序,用二次引导的方法实现其他第二层软件程序写入flash的功能。伪代码如下:
1、由第一层DSP软件控制目标板上电、加载一次引导程序5s,等待上传握手指令
2、If(其他板上的第二层DSP软件收到握手指令)
a)进入上传流程;
b)接收数据;
c)将数据写入flash;
3、Else
a)加载二次引导程序,启动正式工作流程。
步骤四,制订上传文件格式如下表:
步骤五,根据接口板内部不同芯片通信方式,制订核间通信协议,实现接口板第一层向接口板第三层的程序上传,伪代码如下。
接口板第一层DSP软件程序伪代码:
1、接口板上第一层DSP软件收到程序上传指令和数据,经解析数据为接口板FPGA程序;
2、接口板上第一层DSP软件向FPGA发送握手指令,并接口板第三层FPGA软件查询应答;
3、If(接口板上第一层DSP软件收到上传握手应答)
a)组数据帧与计算帧校验;
b)向FPGA发送数据帧;
c)等待数据帧应答;
d)查询数据帧应答;
e)If(数据帧应答==忙)
i.判断是否超时,超时退出;
ii.等待若干时间后再次查询应答;
f)Else if(数据帧应答==数据错误)
i.判断是否超时,超时退出;
ii.返回步骤b)重新发送数据帧;
g)Else if(数据帧应答==数据成功)
i.进行下一步骤;
h)向FPGA发送查询指令;
i)等待查询应答;
j)读取查询应答;
k)If(查询应答==正在烧写)
i.判断是否超时,超时退出;
ii.等待10ms后执行h)再次查询
l)Else if(查询应答==烧写错误)
i.判断是否超时,超时退出;
ii.返回步骤b)重新发送数据;
m)Else if(查询应答==烧写成功)
i.数据指针向后偏移;
ii.If(指针偏移==数据结尾)
1.退出上传流程,返回上传结果;
iii.Else返回步骤b)发送新的数据;
4、Else
a)退出上传流程,返回结果上传失败;
接口板第三层FPGA程序伪代码:
1、接口板第三层FPGA软件收到上传握手指令;
2、状态切换至上传模式,并应答握手指令;
3、接收数据指令帧;
4、数据校验完成暂存ram;
5、执行flash烧写流程;
6、应答数据指令帧;
7、接收数据查询帧;
8、检查烧写是否完成;
9、应答当前工作状况:正在烧写、烧写完成、烧写错误;
10、等待新的指令直至完成整个上传文件的烧写。
步骤六,根据板间通信方式,制订板间通信协议,实现接口板第一层向其他板第二层软件的程序上传,其他板第二层应具有DDR等存储外设,可先将程序通过板间通信传给目标核,再根据步骤三由其他板第二层的DSP软件烧写模块将程序自行烧写入自带的Flash存储空间中。第一层DSP软件板间通信与程序烧写伪代码入下。
1、接口板第一层DSP软件程序以太网通信模块接收上位机传输数据;
2、第一层DSP软件解析传输数据帧头,根据帧头判定程序文件为其他板顶层核程序;
3、上电,引导程序启动,等待上传握手指令5s;
4、If(收到上传握手指令);
a)应答握手指令,并进入上传流程;
b)If(收到上传数据指令);
i.校验数据正确后将数据写入ddr暂存;
ii.应答上传数据指令;
Else;
超时退出;
c)If(收到查询数据指令);
i.第一层DSP软件向上位机应答查询成功;
Else;
超时退出;
d)If(当前帧是最后一帧);
i.根据步骤三将DDR中暂存的数据写入flash;
ii.回读flash内容,检查是否烧写成功;
iii.将flash烧写结果写入应答;
Else返回步骤b);
5、Else;
a)加载正式程序,退出上传流程。
步骤七,根据板间通信方式向其他板的第二层软件传输板上第三层软件的程序文件同步骤六,再使用其他板第二层软件向板上第三层软件发送指令启动第三层软件烧写程序同步骤五,从而实现其他板第三层软件程序上传。
步骤八,接口板第一层软件汇总接收传输过程信息和上传结果,通过以太网应答给上位机,从而使上传结果完整返回。
至此实现了一种多核集成嵌入式软件系统程序上传方法及系统。
本发明实现了以下显著的有益效果:
操作简单:对于不同类型、不同外设、不同功能的芯片使用统一的图形界面化的操作方法,操作人员不需要了解软件的实现方法和借助特殊的烧写工具,只需使用计算机根据窗口提示选择正确的文件即可完成。
可靠性高:考虑了上传过程中意外断电、烧写失败等情况,任何情况下都支持重复上传,保证了上传功能的可靠性。
可复用度高:多核多软件使用较为统一的上传流程,提高了代码的开发和管理效率,高集成高模块化提高了代码复用性和通用性。
显然,上述实施例仅仅是为清楚地说明所作的举例,而非对实施方式的限定。对于所属技术领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍属于本发明创造的保护范围。
Claims (10)
1.一种多核嵌入式集成软件系统程序上传方法,其特征在于,其包括:
步骤一,将多核嵌入式集成软件系统运行的硬件平台划分软件模块层次:第一层软件模块控制系统内部统一向外通信的接口功能,其能够运行在与系统实现接口功能的硬件平台上,第二层软件模块为设置在各个内部功能的硬件平台上且负责与第一层软件模块通信并且能够控制存储设备的软件模块,第三层软件模块为各个硬件平台的内部软件模块;
步骤二,使用二次引导的方法实现第一层软件的程序上传功能,第一层软件模块与上位机直接通信使得第一软件模块可接收上位机的指令和程序数据,从而实现第一层软件的程序上传;
步骤三,设置第二层软件模块的二次引导程序,使得第二层软件模块收到第一层软件模块发送的数据后能使用二次引导的方式完成上传;
步骤四,制订上传文件格式信息;
步骤五,根据硬件内部通信方式,实现第一层软件模块向同硬件平台上的第三层软件模块的程序上传;底层第三层软件模块采用即传即烧的方式完成上传流程;
步骤六,根据系统内各类硬件间的通信方式,制订对应的通信协议,实现第一层软件模块向其他硬件平台上的第二层软件模块的数据传输:先将程序数据通过板间通信传给目标核,再由目标核的软件烧写模块将程序烧写入目标核的存储空间中;
步骤七,当第三层软件模块与第一层软件模块运行在不同的硬件平台上时,由第一层软件模块接收到外部数据后,先传输给与第三层软件模块在同一平台上的第二层软件模块暂存,再由第二层软件模块分包分别传输至第三层软件模块所在的芯片;
步骤八,第一层软件模块汇总接收各个软件模块的传输过程信息和上传结果,将过程信息和上传结果通过对外接口应答给外部设备。
2.根据权利要求1所述的方法,其特征在于,多核集成嵌入式软件系统中含多块电路板作为硬件平台,每块电路板上含多个芯片核,每个芯片上运行一个软件模块组成所述多核集成嵌入式软件系统。
3.根据权利要求2所述的方法,其特征在于,第一层软件模块运行在DSP上作为第一层DSP软件模块,第二层软件模块运行在DSP上作为第二层DSP软件模块,第三层软件模块运行在FPGA上作为第三层FPGA软件模块;
当第三层FPGA软件模块与第一层DSP软件模块运行在不同的硬件平台上时,由第一层软件模块接收到外部数据后,先传输给与第三层FPGA软件模块在同一平台上的第二层软件模块暂存,再由第二层DSP软件模块分包分别传输至第三层FPGA软件模块所在的芯片。
4.根据权利要求3所述的方法,其特征在于,上传文件格式信息包括:整个文件大小、文件头标识、文件大小、程序ID、校验信息、版本信息、文件信息、芯片标识、擦写关键字、包长度、Flash块容量、上传软件首地址、保留扩展信息。
5.根据权利要求4所述的方法,其特征在于,步骤五根据硬件内部通信方式,实现第一层软件模块向同硬件平台上的第三层软件模块的程序上传,包括:
第一步,第一层DSP软件模块接收到数据后解读数据文件头,解析为同平台的第三层FPGA软件模块;第二步,第一层DSP软件模块根据共同拟定的协议向第三层FPGA软件模块发送握手指令通知第三层FPGA软件模块进入程序上传状态,第三层FPGA软件模块收到握手指令后向第一层DSP软件模块应答握手成功;第三步,第一层DSP软件模块组数据帧向第三层FPGA软件模块发送并等待第三层FPGA软件模块应答,第三层FPGA软件模块接收到数据帧后先应答第一层DSP软件模块成功接收,随后开始自身内部的flash存储擦写工作直至完成;第四步,收到第三层FPGA软件模块应答成功接收后,第一层DSP软件模块开始向第三层FPGA软件模块发送查询帧,查询第三层FPGA软件模块内部flash存储擦写状态,全部数据发送成功或失败退出后,由第一层DSP软件模块根据状态填写外部应答信息,经以太网接口传至上位机。
6.根据权利要求5所述的方法,其特征在于,步骤五进一步包括:
其中所述应答包含“烧写成功”、“正在烧写”、“通信错误”三种情况,当第三层FPGA软件模块应答结果为“正在烧写”时第一层DSP软件模块以轮询的方式持续查询等待最多100ms,当应答结果为“烧写成功”时第一层DSP软件模块组帧并发送下一帧数据帧,当应答结果为“烧写错误”或等待超时无应答时重复第四步最多三次,若仍失败则退回到第三步最多三次。
7.根据权利要求6所述的方法,其特征在于,步骤六进一步包括:
第一步,第一层DSP软件模块接收到数据后解读文件头,解析为第二层DSP软件模块;
第二步,为了使DSP启动引导程序给第二层DSP软件模块所在硬件平台断电重启,并向DSP连续发送握手指令,使第二层DSP软件模块在加电时一级引导程序收到握手指令后加载上传工程,进入上传准备状态,第二层DSP软件模块进入上传准备状态后向第一层DSP软件模块应答握手成功;第二步,第一层DSP软件模块接收到握手成功应答后组数据帧逐包发送,第二层DSP软件模块收到数据后存入自带DDR存储中并应答数据接收成功;第三步,第一层DSP软件模块向第二层DSP软件模块发送查询指令并等待应答,第二层DSP软件模块收到查询指令后直接应答查询成功,第一层DSP软件模块收到查询成功指令后继续发送下一包数据直至全部发送完成;第四步,所有数据发送结束后,第二层DSP软件模块自行校验数据无误后开始flash烧写流程,第一层DSP软件模块以轮询的方式等待第二层DSP软件模块应答烧写结果,第一层DSP软件模块收到烧写结果后将结果写入以太网接口返回至上位机;第五步,第一层DSP软件模块给第二层DSP软件模块所在硬件平台断电。
8.根据权利要求7所述的方法,其特征在于,步骤七,当第三层软件模块与第一层软件模块运行在不同的硬件平台上时,由第一层软件模块接收到外部数据后,先传输给与第三层软件模块在同一平台上的第二层软件模块暂存,再由第二层软件模块分包分别传输至第三层软件模块所在的芯片;进一步包括:
首先,根据系统内不同硬件间通信方式,制订通信协议,实现第一层DSP软件模块向第二层DSP软件模块的数据传输,给硬件平台上电后先通过握手指令使目标DSP软件进入上传状态,在逐包传输数据由第二层DSP软件模块接收并存入DDR存储;再使用硬件内部通信方式,实现第二层DSP软件模块向同硬件平台上的第三层FPGA软件模块的程序上传,由第二层DSP软件模块向FPGA发送握手指令使第一层FPGA软件模块进入上传状态,随后发送数据指令帧和查询指令帧控制第一层FPGA软件模块上传流程,最后接收第三层FPGA软件模块上传结果返回给第一层DSP软件模块再由第一层DSP软件模块上传至上位机,从而实现各个硬件平台上第三层DSP软件模块的程序上传。
9.一种多核嵌入式集成软件系统,其特征在于,多核集成嵌入式软件系统由信号处理器实现,信号处理器具有两块电路板,每块电路板具有多个DSP核和FPGA核;
所述多核集成嵌入式软件系统实现权利要求1-8中任一项所述的程序上传方法。
10.根据权利要求9所述的系统,其特征在于,信号处理器与上位机通信的电路板为接口板,另一电路板为其他板,
接口板的第一层软件模块由DSP实现,其用于与上位机通信;
接口板的第二层软件模块由DSP实现,用于核间、板间通信和逻辑控制;
接口板的第三层软件模块由FPGA实现,用于控制接口板第一、二层软件模块之间的底层通信;
其他板的第二层软件模块由DSP实现,用于进行板上逻辑控制、板间通信、核间通信;
其他板的第三层软件模块由FPGA实现,用于进行运算和控制其他板第二、三层软件模块之间的底层通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111614499.1A CN114500479B (zh) | 2021-12-27 | 2021-12-27 | 一种多核嵌入式集成软件系统程序上传方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111614499.1A CN114500479B (zh) | 2021-12-27 | 2021-12-27 | 一种多核嵌入式集成软件系统程序上传方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114500479A CN114500479A (zh) | 2022-05-13 |
CN114500479B true CN114500479B (zh) | 2023-06-20 |
Family
ID=81496750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111614499.1A Active CN114500479B (zh) | 2021-12-27 | 2021-12-27 | 一种多核嵌入式集成软件系统程序上传方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114500479B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002013014A2 (en) * | 2000-08-04 | 2002-02-14 | Marconi Communications, Inc. | System and method for implementing a redundant data storage architecture |
CN101902375A (zh) * | 2010-07-09 | 2010-12-01 | 广东工业大学 | 一种基于异构网络融合的嵌入式家庭网关综合服务平台 |
CN103384268A (zh) * | 2013-06-09 | 2013-11-06 | 大连华铁海兴科技有限公司 | 一种基于网络的嵌入式集成制造数据采集终端 |
CN103455317A (zh) * | 2012-11-22 | 2013-12-18 | 江苏沙钢集团有限公司 | 基于Tuxedo、.net及Oracle三层架构开发平台的优化配置方法 |
US8726264B1 (en) * | 2011-11-02 | 2014-05-13 | Amazon Technologies, Inc. | Architecture for incremental deployment |
CN109460248A (zh) * | 2018-10-30 | 2019-03-12 | 北京航天时代激光导航技术有限责任公司 | 一种基于dsp的用户程序上传方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7325051B2 (en) * | 2001-11-06 | 2008-01-29 | International Business Machines Corporation | Integrated storage appliance |
-
2021
- 2021-12-27 CN CN202111614499.1A patent/CN114500479B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002013014A2 (en) * | 2000-08-04 | 2002-02-14 | Marconi Communications, Inc. | System and method for implementing a redundant data storage architecture |
CN101902375A (zh) * | 2010-07-09 | 2010-12-01 | 广东工业大学 | 一种基于异构网络融合的嵌入式家庭网关综合服务平台 |
US8726264B1 (en) * | 2011-11-02 | 2014-05-13 | Amazon Technologies, Inc. | Architecture for incremental deployment |
CN103455317A (zh) * | 2012-11-22 | 2013-12-18 | 江苏沙钢集团有限公司 | 基于Tuxedo、.net及Oracle三层架构开发平台的优化配置方法 |
CN103384268A (zh) * | 2013-06-09 | 2013-11-06 | 大连华铁海兴科技有限公司 | 一种基于网络的嵌入式集成制造数据采集终端 |
CN109460248A (zh) * | 2018-10-30 | 2019-03-12 | 北京航天时代激光导航技术有限责任公司 | 一种基于dsp的用户程序上传方法及系统 |
Non-Patent Citations (4)
Title |
---|
Joao Paulo Cerquinho Cajueiro. Turning Pololu 3Pi into a Multi-Programming Platform.《2018 Latin American Robotic Symposium, 2018 Brazilian Symposium on Robotics (SBR) and 2018 Workshop on Robotics in Education (WRE)》.2018,全文. * |
Jose Roberto Fonseca S. ; Pedro Vitor S.G. de Lima ; Maria Helena R.A. Bezerra ; Joao Marcelo X.N. Teixeira * |
Revanna, Kashi Vishwanath ; Krishnakumar, Vivek ; Dong, Qunfeng.A web-based software system for dynamic gene cluster comparison across multiple genomes.《WFFJ》.2009,全文. * |
基于三层体系结构的软件应用框架分析与设计;张亮;谭瑛;周小波;周东文;;太原科技大学学报(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114500479A (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104579719B (zh) | 一种固件的升级方法和系统、上位机和光模块 | |
CN102968291B (zh) | 包括可变写命令调度的内存系统 | |
US20070186092A1 (en) | Multiprocessor system and boot-up method of slave system | |
US20060064515A1 (en) | Information processing system and information processing method | |
JPS631631B2 (zh) | ||
CN103777972A (zh) | 基于现场可编程门阵列的系统、配置方法以及升级方法 | |
CN111176739A (zh) | 一种系统启动方法、装置、设备及存储介质 | |
CN112711550B (zh) | Dma自动配置模块和片上系统soc | |
CN113553081A (zh) | 一种基于zynq芯片的fpga加载方法 | |
CN101196823A (zh) | 一种开放应用架构中软件在线升级的方法、系统及设备 | |
CN116306455A (zh) | 一种适用于2D-Mesh拓扑的晶上系统的高速配置管理方法 | |
CN114500479B (zh) | 一种多核嵌入式集成软件系统程序上传方法及系统 | |
US6944649B1 (en) | Electronic control unit having single non-volatile memory for multiple central processing units and data retrieval method | |
CN105718396A (zh) | 一种大数据主设备传输的i2c总线装置及其通讯方法 | |
CN111800488B (zh) | 一种基于udp和ipv6协议的数据传输方法及系统 | |
US20070073893A1 (en) | Embedded protocol selection technique, related interface and computer program product | |
CN112579506A (zh) | Bios与bmc通信的方法、bios、bmc和服务器 | |
CN100426248C (zh) | 网络附加存储设备测试系统及方法 | |
CN116521081A (zh) | 组板载独立磁盘冗余阵列的方法、装置、设备及存储介质 | |
CN116244255A (zh) | Rsmc芯片、芯片多阶段启动方法以及北斗通信导航设备 | |
CN113886297B (zh) | 一种基于dma的spi并发通讯se装置及方法 | |
CN115964195A (zh) | Dds主题的进程通信方式配置方法及装置 | |
CN115599424A (zh) | 一种采用cpu远程更新fpga固件的方法 | |
CN110187891B (zh) | 一种用于多核可编程控制器的程序开发方法及系统 | |
CN115080490B (zh) | 一种自适应调优的spi通信方法及系统 |
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 |