一种针对浮空器掩星接收机双核SOC的DDR监控方法与流程

文档序号:17079610发布日期:2019-03-09 00:06阅读:359来源:国知局
一种针对浮空器掩星接收机双核SOC的DDR监控方法与流程

本发明属于内存监控技术领域,特别涉及一种针对浮空器掩星接收机双核soc的ddr监控方法。



背景技术:

空间环境中存在着大量的高能带电粒子,容易导致cmos器件的电位发生跳变。在轨设备中的程序存储设备如sram、ddr等易受到单粒子事件影响,导致代码运行不正常,严重的会导致空间设备失效,因此选用带有edac功能的sram芯片或者设计内存设备监控方法。

带有edac功能的sram存储芯片,能够在发生单比特翻转时,利用edac纠错电路,对错误比特进行纠正,从而保证系统的正常运行,但是当发生多比特翻转时,edac功能无法有效对错误数据进行纠正,造成运行异常。

当前的内存监控方案,主要针对于单内核控制器如单核dsp、arm芯片等,读取flash中数据与sram中程序进行比对,不一致则回写。传统监控方案中,控制芯片在读取串行flash时(如qspi-flash),需要遵循固定的读取时序,因此需要对中断进行暂时屏蔽,防止被中断打断,造成读取时序错乱读出数据错误。屏蔽中断会带来中断响应被延迟的风险,因此传统方案不适用于中断频繁,且对中断响应有严格要求的系统中。

随着技术的发展,出现了多核控制芯片,在非对称多处理器模式下(asymmetricmultiprocessing,缩写为amp),各核可独立运行不同程序,并通过共享内存的方式进行核间数据的交互。一颗多核芯片可完成传统需要多颗芯片共同运行才能完成的任务,减少了传统芯片外围电路设计以及芯片间数据通信设计,增强了系统的可靠性。目前多核芯片已经应用于航空航天领域,对于多核控制芯片存储器监控,哈尔滨工业大学提出采用双核互检方法的监控方案,双核运行相同代码,在运行中进行代码互检,以保证代码正确性。但对于多核控制芯片,双核运行相同代码没有发挥出多核控制器的技术优势。



技术实现要素:

本发明针对现有技术中存在的技术问题,提供一种针对浮空器掩星接收机双核soc的ddr监控方法,仅使用1个内核对双核代码进行监控回写,增强了系统的抗单粒子能力,同时减少了系统中断响应被延迟的风险。

为解决上述技术问题,本发明采用的技术方案是:一种针对浮空器掩星接收机双核soc的ddr监控方法,包括以下步骤:

(1)在soc两个内核代码配置文件中,划分代码运行的ddr空间,后编译制作代码的烧录文件;

(2)制作fpga比特流文件,以及系统启动文件;

(3)制作烧录文件,在烧录文件制作时,分别将核0、核1烧录程序三备份分配到flash中的固定地址;

(4)系统上电运行后,启动代码将三备份的核0、核1程序分别3取2后,加载到ddr的对应地址中,然后跳转到核0启动运行,核0启动后,引导核1运行,整个系统启动;

(5)系统正常运行中,核0或核1中的任一核代码中的ddr监控函数分别读取核0、核1在flash中的三备份文件,与ddr中对应地址的代码进行比对,当二者不一致时,改写ddr中的代码。

作为优选,flash类型为qspi-flash。

作为优选,步骤(5)中,ddr监控函数位于核1代码的后台任务中,在系统空闲期间,该函数不断运行,该函数的主要逻辑为:

(a)读取核0的ddr中代码;

(b)读取核0对应qspi-flash中的代码;

(c)将二者进行比对,如果不一致,则改写ddr中的代码;

(d)读取核1的ddr中的代码;

(e)读取核1对应qspi-flash中的代码;

(f)将二者进行比对,如果不一致,则改写ddr中的代码。

作为优选,核0代码3备份存储于qspi-flash芯片的固定地址中。

