一种片内动态加载应用软件的在线升级固化方法技术

技术编号:37292268 阅读:17 留言:0更新日期:2023-04-21 03:23
本发明专利技术涉及一种片内动态加载应用软件的在线升级固化方法,属于工业控制领域。本发明专利技术在RAM内申请一定大小的内存作为ApplicationSoftware地址空间,用于临时存储上传的应用软件数据;将闪存划定为3部分区域:一部分用于存储通用型引导镜像;一部分用于存储操作系统镜像;剩余部分地址空间保留。本发明专利技术无须使用片外存储设备,无须定制化开发通用引导程序,无须借助固化工具,仅依靠片内闪存,帮助用户解决嵌入式应用软件的在线升级、固化以及版本回退的难题。以及版本回退的难题。以及版本回退的难题。

【技术实现步骤摘要】
一种片内动态加载应用软件的在线升级固化方法


[0001]本专利技术属于工业控制领域,具体涉及一种片内动态加载应用软件的在线升级固化方法。

技术介绍

[0002]随着电子技术的飞速发展,电子设备集成度越来越高,集成化设备在各行各业中应用广泛。在实际工控领域,从产品的研制阶段,到产品的后期维护升级,都需要不断的改进和完善设备终端(下位机)用户软件,以适应新需求或优化产品性能,因而需要多次对设备终端用户软件进行升级。传统的嵌入式工业终端设备,由于硬件资源和环境条件的限制,在生产阶段就需要将软件代码固化,一旦设备交付就无法现场在线修改。当出现软件升级或故障调试需求,就必须拆开产品,将产品主控芯片的仿真器接口暴露出来,通过连接固化工具(仿真器)构建通讯链路,通过专业软件对程序进行更新;甚至须要在现场拆换设备板卡、替换局部程序存储设备或者将设备返厂。
[0003]为了能够满足用户持续变化的需求,延长产品的生命周期,工业控制领域逐渐改进产生了一些较为先进的升级固化方法,笔者将其归结为以下几类:
[0004](1)二级引导升级固化方法
[0005]介于通用引导程序(例如Uboot、BootLoader以及PMON等)与系统镜像间设计一种二级引导程序,用于负责系统镜像的搬移与启动。
[0006]这种升级固化方式属于离线升级。因为系统镜像往往需要固化在闪存,系统镜像升级时需要设备断电并连接固化工具,操作流程较为复杂;用户也需要购置固化工具,增加硬件成本;操作系统与应用软件编译耦合在一起,一旦启动异常,系统将无法正常工作并退出。
[0007]当然这种方式优势也很明显,能够有效摆脱对通用引导程序的依赖,无须定制化修改通用引导程序;同时设备无须返厂,用户可在工业现场自行升级系统镜像。
[0008](2)动态加载应用软件升级固化方法
[0009]随着计算机水平的提高,通用引导程序已经支持文件系统(例如FAT)管理,具备外部存储设备上的文件增、删、改、查功能。用户可以通过指令调用将系统镜像通过网络上传并固化到外部存储设备,供引导程序加载启动。
[0010]①
操作系统与应用软件可以编译耦合在一起,直接由引导程序加载运行。但是这种情况下加载的系统镜像一旦启动异常,系统将无法正常工作并退出。
[0011]②
操作系统与应用软件可以分开编译,将操作系统镜像与应用软件分别上传并固化到外部存储设备。设备上电,引导程序加载启动系统镜像,待操作系统启动后,利用动态加载技术装载、解析、调用以及卸载应用软件。
[0012]方式

与方式

相比较优势更为明显:首先,动态加载新版本应用软件失败返回错误后,操作系统可以继续正常运行,继续动态加载旧版本应用软件程序;其次,能够支持在线升级、固化与启动新版本应用软件的功能,无须断电;最后,操作系统与应用软件分离,
对于故障问题的分析定位缩小了范围。当然,方式

实现存在技术难点,需要引导程序和操作系统支持的文件系统符合统一标准协议,否则无法交互访问。
[0013](3)双启动区升级固化方法
[0014]嵌入式系统镜像存储器中划分有具有对等结构的A区和B区,系统的引导过程依次从A区和B区轮流进行,每次进行系统镜像升级则调换引导区域;系统镜像升级包更新的区域是当前非引导区域,即当系统从A区引导,则系统镜像更新至B区;反之,系统从B区引导,则系统镜像更新至A区。
[0015]该升级固化方法,使得系统镜像在程序存储器保存双备份,如果升级过程失败,可以从上一次成功启动的区域加载启动,具有鲁棒性。但是该方法不适用于外存或闪存较小的嵌入式终端,因为双启动区需要预留足够的存储空间,确保一定能存储下当前以及迭代升级的镜像数据,这就导致一定的存储浪费。

技术实现思路

