[发明专利]一种支持地址重定向的星载软件动态加载方法在审
申请号: | 201710996603.5 | 申请日: | 2017-10-19 |
公开(公告)号: | CN107729085A | 公开(公告)日: | 2018-02-23 |
发明(设计)人: | 张睿;曾连连;方峰;郭坚;李林;杨丽君;李溟;郝维宁;周东;周波;李露铭 | 申请(专利权)人: | 北京空间飞行器总体设计部 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京理工大学专利中心11120 | 代理人: | 高燕燕 |
地址: | 100094 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 支持 地址 定向 软件 动态 加载 方法 | ||
技术领域
本发明涉及一种支持地址重定向的星载软件动态加载方法,属于航天器嵌入式软件实现技术领域。
背景技术
对于航天器中的许多嵌入式星载计算机设备,内存(SRAM)是软件运行的直接载体,而内存大多具有不可维修性和不可替换性。而目前许多星载计算机设备采用的处理器并没有内存管理单元(MMU),程序经过编译链接后,变量访问时使用的内存地址均为物理地址,因此当设备内存的某个地址发生物理损坏后(重新加电后故障仍然无法恢复),软件访问此地址时,都会发生错误。发现内存故障后,地面一般采取切换备份设备工作的处理措施,即当前主份计算机后续无法正常使用。由于RAM区域性故障造成单份计算机失效对整个航天器而言无疑是很大的损失。
在现有技术中,公开号为CN106873990A的专利公开了一种嵌入式系统RAM损坏模式下的多分区引导方法,该方法将程序固存分为两部分,一部分存放正常的启动程序,另一部分存放轻量级启动程序。两部分程序运行的内存地址空间不同。当RAM故障造成正常启动程序运行失败时,启动轻量级启动程序运行。公开号为CN104461657A的专利公开了一种嵌入式系统切换启动装置,装置包括处理器、切换信号生成模块、主备份固化存储器等。该装置用于在固化存储器加电时,从固化存储器中读取引导程序,当固化存储器断电时,从备份存储器读取引导程序。还有公开号为CN10288049A的专利公开了一种嵌入式多系统自启动方法,其特征在于包含一个单独设计的自启动电路和一个定时器,系统加电后,定时器开始工作,自启动电路输出片选选中第一片存储器,处理器从第一片存储器载入引导程序,系统进行初始化,若启动成功则关闭定时器。若在定时器到时前,自启动电路未收到正确的状态信号,自启动电路输出片选选中第二片存储器,处理器从第二片存储器载入引导程序,系统进行初始化。
上述方法主要存在以下问题:
(1)需要设计相应的硬件电路配合完成故障消除的操作,而在一些嵌入式系统中,需要考虑成本、功耗、体积等问题。
(2)发生故障的内存地址空间是随机的,上述方法中主备份程序运行地址空间相同的,故障后备份程序同样不能运行。主备程序地址空间不同的,如果故障空间与主备程序地址空间重叠,也将造成主备程序都无法运行的情况。
因此,本文提出了一种支持地址重定向的星载软件动态加载方法,该方法结合软件构件技术,将整个星载程序的全局属性封装成专用构件,通过构件实例化的过程使得原本星载软件编译链接后使用的物理地址转变为逻辑地址,从而实现动态映射,在星载软件加载运行时完成内存健康检查后可以跳过故障的内存地址,而不受任何影响。
发明内容
本发明提供了一种支持地址重定向的星载软件动态加载方法,能够实现简单、高可靠和冗余的星载软件地址重定向加载方法,使用软件构件技术,利用嵌入式软件编译链接的规则,解决了内存某个地址或某区域地址的物理损坏后,程序无法正常加载运行的问题。
一种支持地址重定向的星载软件动态加载方法,包括以下步骤:
步骤一、编写星载软件链接配置文件:定义星载软件程序text段和data段置于ROM中,bss段置于RAM,并定义星载软件程序运行的内存空间的地址和大小;
步骤二、内存检测:程序启动时从所述内存空间的起始地址开始检测,寻找一段连续正确的、足够程序使用的内存地址空间,并将该内存地址空间的起始地址保存在全局寄存器中;
步骤三、程序构件实例化:首先将星载软件中所有的全局属性即会发生变化的属性均封装成一个构件的属性,该构件称为程序构件;然后获取所述全局寄存器中保存的起始地址,将所述程序构件映射到该起始地址上,实现程序构件的实例化;
步骤四、将实例化后的程序构件编译链接形成可烧写的二进制程序文件;
步骤五、最后将二进制程序文件烧写至目标设备上,加电正常启动。
本发明的有益效果:
本发明结合软件构件技术,将整个星载程序的全局属性封装成专用构件,通过构件实例化的过程使得原本星载软件编译链接后使用的物理地址转变为逻辑地址,从而实现动态映射,在星载软件加载运行时完成内存健康检查后可以跳过故障的内存地址,而不受任何影响。
附图说明
图1为本发明使用地址重定向方法生成可执行程序的原理图。
图2为本发明启动时内存检测机制流程图。
图3为本发明中的构件的结构图。
图4为本发明内存地址动态映射后的内存地址空间布局图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京空间飞行器总体设计部,未经北京空间飞行器总体设计部许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710996603.5/2.html,转载请声明来源钻瓜专利网。