面向航天软件的在轨升级系统技术方案

技术编号:22722155 阅读:22 留言:0更新日期:2019-12-04 05:20
本发明专利技术公开了一种面向航天软件的在轨升级系统,包括存储路径输入模块,代码读取模块,代码解析模块、版本判断模块、升级标记插入模块以及代码升级模块,通过上述系统可以对需要在轨升级的软件进行编译链接操作,并使用户划定需要升级的功能模块,再实施基于数据的载荷参数优化、基于代码的可靠性提升、基于整体的故障处理,来实现在线回归测试和系统在线重构,从而实现对航天软件的在轨升级。

On orbit upgrade system for aerospace software

The invention discloses an on orbit upgrade system for aerospace software, which includes a storage path input module, a code reading module, a code analysis module, a version judgment module, an upgrade mark insertion module and a code upgrade module. Through the above system, the software that needs on orbit upgrade can be compiled and linked, and the user can define the functional modules that need to be upgraded Load parameter optimization based on data, reliability improvement based on code and fault handling based on the whole are applied to realize on-line regression test and system on-line reconstruction, so as to realize on orbit upgrade of aerospace software.

【技术实现步骤摘要】
面向航天软件的在轨升级系统
本专利技术主要涉及航天软件在轨升级领域,尤其涉及面向航天软件的在轨升级系统。
技术介绍
航天飞行器系统软件在应用领域划分中属于“安全关键领域”软件,一旦出现故障,将会导致难以预计的可怕后果。而随着航天器的飞行任务越来越复杂、在轨寿命越来越长,其控制系统软件也日益复杂、庞大和多样化,这无疑对航天器控制系统的可靠性和安全性要求提出了更大的挑战。随着航天器寿命的增长和任务难度的加大,航天软件的复杂度越来越高,需要具备在轨重构和更新能力,以应对可能出现的任务扩展和软件潜在缺陷。航天飞行器系统的计算能力和内存容量有限,众多软件协同工作,共享系统的资源,系统结合比较复杂,出现软件故障后难以及时修复。航天软件的在轨升级是指通过地面控制系统以远程注入的形式在软件不重启的情况下而完成的软件升级。对航天软件在轨升级有利于维持系统平台的稳定性,可实现在线回归测试,支持系统在线重构,是提高系统可靠性的有效途径。因此,如何实现对航天软件的在轨升级,是本领域亟需解决的技术问题。
技术实现思路
为解决以上问题,本专利技术提出了面向航天软件的在轨升级系统,通过对需要在轨升级的软件进行编译链接操作,并使用户划定需要升级的功能模块,再实施基于数据的载荷参数优化、基于代码的可靠性提升、基于整体的故障处理,来实现在线回归测试和系统在线重构,从而实现对航天软件的在轨升级。具体的,本专利技术提出了一种面向航天软件的在轨升级系统,包括:存储路径输入模块,用于在显示界面显示输入框,以使用户在输入框输入待升级目标代码的文件存储路径;代码读取模块,用于根据所述文件存储路径读取目标代码;代码解析模块,用于通过语法分析和词法分析将所述目标代码解析成抽象语法树并保存相应的版本数据以及版本标识;版本判断模块,用于根据所述版本标识判断所述目标代码是否为初始版本;升级标记插入模块,用于若所述目标代码是初始版本,则在所述目标代码中对长循环代码进行提取,并在所述目标代码中插入所述长循环代码对应的在轨升级标记;代码升级模块,用于将新代码上载至航天器系统,并根据所述在轨升级标记对所述目标代码进行升级,并开始执行。优选的,如上所述的面向航天软件的在轨升级系统,还包括:安全性检查模块,用于若所述目标代码不是初始版本,则对当前版本以及前一版本的抽象语法树进行分析,遍历两个抽象语法树的所有子树,检查函数、全局变量和类型的变更安全性;声明识别模块,用于若通过变更安全性检查,则识别所述当前版本以及所述前一版本间有升级的所有声明,所述声明包括函数声明,全局变量声明、类型声明;对所述类型声明的变更生成相应的类型转换函数;编译模块,用于编译处理所述声明,并将更新点设置在全局不变量所在的位置,所述更新点为对所述当前版本进行替换的位置;版本替换模块,用于将新版本代码上载至航天器系统,并根据所述更新点在内存中替换所述当前版本。优选的,如上所述的面向航天软件的在轨升级系统,还包括:二次开发模块,用于若没有通过变更安全性检查,则识别所述当前版本以及所述前一版本间有升级的所有声明,对没有通过变更安全性检查的声明对应的代码模块实施二次开发。优选的,如上所述的面向航天软件的在轨升级系统,所述用户编辑模块包括原子命题集编辑单元和LTL公式编辑单元。优选的,如上所述的面向航天软件的在轨升级系统,所述代码解析模块包括映射生成单元和差异分类单元。优选的,如上所述的面向航天软件的在轨升级系统,所述映射生成单元对已经重新排序和修改的函数声明和类型声明,根据抽象语法树生成旧名称与新名称的映射;所述映射包括本地变量映射、全局变量映射和类型映射;全局变量计数器对全局变量个数进行统计。优选的,如上所述的面向航天软件的在轨升级系统,所述差异分类单元访问遍历所述当前版本以及所述前一版本中的函数、全局变量和类型,以检测变更数据并收集统计信息,生成变更检测报告,将所述变更检测报告中的每个变更分类为添加、删除或更改;每当检测所述当前版本以及所述前一版本的抽象语法树不匹配时,提示用户检查确认函数语义的变更。优选的,如上所述的面向航天软件的在轨升级系统,所述安全性检查模块包括静态分析单元和不动点确定单元。优选的,如上所述的面向航天软件的在轨升级系统,所述静态分析单元使用基于抽象解释的静态分析方法,将抽象语法树转化成状态迁移系统,选择程序控制流图表示源代码的状态迁移关系;所述不动点确定单元追踪类型名称的变化并检查违规的抽象别名,构建特定的抽象域,将程序的具体语义转化到抽象语义上;结合所述抽象域和所述控制流图的信息,运用抽象解释中的迭代策略计算所述控制流图中所有节点的不动点抽象值,根据所述不动点抽象值确定变更安全性。优选的,如上所述的面向航天软件的在轨升级系统,所述编译模块包括间接引用增加单元和约束添加单元。优选的,如上所述的面向航天软件的在轨升级系统,所述间接引用增加单元检查代码的类型安全性,即检查新函数或当前函数的签名;在所述新函数中增加函数的间接引用;所述约束添加单元确定静止点,并在所述静止点中选择更新点,在插入的更新点上对更改的类型添加约束,所述静止点为程序中完成所有操作并且在所有全局状态是一致的点,所述约束为类型的更新规则。本专利技术所述的面向航天软件的在轨升级系统,具有如下有益效果:一、可通过对需要在轨升级的软件进行编译链接操作,并使用户划定需要升级的功能模块,再实施基于数据的载荷参数优化、基于代码的可靠性提升、基于整体的故障处理,来实现在线回归测试和系统在线重构。二、在航天软件运行的状态下,接收地面注入的指令,通过新旧版本对比,实施依赖关系检查、活动性检查等静态检查方法,实现软件在轨升级中数据和内存以及CPU运行状态的一致性保护,完成基于航天软件的在轨升级。三、通过远程编程手段在轨修改航天软件,在考核可修改的功能占比和模块占比以及可调节的变量占比的基础上,实现对航天器系统的可维护性进行定量评估。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:附图1示出了根据本专利技术实施例一的面向航天软件的在轨升级系统的结构图;附图2示出了根据本专利技术实施例一的代码解析模块的结构图附图3示出了根据本专利技术实施例二的面向航天软件的在轨升级系统的结构图;附图4示出了根据本专利技术实施例二的安全性检查模块的结构图;附图5示出了根据本专利技术实施例二的编译模块的结构图;附图6示出了根据本专利技术实施例三的面向航天软件的在轨升级方法的流程图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述本文档来自技高网...

