[发明专利]电力系统嵌入式软件远程动态升级方法和系统有效
申请号: | 201810090667.3 | 申请日: | 2018-01-30 |
公开(公告)号: | CN108196873B | 公开(公告)日: | 2021-03-30 |
发明(设计)人: | 张国栋;朱志强;蒲海涛 | 申请(专利权)人: | 山东科技大学 |
主分类号: | G06F8/656 | 分类号: | G06F8/656 |
代理公司: | 济南圣达知识产权代理有限公司 37221 | 代理人: | 黄海丽 |
地址: | 266590 山东省青*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 电力系统 嵌入式 软件 远程 动态 升级 方法 系统 | ||
1.一种电力系统嵌入式软件远程动态升级方法,其特征在于,包括以下步骤:
将软件升级信息表和软件升级代码远程加载到电力系统待升级设备节点;
当所述设备节点中所有较高优先级任务均未处于运行状态时,uC/OS-II操作系统启动空闲任务处于运行状态,根据软件升级信息表进行信息校验,校验正确则执行软件动态升级;执行软件动态升级前,通过OS_ENTER_CRITICAL()关闭系统中断,升级完成后进行恢复。
2.如权利要求1所述的电力系统嵌入式软件远程动态升级方法,其特征在于,所述软件升级信息表包括信息表头、表长度、代码长度、表区crc校验、代码区crc校验、信息表分区个数、各分区表内偏移、各分区指令起始地址、各分区指令条数和各分区指令。
3.如权利要求2所述的电力系统嵌入式软件远程动态升级方法,其特征在于,所述信息校验包括:
根据软件升级信息表,依次判断表头、表长度和代码长度、以及表区crc校验字和代码区crc校验字是否正确,以上信息均正确则校验正确。
4.如权利要求3所述的电力系统嵌入式软件远程动态升级方法,其特征在于,软件升级处理具体步骤为:
根据软件升级信息表查询各分区的信息偏移、起始修复地址和修复数据条数;
对于每个分区,从偏移起始地址处依次将各条修复数据填充至起始修复地址。
5.如权利要求1所述的电力系统嵌入式软件远程动态升级方法,其特征在于,所述软件动态升级方式包括:基于函数模块替换的软件升级和基于局部地址指令修复的软件升级。
6.如权利要求5所述的电力系统嵌入式软件远程动态升级方法,其特征在于,基于函数模块替换的升级,是通过修改函数被调用处的分支跳转指令或在被调用函数入口修改无条件分支跳转指令,实现函数调用的PC指针二次定位跳转;或
基于局部地址指令修复的升级方式,通过修改待升级函数内部的某条或某几条机器指令或数据实现函数升级。
7.如权利要求1所述的电力系统嵌入式软件远程动态升级方法,其特征在于,所述软件升级信息表和软件升级代码远程加载自服务器,所述服务器内存包括软件动态升级存储区,该区域包括软件升级信息表区和软件代码区。
8.一种电力系统嵌入式软件远程动态升级系统,其特征在于,包括:
服务器,包括软件动态升级存储区,用于存储软件升级信息表和软件代码;
所述电力系统的待升级设备节点从服务器远程加载软件升级信息表和软件升级代码;当所述设备节点中所有较高优先级任务均未处于运行状态时,uC/OS-II操作系统启动空闲任务处于运行状态,根据软件升级信息表进行信息校验,校验正确则执行软件动态升级;执行软件动态升级前,通过OS_ENTER_CRITICAL()关闭系统中断,升级完成后进行恢复。
9.一种电力系统设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现:
远程加载软件升级信息表和软件升级代码;
当所述设备节点中所有较高优先级任务均未处于运行状态时,uC/OS-II操作系统启动空闲任务处于运行状态,根据软件升级信息表进行信息校验,校验正确则执行软件动态升级;执行软件动态升级前,通过OS_ENTER_CRITICAL()关闭系统中断,升级完成后进行恢复。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东科技大学,未经山东科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810090667.3/1.html,转载请声明来源钻瓜专利网。