[发明专利]一种基于二次链接的航天器在轨维护注入码生成方法有效
申请号: | 201710476446.5 | 申请日: | 2017-06-21 |
公开(公告)号: | CN107315587B | 公开(公告)日: | 2020-08-14 |
发明(设计)人: | 李振松;索旭华;傅秀涛;奚坤;陈朝晖;党纪红;董晓刚;杜建伟;刘新彦;李光旭;周中泽 | 申请(专利权)人: | 北京控制工程研究所 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 中国航天科技专利中心 11009 | 代理人: | 马全亮 |
地址: | 100080 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 二次 链接 航天器 维护 注入 生成 方法 | ||
一种基于二次链接的航天器在轨维护注入码生成方法,包括:(1)还原航天器在轨运行软件的状态,生成在轨状态目标文件;(2)编写在轨维护源代码;(3)使用编译器对编写的在轨维护源代码进行单独编译,生成待上传目标文件;(4)新建二次链接的脚本文件;(5)基于建立的二次链接脚本文件,对在轨状态目标文件和待上传目标文件进行链接,生成新的可执行文件;(6)将新的可执行文件转换成链接指令文件或BIN文件,从链接指令文件或BIN文件中直接提取指定起始地址的注入码指令。本发明在保证原在轨软件二进制码不发生变化的前提下,自动实现在轨维护软件中各个地址相关项的重定位过程,从而大大提升了航天器在轨维护注入码的生成效率和正确性。
技术领域
本发明涉及一种基于二次链接的航天器在轨维护注入码生成方法,属于航天器在轨维护领域。
背景技术
航天器软件的在轨维护能力是保证航天器长寿命不可或缺的手段,与硬件的冗余备份相比,这种方法更经济更灵活。通过软件在轨维护来提高航天器的长寿命和高可靠性的方法越来越受到重视。
当前我国航天器在轨运行的处理器平台主体是sparc系列体系架构。航天器在轨运行维护的主要手段是实施软件的在轨维护。航天器在轨软件的维护,主要是基于钩子函数的方法。在可写存储注入区上注一段可执行指令码,当在轨维护使能时,钩子函数通过指定的地址跳转到注入区执行,执行完毕后再返回或退出原函数继续执行。在这种应用场景下,在轨维护注入码的生成是软件在轨维护的关键环节,同时也是一件比较困难的工作。之前在轨维护注入码的生成主要是通过对原在轨软件和在轨维护软件编译结果文件进行解析,梳理出在轨维护指令码中所有需要重定位的信息,并完成重定位。该过程一方面要求熟练掌握编译结果文件格式,能够梳理出所有的重定位信息;另一方面要求对指令规则集有较深入的了解,能够对在轨维护指令码实现重定位。并且当在轨维护软件的编写需要使用原在轨运行软件中未用到的库函数时,原有通过文件解析实现指令码重定位的方法实现起来比较麻烦。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提出一种基于二次链接的航天器在轨维护注入码生成方法,在保证原在轨软件二进制码不发生变化的前提下,自动实现在轨维护软件中各个地址相关项的重定位过程,从而大大提高了航天器在轨维护注入码的生成效率和正确性。
本发明的技术方案是:
一种基于二次链接的航天器在轨维护注入码生成方法,步骤如下:
(1)还原航天器在轨运行软件的状态,生成新的在轨状态目标文件;
(2)编写在轨维护源代码;
(3)使用编译器对步骤(2)中编写的在轨维护源代码进行单独编译,生成待上传目标文件;
(4)新建二次链接的脚本文件;
(5)基于步骤(4)建立的二次链接脚本文件,使用编译器,对所述在轨状态目标文件和待上传目标文件进行链接,生成新的可执行文件;
(6)通过编译器将所述新的可执行文件转换成链接指令文件或BIN文件,从链接指令文件或BIN文件中直接提取指定起始地址的注入码指令,从而完成航天器在轨维护注入码的生成。
所述步骤(1)还原航天器在轨运行软件的状态,生成新的在轨状态目标文件,具体为:使用航天器原在轨软件的源文件编译目录进行编译并实现一次链接,将第一次链接后生成的可执行文件进行文件格式转换,生成新的在轨状态目标文件。
所述步骤(2)编写在轨维护源代码,具体为:在航天器原在轨软件的源文件编译目录下,新建在轨维护的注入代码源文件,并编写好相应的在轨维护源代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京控制工程研究所,未经北京控制工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710476446.5/2.html,转载请声明来源钻瓜专利网。