[发明专利]一种MCU固件快速升级方法在审
申请号: | 201811303377.9 | 申请日: | 2018-11-02 |
公开(公告)号: | CN109445823A | 公开(公告)日: | 2019-03-08 |
发明(设计)人: | 王志伟 | 申请(专利权)人: | 长虹美菱股份有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65 |
代理公司: | 上海精晟知识产权代理有限公司 31253 | 代理人: | 冯子玲 |
地址: | 230000 安徽省合*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 常量 数组 升级bin文件 升级 固件升级 逻辑代码 烧写 系统稳定性 程序代码 函数声明 升级过程 段地址 编译 存储 | ||
本发明公开了一种MCU固件快速升级方法,涉及MCU固件升级技术领域。本发明包括对MCU代码中常量数据、逻辑代码设计成若干常量数组和若干可重入函数;采用伪指令为常量数组以及可重入函数声明对应的段地址以及存储大小;升级时更改程序代码,对编译产生的整bin文件拆分,获取包含需要升级的常量数组或可重入函数的升级bin文件段;将升级bin文件烧写到MCU中。本发明通过将MCU代码的常量设计成若干常量数组以及将逻辑代码设计成若干可重入函数;升级时,将需要升级的常量数组或可重入函数拆分获取升级bin文件,并对升级bin文件修改后烧写至MCU中;提高MCU固件升级的效率、提高MCU升级过程中的系统稳定性。
技术领域
本发明属于MCU固件升级技术领域,特别是涉及一种MCU固件快速升级方法。
背景技术
随着物联网技术快速发展,无线通信模块已经大量应用于制造、家电、医疗、物流、零售等行业。OTA固件升级技术作为无线通信模块的标配技术,在产品的生产、使用中发挥着重要作用。
无线通信模块通常使用单芯片方案,由一颗MCU和射频外设组成,模块可通过OTA技术对自身系统或者所连接的其他MCU进行固件升级。通用的升级方案是无线模块将完整固件从云端或者局域网下载到本地flash保存,在完成校验之后,无线模块MCU切换运行区域;或者进入boot区,将已经保存在flash中的固件读出并覆盖到运行区。
现有方案虽然技术成熟,但从云端或局域网下载完整固件,对系统稳定性和时间消耗较大。无线模块的完整固件在500k左右,无线模块连接的其他MCU完整固件也在64k左右,固件大小决定着系统执行固件下载、缓存、校验、烧写、传输等操作的时间开销。大部分MCU对flash操作是由cache完成,且flash写入易受到执行代码和外部因素影响,具有一定的风险,长时间处于flash读写状态,也增加了系统的不稳定性。
本发明致力于研发一种MCU固件快速升级方法,用于解决现有的MCU完整固件升级效率慢、时间开销大及其导致的系统不稳定的问题。
发明内容
本发明的目的在于提供一种MCU固件快速升级方法,通过将MCU代码的常量设计成若干常量数组以及将逻辑代码设计成若干可重入函数,在进行固件升级时,通过bin文件拆分软件将需要升级的常量数组或可重入函数拆分获取升级bin文件,并对升级bin文件修改后烧写至MCU中,实现了对MCU中固件的快速升级,解决了现有的MCU完整固件升级效率慢、时间开销大及其导致的系统不稳定的问题。
为解决上述技术问题,本发明通过以下技术方案实现:
本发明为一种MCU固件快速升级方法,包括如下:
代码设计:
对MCU中代码的常量数据设计成若干常量数组,并将MCU中代码的逻辑程序设计成若干可重入函数;
采用伪指令为所述常量数组声明对应的段地址以及存储大小;采用伪指令为所述可重入函数声明对应的段地址以及存储大小;
编译代码产生bin文件,并烧写到MCU中作为基础程序;
固件升级:
编写需要升级的程序代码,编译生成整bin文件;
采用bin文件拆分软件按照指定地址和大小对整bin文件拆分,获取包含需要升级的常量数组或可重入函数的升级bin文件段;
将升级bin文件段烧写到MCU中后,MCU执行软重启后运行升级后的代码。
优选地,编译产生的所述bin文件中,以所述伪指令声明的段地址为首址、以存储大小为长度的存储空间内存放对应的常量数组以及可重入函数。
优选地,所述将拆分后的所述升级bin文件烧写到MCU中包括如下过程:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长虹美菱股份有限公司,未经长虹美菱股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811303377.9/2.html,转载请声明来源钻瓜专利网。