[发明专利]单片机程序升级方法及装置有效
申请号: | 201410090866.6 | 申请日: | 2014-03-12 |
公开(公告)号: | CN104915219B | 公开(公告)日: | 2018-11-27 |
发明(设计)人: | 邵起明;王建刚 | 申请(专利权)人: | 奇点新源国际技术开发(北京)有限公司 |
主分类号: | G06F8/656 | 分类号: | G06F8/656;G06F8/71;G06F9/54;G06F11/36 |
代理公司: | 北京弘权知识产权代理事务所(普通合伙) 11363 | 代理人: | 逯长明;陈蕾 |
地址: | 100081 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 单片机 程序 升级 方法 装置 | ||
本发明涉及电子技术领域,尤其涉及一种单片机升级方法及装置,单片机升级方法预先在单片机的用户程序代码区内设置一个只读存储区,用于存储单片机的默认程序;首先对单片机内分区的用户程序进行校验,当所有分区的用户程序都校验失败时,运行单片机的默认程序,使单片机退回到出厂模式,从而恢复可读写存储区内的用户程序,使单片机回退到升级之前的初始状态。使得在恢复所述用户程序之后,能够继续对单片机进行升级,提高了整个分布式系统的安全性及可靠性。而且,当对用户程序校验成功且单片机的用户程序允许升级时,接收上位机通过广播方式下发的目标版本号对应的用户程序,实现多节点同时升级,提高了升级效率。
技术领域
本发明涉及电子技术领域,特别是涉及一种单片机程序升级方法及装置。
背景技术
IAP(in-application programming,应用编程)技术是指在用户程序运行过程中进行编程。IAP技术是从结构上将单片机内的Flash存储器内存储用户程序的存储空间划分为两个存储区,当运行一个存储区域内存储的用户程序时,可以对另一个存储区域内存储的用户程序进行重新编程,然后,再运行重新编程后的存储体上的用户程序。
现有大多数的IAP升级方案都是针对单个节点(一个节点即一个单片机)设计的,对于分布式系统而言,存在多个单片机节点,如果采用单个节点逐个升级的方案,多个节点程序升级所需时间等于各个节点升级时间的总和,因此升级效率很低。
发明内容
本发明实施例中提供了一种单片机程序升级方法及装置,以解决现有技术中的多节点升级效率低的问题。
为了解决上述技术问题,本发明实施例公开了如下技术方案:
第一方面,本发明提供一种单片机程序升级方法,应用于多节点分布式系统中的单片机,预先在所述单片机的程序代码区内设置至少三个分区,其中一个分区为只读存储区用于存储单片机的默认程序,剩余分区为可读写存储区,用于存储用户程序,所述方法包括:
校验指定分区内的用户程序是否能够运行;
当所述指定分区内的所述用户程序校验失败时,将下一个分区作为指定分区,并返回执行检验指定分区内的的用户程序是否能够运行的步骤,直到全部分区的用户程序都校验失败时,进入存储单片机的默认程序的分区,并运行所述单片机的默认程序;
当所述指定分区内的用户程序校验成功时,接收上位机通过广播方式下发的程序升级命令,所述程序升级命令携带所述用户程序的目标版本号;
根据所述目标版本号判断所述用户程序是否允许升级;
当确定所述用户程序允许升级时,接收上位机通过广播方式下发的所述目标版本号对应的用户程序;
校验所述目标版本号对应的用户程序是否能够运行,校验成功后将所述用户程序更新为所述目标版本号对应的用户程序。
优选地,在校验指定分区内的用户程序是否能够运行之前,所述方法还包括:
记录所述单片机的上电复位次数;
判断所述上电复位次数是否超过预设次数,当所述上电复位次数超过预设次数时,进入存储单片机的默认程序的分区,并运行所述单片机的默认程序;
当所述上电复位次数未超过所述预设次数时,执行校验指定分区内的所述用户程序是否能够运行的步骤。
优选地,在所述执行校验指定分区内的用户程序是否能够运行的步骤之前,所述方法还包括:
获取所述单片机内存储的全部用户程序中最新版本号的用户程序所在分区的分区识别号,并将所述分区识别号对应的分区作为所述指定分区。
优选地,所述对所述目标版本号对应的用户程序进行校验,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于奇点新源国际技术开发(北京)有限公司,未经奇点新源国际技术开发(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410090866.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种复膜塑编袋拾袋装置
- 下一篇:一种自动贴双面胶及易撕带装置