作为优选,核1代码3备份存储于qspi-flash芯片的固定地址中。

作为优选,核0或核1中的任一核实时读取核0的三备份数据,并进行3取2操作,与核0对应ddr地址中的数据进行比对,若不一致,则改写ddr中数据。

作为优选,核0或核1中的任一核实时读取核1的三备份数据,并进行3取2操作,与核1对应ddr地址中的数据进行比对,若不一致,则改写ddr中数据。

与现有技术相比,本发明所具有的有益效果是:

1.本发明中,系统初始加载和正常运行过程中,均实现了程序的3取2操作,保证了加载程序的正确性。

2.本发明中,系统正常运行过程中,通过任一核进行ddr监控,相比于各核单独维护自身ddr代码的方案,使另一核不必在运行过程中屏蔽中断后操作qspi-flash造成中断响应延迟,保证了系统对于中断响应的快速性。增强空间电子设备的可靠性。

3.本发明中,系统的双核运行不同代码,处理不同任务,发挥了多核处理器的技术优势。

附图说明

图1为本发明的流程示意图。

具体实施方式

为使本领域技术人员更好的理解本发明的技术方案,下面结合附图和具体实施例对本发明作详细说明。

本发明的实施例公开了一种针对浮空器掩星接收机双核soc的ddr监控方法,如图所示,其包括以下步骤:

(1)在soc两个内核代码配置文件中,划分代码运行的ddr空间,后编译制作代码的烧录文件;

(2)制作fpga比特流文件,以及系统启动文件;

(3)制作烧录文件,在烧录文件制作时,分别将核0、核1烧录程序三备份分配到flash中的固定地址;

(4)系统上电运行后,启动代码将三备份的核0、核1程序分别3取2后,加载到ddr的对应地址中,然后跳转到核0启动运行,核0启动后,引导核1运行,整个系统启动;

(5)系统正常运行中,核0或核1中的任一核代码中的ddr监控函数分别读取核0、核1在flash中的三备份文件,与ddr中对应地址的代码进行比对,当二者不一致时,改写ddr中的代码。

本实施例中,flash类型为qspi-flash。

本实施例中,步骤(5)中,ddr监控函数位于核1代码的后台任务中,在系统空闲期间,该函数不断运行,该函数的主要逻辑为:

(a)读取核0的ddr中代码;

(b)读取核0对应qspi-flash中的代码;

(c)将二者进行比对,如果不一致,则改写ddr中的代码;

(d)读取核1的ddr中的代码;

(e)读取核1对应qspi-flash中的代码;

(f)将二者进行比对,如果不一致,则改写ddr中的代码。

本实施例中,核0代码3备份存储于qspi-flash芯片的固定地址中。

本实施例中,核1代码3备份存储于qspi-flash芯片的固定地址中。

本实施例中,核0或核1中的任一核实时读取核0的三备份数据,并进行3取2操作,与核0对应ddr地址中的数据进行比对,若不一致,则改写ddr中数据。

本实施例中,核0或核1中的任一核实时读取核1的三备份数据,并进行3取2操作,与核1对应ddr地址中的数据进行比对,若不一致,则改写ddr中数据。

本实施例中,浮空器掩星接收机核心控制芯片为一款双核soc芯片,工作在amp模式,核0核1运行不同代码,其中一核处理频繁中断任务,另一核处理系统控制、数据管理、ddr监控等对中断延迟不敏感的任务。

以上通过实施例对本发明进行了详细说明,但所述内容仅为本发明的示例性实施例,不能被认为用于限定本发明的实施范围。本发明的保护范围由权利要求书限定。凡利用本发明所述的技术方案,或本领域的技术人员在本发明技术方案的启发下,在本发明的实质和保护范围内,设计出类似的技术方案而达到上述技术效果的,或者对申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖保护范围之内。应当注意,为了清楚的进行表述,本发明的说明中省略了部分与本发明的保护范围无直接明显的关联但本领域技术人员已知的部件和处理的表述。

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