【技术保护点】
1.一种面向航天软件的在轨升级系统,其特征在于,包括:/n存储路径输入模块,用于在显示界面显示输入框,以使用户在输入框输入待升级目标代码的文件存储路径;/n代码读取模块,用于根据所述文件存储路径读取目标代码;/n代码解析模块,用于通过语法分析和词法分析将所述目标代码解析成抽象语法树并保存相应的版本数据以及版本标识;/n版本判断模块,用于根据所述版本标识判断所述目标代码是否为初始版本;/n升级标记插入模块,用于若所述目标代码是初始版本,则在所述目标代码中对长循环代码进行提取,并在所述目标代码中插入所述长循环代码对应的在轨升级标记;/n代码升级模块,用于将新代码上载至航天器系统,并根据所述在轨升级标记对所述目标代码进行升级,并开始执行。/n

【技术特征摘要】
1.一种面向航天软件的在轨升级系统,其特征在于,包括:
存储路径输入模块,用于在显示界面显示输入框,以使用户在输入框输入待升级目标代码的文件存储路径;
代码读取模块,用于根据所述文件存储路径读取目标代码;
代码解析模块,用于通过语法分析和词法分析将所述目标代码解析成抽象语法树并保存相应的版本数据以及版本标识;
版本判断模块,用于根据所述版本标识判断所述目标代码是否为初始版本;
升级标记插入模块,用于若所述目标代码是初始版本,则在所述目标代码中对长循环代码进行提取,并在所述目标代码中插入所述长循环代码对应的在轨升级标记;
代码升级模块,用于将新代码上载至航天器系统,并根据所述在轨升级标记对所述目标代码进行升级,并开始执行。


2.如权利要求1所述的面向航天软件的在轨升级系统,其特征在于,还包括:
安全性检查模块,用于若所述目标代码不是初始版本,则对当前版本以及前一版本的抽象语法树进行分析,遍历两个抽象语法树的所有子树,检查函数、全局变量和类型的变更安全性;
声明识别模块,用于若通过变更安全性检查,则识别所述当前版本以及所述前一版本间有升级的所有声明,所述声明包括函数声明,全局变量声明、类型声明;对所述类型声明的变更生成相应的类型转换函数;
编译模块,用于编译处理所述声明,并将更新点设置在全局不变量所在的位置,所述更新点为对所述当前版本进行替换的位置;
版本替换模块,用于将新版本代码上载至航天器系统,并根据所述更新点在内存中替换所述当前版本。


3.如权利要求2所述的面向航天软件的在轨升级系统,其特征在于,还包括:
二次开发模块,用于若没有通过变更安全性检查,则识别所述当前版本以及所述前一版本间有升级的所有声明,对没有通过变更安全性检查的声明对应的代码模块实施二次开发。


4.如权利要求2所述的面向航天软件的在轨升级系统,其特征在于,所述代码解析模块包括映射生成单元和差异分类单元。

【专利技术属性】
技术研发人员:史建琦林荣峰黄滟鸿朱晏庆沈怡颹
申请(专利权)人:华东师范大学上海航天控制技术研究所
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1