[0016](一)要解决的技术问题
[0017]本专利技术要解决的技术问题是如何提供一种片内动态加载应用软件的在线升级固化方法,以解决应用软件在线升级、固化与版本回退的难题。
[0018](二)技术方案
[0019]为了解决上述技术问题,本专利技术提出一种片内动态加载应用软件的在线升级固化方法,该方法包括如下步骤:
[0020]步骤1:嵌入式终端设备上电,首先执行通用引导程序;完成硬件设备初始化以及内存空间的映射表的建立等,从而搭建操作系统运行的软硬件环境;然后搬移闪存内系统镜像数据至内存并完成PC指针跳转启动操作系统;
[0021]步骤2:操作系统启动后,接管嵌入式终端设备,同时完成FTP服务器初始化以及根文件系统挂接;
[0022]步骤3:系统启动后台任务自动检索RFS下是否有应用软件可执行文件,如果有则动态加载应用软件、解析并调用执行;如果没有应用软件可执行文件,则以用户约定的方式提示用户上传应用软件可执行文件;
[0023]步骤4:用户通过FTP指令的方式将预升级或上传的应用软件发送至设备终端,由系统后台任务负责接收并解析文件数据至Application Software地址空间;
[0024]步骤5:系统后台任务从Application Software地址空间提取应用软件有效长度数据内容写入RFS,存储为特定名称或版本的应用软件可执行文件App.dll文件;写入前,若已存在App.dll文件则将其备份为App.dll.bak,然后读取App.dll文件的数据获取MD5码,与Application Software地址空间存储的MD5码进行比对;如果MD5码数据相同,则表示应用软件上传成功;否则表示应用软件上传失败,由系统后台任务删除App.dll文件;
[0025]步骤6:应用软件上传成功后,如果正在运行应用软件,用户通过shell调用动态加载指令动态卸载当前正在运行的旧版本应用软件,然后调用指令动态加载、解析新版本应用软件App.dll,并调用执行命令恢复当前应用软件运行状态;如果没有运行应用软件,则直接调用动态加载指令加载、解析App.dll并调用执行。
[0026]进一步地,所述步骤2中,如果嵌入式终端不支持网口,则初始化其他特定的服务
器。
[0027]进一步地,其他特定的服务器为RapidIO。
[0028]进一步地,所述步骤3中,提示方式为操作系统后台任务向上位机发送FTP提示日志文件、支持图形界面的终端显示弹窗、终端设备警鸣报警或者亮灯提示上传应用软件可执行文件。
[0029]进一步地,所述步骤5中,备份前,若已存在App.dll.bak文件,则将其直接删除。
[0030]进一步地,所述步骤5在删除App.dll文件时,若存在App.dll.bak文件,则将其重命名回App.dll。
[0031]进一步地,操作系统正常可访问操作的地址空间包括随机存储器RAM、闪存;在RAM内申请一定大小的内存作为Application Software地址空间,用于临时存储上传的应用软件数据;本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种片内动态加载应用软件的在线升级固化方法,其特征在于,该方法包括如下步骤:步骤1:嵌入式终端设备上电,首先执行通用引导程序;完成硬件设备初始化以及内存空间的映射表的建立等,从而搭建操作系统运行的软硬件环境;然后搬移闪存内系统镜像数据至内存并完成PC指针跳转启动操作系统;步骤2:操作系统启动后,接管嵌入式终端设备,同时完成FTP服务器初始化以及根文件系统挂接;步骤3:系统启动后台任务自动检索RFS下是否有应用软件可执行文件,如果有则动态加载应用软件、解析并调用执行;如果没有应用软件可执行文件,则以用户约定的方式提示用户上传应用软件可执行文件;步骤4:用户通过FTP指令的方式将预升级或上传的应用软件发送至设备终端,由系统后台任务负责接收并解析文件数据至ApplicationSoftware地址空间;步骤5:系统后台任务从ApplicationSoftware地址空间提取应用软件有效长度数据内容写入RFS,存储为特定名称或版本的应用软件可执行文件App.dll文件;写入前,若已存在App.dll文件则将其备份为App.dll.bak,然后读取App.dll文件的数据获取MD5码,与ApplicationSoftware地址空间存储的MD5码进行比对;如果MD5码数据相同,则表示应用软件上传成功;否则表示应用软件上传失败,由系统后台任务删除App.dll文件;步骤6:应用软件上传成功后,如果正在运行应用软件,用户通过shell调用动态加载指令动态卸载当前正在运行的旧版本应用软件,然后调用指令动态加载、解析新版本应用软件App.dll,并调用执行命令恢复当前应用软件运行状态;如果没有运行应用软件,则直接调用动态加载指令加载、解析App.dll并调用执行。2.如权利要求1所述的片内动态加载应用软件的在线升级固化方法,其特征在于,所述步骤2中,如果嵌入式终端不支持网口,则初始化其他特定的服务器。3.如权利要求2所述的片内动态加载应用软件的在线升级固化方法,其特征在于,其他特定的服务器为RapidIO。4.如权利要求1所述的片内...

【专利技术属性】
技术研发人员:徐治纬陈树峰郭佳鹏
申请(专利权)人:北京计算机技术及应用研究所
类型:发明
国别省市:

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

1