logo好方法网

支持在轨动态更新的软硬件协同的应用程序维护方法


技术摘要:
本发明提供了一种支持在轨动态更新的软硬件协同的应用程序维护方法,包括:步骤一,可在轨动态更新的应用程序做三份存储,即所有应用程序都分别存储至主分区、冗余分区1、冗余分区2;步骤二,分别计算三份应用程序目标代码的校验码,并存储;步骤三,定期对应用程序校  全部
背景技术:
随着星载综合电子系统功能的复杂化,传统“裸机”开发的星载系统软件模式变得 捉襟见肘,使用实时嵌入式操作系统进行星载软件的开发是目前及未来星载综合电子系统 的趋势。而使用星载嵌入式操作系统后,会带来功能模块众多、程序逻辑复杂。这就导致在 星载系统软件在地面测试验证时,无法完全覆盖所有功能模块,会导致星载系统软件在轨 后,仍然存在功能缺陷需要改进和逻辑流程不符合设计意图需要修正。甚至有些模块功能 未完全实现,留待在轨数据完备后,再进行相应的补充完善,即星载系统软件需要在轨功能 扩展。而卫星在轨运行后,模块的在轨启用和维护的正确性,直接决定了星载系统软件在轨 运行能力,关系到卫星在轨使用寿命和可靠性的保证。 应用程序在轨维护在现有航天工程中得到广泛的应用,已具有在轨热更新,可修 改任意应用程序功能,但应用程序可靠性的维护目前使用的技术仅依靠对应用程序的定时 读写。
技术实现要素:
本发明的目的在于提供一种支持在轨动态更新的软硬件协同的应用程序维护方 法。 为解决上述问题,本发明提供一种支持在轨动态更新的软硬件协同的应用程序维 护方法,包括: 步骤一,在轨动态更新的所有应用程序做三份存储,其中,应用程序的存储空间分 割为主分区、冗余分区1、冗余分区2; 步骤二,在主分区、冗余分区1、冗余分区2的每个应用程序存储时,为该应用程序 生成三份同样的校验码,生成的校验码写入该应用程序的校验码文件; 步骤三,星载应用程序运行过程中,周期性的对主分区、冗余分区1或冗余分区2中 的每个应用程序的三份校验码进行“三取二”比对和刷新; 步骤四,依据主分区、冗余分区1、冗余分区2的顺序,如果主分区、冗余分区1或冗 余分区2中应用程序的校验码正确,则启动相应分区的该应用程序; 步骤五,如果主分区、冗余分区1和冗余分区2的校验码与相应的应用程序的校验 码均不一致,则从主分区、冗余分区1和冗余分区2中的3份应用程序取出一份正确应用程序 执行。 进一步的,上述方法中,步骤三,星载应用程序运行过程中,周期性的对主分区、冗 余分区1或冗余分区2中的每个应用程序的三份校验码进行“三取二”比对和刷新,包括: 星载应用程序运行过程中,FPGA芯片周期性的分别对主分区、冗余分区1或冗余分 区2中三份校验码进行“三取二”比对, 6 CN 111580844 A 说 明 书 2/12 页 若“三取二”比对发现主分区、冗余分区1或冗余分区2中的3份校验码各自至少二 份校验码相同,则用FPGA芯片分别对主分区、冗余分区1或冗余分区2中的3份校验码文件进 行刷新,否则不对校验码进行刷新 进一步的,上述方法中,若“三取二”比对发现主分区、冗余分区1或冗余分区2中的 3份校验码各自至少二份校验码相同,则用FPGA芯片分别对主分区、冗余分区1或冗余分区2 中的3份校验码文件进行刷新,否则不对校验码进行刷新,包括: 步骤S31:若主分区内第1份校验码文件与主分区内第2份校验码文件相同,则将主 分区内第1份校验码写入主分区内第3份校验码文件; 步骤S32:若主分区内第1份校验码文件与主分区内第2份校验码文件不同,则将主 分区内第1份校验码文件与主分区内第3份校验码文件进行比对; 步骤S33:若主分区内第1份校验码文件与主分区内第3份校验码文件相同,则将主 分区内第1份校验码文件写入主分区内第2份校验码文件; 步骤S34:若主分区内第1份校验码文件与主分区内第3份校验码文件不同,则将主 分区内第2份校验码文件与主分区内第3份校验码文件进行比对; 步骤S35:若主分区内第2份校验码文件与主分区内第3份校验码文件相同,则将主 分区内第2份校验码文件写入主分区内第1份校验码文件; 步骤S36:若主分区内第2份校验码文件与主分区内第3份校验码文件不同,不对主 分区内这三份校验码文件进行刷新。 进一步的,上述方法中,若“三取二”比对发现主分区、冗余分区1或冗余分区2中的 3份校验码各自至少二份校验码相同,则用FPGA芯片分别对主分区、冗余分区1或冗余分区2 中的3份校验码文件进行刷新,否则不对校验码进行刷新,包括: 步骤S41:若冗余分区1内第1份校验码文件与冗余分区1内第2份校验码文件相同, 则将冗余分区1内第1份校验码写入冗余分区1内第3份校验码文件; 步骤S42:若冗余分区1内第1份校验码文件与冗余分区1内第2份校验码文件不同, 则将冗余分区1内第1份校验码文件与冗余分区1内第3份校验码文件进行比对; 步骤S43:若冗余分区1内第1份校验码文件与冗余分区1内第3份校验码文件相同, 则将冗余分区1内第1份校验码文件写入冗余分区1内第2份校验码文件; 步骤S44:若冗余分区1内第1份校验码文件与冗余分区1内第3份校验码文件不同, 则将冗余分区1内第2份校验码文件与冗余分区1内第3份校验码文件进行比对; 步骤S45:若冗余分区1内第2份校验码文件与冗余分区1内第3份校验码文件相同, 则将冗余分区1内第2份校验码文件写入冗余分区1内第1份校验码文件; 步骤S46:若冗余分区1内第2份校验码文件与冗余分区1内第3份校验码文件不同, 不对冗余分区1内这三份校验码文件进行刷新。 进一步的,上述方法中,若“三取二”比对发现主分区、冗余分区1或冗余分区2中的 3份校验码各自至少二份校验码相同,则用FPGA芯片分别对主分区、冗余分区1或冗余分区2 中的3份校验码文件进行刷新,否则不对校验码进行刷新,包括: 步骤S51:若冗余分区2内第1份校验码文件与冗余分区2内第2份校验码文件相同, 则将冗余分区2内第1份校验码写入冗余分区2内第3份校验码文件; 步骤S52:若冗余分区2内第1份校验码文件与冗余分区2内第2份校验码文件不同, 7 CN 111580844 A 说 明 书 3/12 页 则将冗余分区2内第1份校验码文件与冗余分区2内第3份校验码文件进行比对; 步骤S53:若冗余分区2内第1份校验码文件与冗余分区2内第3份校验码文件相同, 则将冗余分区2内第1份校验码文件写入冗余分区2内第2份校验码文件; 步骤S54:若冗余分区2内第1份校验码文件与冗余分区2内第3份校验码文件不同, 则将冗余分区2内第2份校验码文件与冗余分区2内第3份校验码文件进行比对; 步骤S55:若冗余分区2内第2份校验码文件与冗余分区2内第3份校验码文件相同, 则将冗余分区2内第2份校验码文件写入冗余分区2内第1份校验码文件; 步骤S56:若冗余分区2内第2份校验码文件与冗余分区2内第3份校验码文件不同, 不对冗余分区2内这三份校验码文件进行刷新。 进一步的,上述方法中,步骤四,依据主分区、冗余分区1、冗余分区2的顺序,如果 主分区、冗余分区1或冗余分区2中应用程序的校验码正确,则启动相应分区的该应用程序, 包括: 步骤四一,启动应用程序时,先计算主分区内应用程序的校验码,将该校验码与存 放在主分区内的校验码进行比对,得到比对结果, 步骤四二,依据所述比对结果: 若比对发现计算的校验码与主分区内存储的校验码相同,则操作系统启动主分区 内的应用程序; 若计算的校验码与主分区存储的校验码不同,则与冗余分区1中存储的校验码进 行比对; 步骤四三,依据计算的校验码与冗余分区1中存储的校验码比对结果: 若发现计算的校验码与存储在冗余分区1中的校验码相同,则操作系统启动冗余 分区1中的应用程序,并启动对主分区中存放应用程序和校验码进行刷新; 若发现计算的校验码与冗余区1的校验码不同,与冗余分区2中的校验码进行比 对; 步骤四四,依据计算的校验码与冗余分区2中存储的校验码比对结果: 若发现计算的校验码与存储在冗余分区2中的校验码相同,则操作系统启动冗余 分区2中的应用程序,并对主分区、冗余分区1中存放应用程序和校验码进行刷新。 进一步的,上述方法中,步骤四三中,启动对主分区中存放应用程序和校验码进行 刷新,包括: FPGA芯片读取冗余分区1中的应用程序文件和校验码文件,写入并覆盖主分区中 相应的应用程序文件和校验码文件。 进一步的,上述方法中,步骤四四中,对主分区、冗余分区1中存放应用程序和校验 码进行刷新,包括: FPGA芯片读取冗余分区2中的应用程序文件和校验码文件,写入并覆盖主分区、冗 余分区1中相应的应用程序文件和校验码文件。 进一步的,上述方法中,步骤四中,对主分区、冗余分区1、冗余分区2中存放的校验 码的读取由FPGA芯片采用三取二方式获取,包括: 步骤S71:若分区内第1份校验码文件与分区内第2份校验码文件相同,则将分区内 第1份校验码写入分区内第3份校验码文件,并以第1份校验码文件为获取的校验码; 8 CN 111580844 A 说 明 书 4/12 页 步骤S72:若分区内第1份校验码文件与分区内第2份校验码文件不同,则将分区内 第1份校验码文件与分区内第3份校验码文件进行比对; 步骤S73:若分区内第1份校验码文件与分区内第3份校验码文件相同,则将分区内 第1份校验码文件写入分区内第2份校验码文件,并以第1份校验码文件为获取的校验码; 步骤S74:若分区内第1份校验码文件与分区内第3份校验码文件不同,则将分区内 第2份校验码文件与分区内第3份校验码文件进行比对; 步骤S75:若分区内第2份校验码文件与分区内第3份校验码文件相同,则将分区内 第2份校验码文件写入分区内第1份校验码文件,并以第2份校验码文件为获取的校验码; 步骤S76:若分区内第2份校验码文件与分区内第3份校验码文件不同,不对分区内 这三份校验码文件进行刷新,则以第1份校验码文件为获取的校验码。 进一步的,上述方法中,步骤五,如果主分区、冗余分区1和冗余分区2的校验码与 相应的应用程序的校验码均不一致,则从主分区、冗余分区1和冗余分区2中的3份应用程序 取出一份正确应用程序执行,包括: 若比对发现计算的校验码与主分区、冗余分区1和冗余分区2存储的校验码均不 同,操作系统内存管理部件则启动对主分区、冗余分区1、冗余分区2中存放3份应用程序进 行按位“三取二”操作,形成一份应用程序,并对形成的一份应用程序启动执行。 进一步的,上述方法中,所述按位“三取二”,包括: 在3份校验码文件中,读取的序号相同的字或字节,将该字或字节中序号相同的 位,进行异或运算,将异或运算的结果作为该位的值。与现有技术相比,本发明与现有星载 软件在轨更新与维护技术相比,利用本发明,可以对所有应用程序进行在轨更新和维护,解 决了卫星在轨期间更新的应用程序难以确保其代码正确性的问题。进一步地,由于星载应 用软件和操作系统是以文件形式存放的,运用该发明,还能达到如下有益效果: 1、采用同样的实现方式,对星载操作系统文件进行在轨更新和维护,可以实现卫 星在轨期间对操作系统进行升级,节约研制时间和成本; 2、可以适应不同的卫星型号,具有广泛的适用性。 附图说明 图1是本发明一实施例的支持在轨动态更新的软硬件协同的应用程序维护方法的 实现流程示意图; 图2是本发明一实施例的具体实施过程中的在轨热更新流程图。
下载此资料需消耗2积分,
分享到:
收藏