[发明专利]嵌入式程序开发中程序更新识别方法及系统有效
申请号: | 201710065661.6 | 申请日: | 2017-02-06 |
公开(公告)号: | CN106775778B | 公开(公告)日: | 2021-03-16 |
发明(设计)人: | 王培仑;胡勇;曹同利;卢剑锋;李春飞;刘爱忠 | 申请(专利权)人: | 山东鲁能软件技术有限公司智能电气分公司 |
主分类号: | G06F8/71 | 分类号: | G06F8/71;G06F8/65 |
代理公司: | 济南圣达知识产权代理有限公司 37221 | 代理人: | 黄海丽 |
地址: | 250101 山东省济南市高新*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 嵌入式 程序 开发 更新 识别 方法 系统 | ||
本发明公开了嵌入式程序开发中程序更新识别方法及系统,它在控制器程序运行初期自动对存放于程序存储器的全部程序进行一次循环校验计算,并将校验得到的一组序列号以通信的方式发送给上位机,由于程序的变动会造成序列号的改变,因此通过序列号的变化情况,即可实现一种程序识别的新方法。
技术领域
本发明涉及一种嵌入式程序开发中程序更新识别方法及系统。
背景技术
嵌入式开发中程序的版本控制及识别通常是通过读取控制器芯片的软件版本号形式实现的。一般情况下,程序编写或修改后需对程序添加一个软件版本号,源程序编译完成后下载到控制器芯片,通过上位机与控制器芯片的通信程序读取程序的版本号,由此可得到程序修改及版本管理信息。
采用上述方案通过上位机即可读取控制器芯片中程序版本号,并根据版本号对照查表得到程序修改信息。但此方法仍存在一定的局限性:
①软件版本号需人为手动修改,如果程序员改动程序后忘记更改版本号或更改后的版本号与其他人修改的版本号重复;
②程序员对软件程序的误操作,增加或丢失部分程序;
③程序小的改动,但不足以更改程序版本号。
此类问题均可造成以软件版本号识别程序的方式失效。若是存在上述问题的装置在工程使用现场出现异常,因不能对装置是否使用标准程序或程序何时修改做出有效判断,会给错误排查工作造成很大的困难。
发明内容
本发明的目的就是为了解决上述问题,提供一种嵌入式程序开发中程序更新识别方法及系统,它在控制器程序运行初期自动对存放于程序存储器的全部程序进行一次循环校验计算,并将校验得到的一组序列号以通信的方式发送给上位机,由于程序的变动会造成序列号的改变,因此通过序列号的变化情况,即可实现一种程序识别的新方法。
嵌入式程序开发中程序更新识别方法,包括如下步骤:
步骤(1):控制器的程序存储器接收并存储已经编译通过的计算机程序;计算机程序存储的起始地址就是程序存储器对应地址空间的首地址;
步骤(2):计算机程序开始运行,首先对计算机程序进行初始化配置;
步骤(3):对程序存储器存放的计算机程序从起始地址开始进行循环冗余校验,得到一组校验序列号;
步骤(4):控制器将当前计算机程序的程序版本号和循环冗余校验得到的校验序列号一起发送到上位机;
步骤(5):上位机将控制器发送来的程序版本号和校验序列号与上位机预先存储的程序版本号和校验序列号进行比较;判断程序是否发生改变。
所述步骤(5)的具体步骤包括:
步骤(51):首先判断控制器发送来的程序版本号与上位机预先存储的程序版本号是否一致,若一致则进入步骤(52);不一致则表示程序发生改变;
步骤(52):判断控制器发送来的校验序列号与上位机预先存储的校验序列号一致,若一致则表示程序未发生改变;若不一致则表示程序发生改变。
所述上位机预先存储的程序版本号是程序首次编译成功,控制器上传给上位机的版本号;
所述上位机预先存储的校验序列号是程序首次编译成功,控制器对编译成功的程序进行首次循环冗余校验得到并上传给上位机的校验序列号。
所述步骤(2)对程序I/O口、中断向量进行初始化配置;
所述步骤(3)采用查表法方式,对程序存储器存放的程序从起始地址开始进行循环冗余校验。
所述步骤(4)控制器将校验序列号通过can或modbus通信协议发送到上位机。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东鲁能软件技术有限公司智能电气分公司,未经山东鲁能软件技术有限公司智能电气分公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710065661.6/2.html,转载请声明来源钻瓜专利网。