[发明专利]一种在轨细粒度的功能函数增加方法有效
申请号: | 201410060563.X | 申请日: | 2014-02-21 |
公开(公告)号: | CN103984566B | 公开(公告)日: | 2017-01-18 |
发明(设计)人: | 赵英辉;程胜;卓保特;任永青 | 申请(专利权)人: | 北京神舟航天软件技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京世誉鑫诚专利代理事务所(普通合伙)11368 | 代理人: | 孙国栋 |
地址: | 100094*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 细粒度 功能 函数 增加 方法 | ||
技术领域
本发明属于嵌入式实时操作系统开发领域,具体地说,涉及一种在轨细粒度的功能函数增加方法。
背景技术
星务系统长期运行在轨道上,随着时间的推移,系统需要增加某些功能模块,来实现特殊的功能,需对现有的程序进行更新,通常实现方法包括增量程序生成、增量程序的上注、增量程序重组、更新程序的运行。
现有技术存在的主要问题:
针对增量程序的更新方法,通常通过字节对比,生成增量文件,增量文件中需要包含更新字节的地址和长度,当不同字节的数量多且比较零散时,这就造成增量文件的容量特别大,因此,将增量文件上传到在轨星务系统,这就增加了上传时间,同时为了接收这些增量文件也需要开辟相当大的内存空间,然后将增量文件烧写到非易失性存储器(FLASH或EEPROM)中。如果对新程序有一点的改动,就需要从新生成增量文件,上传,这样就降低了效率。
针对增量重组,通常的方法就是将增量文件烧写到非易失性存储器(FLASH或EEPROM)中,然后重启系统,启动程序检测有增量文件,会根据增量文件地址和长度在RAM中替换掉原程序,如果跟新的字节比较零散,且多,这就增加了启动时间。
发明内容
本发明要解决的技术问题是克服上述缺陷,提供一种在轨细粒度的功能函数增加方法,通过简单易操作的方法来简化增量程序文件的生成的步骤,通过 特定的方法简化增量程序的在轨更新,且程序更新后不需重新启动计算机来运行增量程序,同时,还支持是否恢复更新之前的功能。
为解决上述问题,本发明所采用的技术方案是:
一种在轨细粒度的功能函数增加方法,其特征在于:所述功能函数增加方法如下:通过链接脚本将需要增加的功能函数定义为专属段,且定位到程序末尾处,这样可以有效地利用内存没有使用的空间,通过专用的工具将专属段拷贝出来,上传到在轨星务系统内存中,并将此函数的地址增加到功能函数查找表中,等待任务的执行。
所述功能函数增加方法的步骤为:
步骤一:增量文件的生成:通过链接脚本将需要增加的功能函数定义为专属段,且定位到程序的末尾处,这样可以有效地利用内存没有使用的空间,通过专用工具将专属段拷贝出来,生成增量文件;
步骤二:功能函数二进制文件的接收:生成的功能函数二进制通过远程传输,注入到在轨计算机中。
所述步骤一中包括:
1)、在需要定点编译的函数声明中添加attribute属性;
2)、在连接脚本中添加.hooktext1、.hooktext2、.hooktext2为自定义的新段名;在连接脚本中添加*(.special*)为所有通过attribute定义的.special*的函数代码;
3)、然后将最后编译出来的ELF文件XX.exe文件通过以下objcopy工具将定点编译的特定段.hooktext1段拷贝成功能函数二进制文件。
由于采用了上述技术方案,与现有技术相比,本发明提供了一种全新的星务软件程序更新的方法,通过简单易操作的方法来简化增量程序文件的生成的 步骤,通过特定的方法简化增量程序的在轨更新,且程序更新后不需重新启动计算机来运行增量程序,同时,还支持是否恢复更新之前的功能。
附图说明
图1为本发明一种实施例的程序流程图;
图2为本发明一种实施例中在轨程序接收功能函数二进制文件的具体流程图;
图3为本发明一种实施例中更新功能函数二进制文件前后的内存分配图;
图4为本发明一种实施例中更新三个功能函数后的内存分配图和替换第三个功能函数的内存分配图;
图5为本发明一种实施例中功能函数更新后开启功能函数的运行逻辑流程图。
具体实施方式
实施例:
如图1所示,一种在轨细粒度的功能函数增加方法,所述功能函数增加方法如下:通过链接脚本将需要增加的功能函数定义为专属段,且定位到程序末尾处,这样可以有效地利用内存没有使用的空间,通过专用的工具将专属段拷贝出来,上传到在轨星务系统内存中,并将此函数的地址增加到功能函数查找表中,等待任务的执行。
上述功能函数增加方法的步骤为:
步骤一:增量文件的生成:通过链接脚本将需要增加的功能函数定义为专属段,且定位到程序的末尾处,这样可以有效地利用内存没有使用的空间,通过专用工具将专属段拷贝出来,生成增量文件,具体实施步骤如下所示:
1)、在需要定点编译的函数声明中添加attribute属性:
修改后:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京神舟航天软件技术有限公司,未经北京神舟航天软件技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410060563.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:双弧沟道的波纹填料片
- 下一篇:油井一体化控制装置