[发明专利]一种嵌入式系统中软件模块的动态升级方法有效
| 申请号: | 201711293651.4 | 申请日: | 2017-12-07 |
| 公开(公告)号: | CN107943504B | 公开(公告)日: | 2021-03-26 |
| 发明(设计)人: | 林卓;张旻;麦先根;齐晓斌;卫进 | 申请(专利权)人: | 中国航空工业集团公司西安航空计算技术研究所 |
| 主分类号: | G06F8/65 | 分类号: | G06F8/65;G06F8/61;G06F9/445 |
| 代理公司: | 中国航空专利中心 11008 | 代理人: | 杜永保 |
| 地址: | 710000 *** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 嵌入式 系统 软件 模块 动态 升级 方法 | ||
在节点众多的嵌入式系统中,存在着安装\拆卸困难,要求节点具有可重新配置和自适应性,在需要的时候能够进行自主升级。因此,本发明提出一种在运行时嵌入式系统条件下,支持软件模块进行动态升级的方法。软件动态升级技术能够在不影响现有系统正常运行的情况下,将新模块加载到系统中,或对旧模块进行动态替换,提供系统运行时的更新服务,实现软件模块的平滑升级,并能保证系统长时间可靠运转。该技术解决了如何在目标系统中将软件模块链入到目标系统中的问题,以及实现了模块依赖管理技术。在软件模块的加/卸载过程中,保证了嵌入式系统的安全可靠运行。
技术领域
本发明属于嵌入式开发及维护领域,具体涉及一种软件的动态升级方法。
背景技术
在具有复杂应用的嵌入是系统中,当某些软件模块开发完成后,需要该模块在嵌入式系统中运行,此时就需要用到加载技术。当前常用的加载技术有两种:一种是静态加载技术,一种是动态加载技术。
其中,静态加载方式使用成熟的工具链,该工具链(比如:GNU)提供可靠完整的编译和链接工具,开发人员解决编译、链接中存在的问题,就可生成可重定位格式的目标文件。当需要加载时,主机端工具需要计算可重定位目标文件各段大小,向目标机端发送加载地址请求,根据回复的加载地址,对可重定位文件进行二次链接,进行地址重定位,得到最终目标文件。最后,将目标文件写入到目标机内存中,并运行程序。
动态加载方式可以用于在软件开发过程中,以增量方式向目标机动态下载目标模块进行调试,从而加快开发的速度。目标机端配合主机端动作,将目标模块进行加载和运行。主机端的编译器生成的目标文件,这些目标文件没有实际的运行地址。先将目标文件加载到目标机机端的指定区域,当需要模块运行时,首先,在目标机端,要完成对目标文件的二次链接,才能将目标文件加载到内存中运行,但不记录模块间存在的相互依赖关系。
这两种方式应用于软件动态升级中都存着缺陷,不能满足嵌入式系统中对于软件进行动态升级的要求。
采用静态加载方式将软件模块加载到目标机端后,代码段和数据段的位置都不能改变。从设计上不满足操作系统动态升级的要求,模块的升级无法脱离开发环境的支持,在软件维护升级阶段意义不大。
传统的动态加载方式,在需要卸载旧版本的软件模块,回收其所占用资源时,各模块间可能存在相互依赖关系,应当确保系统中没有其他模块依赖于待卸载模块。由于该方法没有进行模块依赖关系检查功能,在卸载的过程中,如果软件模块间存有依赖关系,则极有可能会出现软件系统出现紊乱,导致不可预料的后果,所以该方法常用于软件调试阶段,而不用于软件升级以及维护阶段。
发明内容
模块化的软件架构是实现操作系统动态升级的前提,所设计的系统应具有高度的模块化特征,每个模块完成特定的任务。模块的动态升级一般适用于应用程序或者组件等独立性较强、与操作系统核心功能无扇入的模块。内核不可裁剪部分组件只有在底层硬件或资源管理能力发生改变时才需要修改,因此内核不可裁剪部分组件不需要在线升级能力。
动态升级是指通过一系列预定的动作将新模块加载到系统中,并适时对旧模块进行动态替换,最终实现系统平滑升级的过程。动态升级可以在系统运行过程中把下载到指定空间的独立模块链接到系统中,实现不停机的更新服务。其中,动态链接是动态升级的关键技术。目标机端通过动态链接技术,能够在实现目标模块在指定地址空间中的再定位。
动态升级工具软件架构分为主机端和目标机端两部分,如图1所示。主机端升级工具由升级功能插件和升级图形插件两部分组成。升级图形插件和升级功能插件都是以插件的形式集成到Eclipse平台上,作为开发环境的一部分功能。包括如下几部分:
1.升级图形插件面向用户,提供图形化的界面操作。
2.升级功能插件用于控制宿主机端的整个升级流程,是主机端升级工具的逻辑控制单元。
3.目标机管理负责发送主机端的信息到目标机端,信息包括主机端的命令和目标映像。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航空工业集团公司西安航空计算技术研究所,未经中国航空工业集团公司西安航空计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711293651.4/2.html,转载请声明来源钻瓜专利网。





