基于双备份的兆易创新GD32程序升级方案研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于双备份的
兆易创新GD32程序升级方案研究
曹玉保
南京国电南自软件工程有限公司
摘要:针对MCU以太网升级程序时,具有网络不稳定,电源不稳定的特点,本文对国产MCU兆易创新GD32的程序升级方案进行研究。

采用APP程序双备份,Boot程序检测升级标志位的程序升级方案设计,完成了适合GD32的程序升级整套方案。

测试结果表明该方案能安全、稳定地实现程序升级。

关键词:兆易创新;程序升级;双备份
中图分类号:TP03文献标识码:A
Research on Scheme to upgrade Program
Of GigaDevice GD32Based on double backup
CAO Yu-bao
Guodian Nanjing Automation Co.,LTD
Abstract:In view of the character of the network instability and unstable power supply,this paper research on scheme to upgrade program of GigaDevice ing APP program double backup,Boot program detecting the flag of program update.A scheme based on double backup program is proposed in this paper.The test result shows that this scheme can program update safe and steadily.
Keywords:GigaDevice;Program update;Double backup
1引言
随着物联网时代的快速到来,加之目前复杂的国际环境下,国产IC迎来了最好的发展机遇。

国内有数十家MCU企业,其中包括了兆易创新、华大半导体、中颖电子等。

其中GigaDevice(兆易创新)的生产线已经发展到19个系列300余芯片,已经成为国产MCU的领头羊。

GD32F4系列MCU采用了业界领先的55nm低功耗工艺制程,整合了强大的运算效能和出色的功耗效率,并配置了完整丰富的固件库,集成了更多的片上资源和接口外设,从而为工业控制、电机变频、图形显示、安防监控、传感器网络、无人机、机器人、物联网等市场应用带来创新的开发体验[1]。

本文以兆易创新的GD32F4系列为研究平台,对其程序升级的整套方案进行了研究与测试。

MCU的程序升级问题必须考虑的两个问题是方便和稳定。

利用以太网给MCU升级程序是目前最有前景的方案。

但是网络不稳定、供电不稳定、升级过程随时会中断的特点让MCU的以太网升级面临挑战[2-3]。

本文针对如何安全、稳定的利用以太网进行程序升级,提出了采用APP程序双备份,Boot程序检测升级标志的方案。

2方案设计
IAP(In Application Programming)应用编程即是在正在运行程序的微控制器上对其闪存区部分进行烧写[4],烧写完成后,微控制器的程序指针及堆栈指针重定向,指向新写入的程序代码段和重新初始化的堆栈,执行新程序,从而实现程序的在线升级。

要实现IAP功能,需要两个部分程序代码,第一部分程序代码可以定义为Boot程序,第二个项目程序代码可以定义为APP程序[5]。

两部分程序分别存储在地址不同的存储区。

特别的,本方案双备份了两个APP程序文件,当判定程序升级成功时,Boot程序进行程序更新;当判定升级不成功时,MCU直接跳转,执行更新前的程序代码。

3内存分布
本文以兆易创新公司的GD32F407ZET6为平台进行测试,GD32F407ZET6上有512KB的FLASH,共分为8个扇区,内存分布设计如表1。

将Boot程序放置于扇区0,MCU正常启动后即运行Boot程序,将扇区1留空,以备Boot程序进行扩展。

在扇区2存放升级标志,以让Boot程序检测是否升级,扇区4和扇区6进行APP程序双备份的设计,升级程序时,始终更新APP2上的程序,由Boot 程序通过检测程序升级标志来判断是否进行程序拷贝,将APP2地址
上的程序更新到APP1
地址上。

4具体实现
4.1BOOT程序设计
如图1所示,本方案对于Boot程序启动以后会检测升级标志位,如果需要升级,将APP2段的程序
表1内存分布设计
图1Boot程序设计
拷贝到APP1段,随后跳转到APP1段地址,运行APP程序。

如果不需要升级,直接跳转至APP1段,使用原来的APP程序。

JumpAddress=*(__IO uint32_t*)(Application-Address+4);
Jump_To_Application=(pFunction)JumpAd-dress;
__set_MSP(*(__IO uint32_t*)ApplicationAd-dress);//初始化APP堆栈指针
Jump_To_Application();
本方案的Boot程序有如下优点:1.设计简单。

只检测是否需要升级的标志位,本Boot程序能够适合更多的MCU类型。

2.安全稳定。

对于可能出现的因网络问题或者电源突然断电导致升级失败的情况,针对是否升级标志位的检测,能准确的检测是否需要升级程序。

当出现升级错误时,继续运行老程序,升级成功时,才将升级的程序拷贝覆盖老程序。

4.2APP程序设计
APP程序采用LWIP协议栈来进行以太网程序传输。

LWIP协议是瑞典计算机科学院开发的开源轻量型TCP/IP协议栈。

LWIP协议栈支持UDP、TCP等协议。

LWIP协议减少了内存使用率和代码大小,使LWIP协议适合在资源有限的嵌入式系统中应用[6]。

如图2所示,APP程序首先会判断是否进入升级程序状态,同时会获取到本次升级的详情。

然后采用一问一答式的TCP通讯,如果接收到的1K二进制程序符合CRC校验,则继续传输;如果接收到的1K二进制程序不符合CRC校验,则回复该帧失败,需要重传。

4.3上位机程序设计
本文上位机程序采用Labview设计。

Labview是美国国家仪器(NI)公司研制开发的图形化编辑开发环境。

它具有强大的数据采集功能,作为基于数据流的编程语言,对数据的操作和计算简单高效,并且提供了丰富的图标显示功能,目前被广泛的应用于测控系统开发。

如图3所示,上位机程序首先会发送升级指令给MCU,MCU进入升级模式后,会回复确认报文。

上位机收到确认报文后,就会把需要升级的程序以二进制的形式
通过以太网
传输给MCU。

传输完成以
后,会发送升级完成指令给MCU,MCU进行核对合图2APP程序设计图3上位机程序
法性判定以后会回复是否成功报文给上位机。

4.4实际测试结果
本文以GD32F407ZET6为平台进行测试,在正常升级时,该程序升级方案能安全、稳定地进行程序升级。

在网络不稳定,传输过程断电的情况下来进行测试,发现这两种情况下,能识别出升级失败,由于采用双备份APP 程序,MCU 正常运行在升级之前的程序版本上。

5结论
本文介绍了国产MCU 兆易创新GD32系列控制器的储存结构、IAP 的基本原理,以国产MCU 兆易创新GD32为平台,设计了基于双备份的通过以太网升级程序的方案,
实现了以GD32F4xx 为代表的兆易创新MCU 的程序升级,满足了相关需求,为物联网和智能化设备的功能完善提供了指导和帮助参考文献
[1]兆易创新公司.GD32F4xx 用户手册[S].北京兆易创新科技股份有限公司,2019.
[2]雷卫延,敖振浪,周钦强.基于STM32的在应用编程(IAP )开发[J].电子测量技术,2015,38(5):62-66.[3]于亚运,宋建成,田慕琴,等.基于IAP 的支架控制系统程序在线升级方案[J].工矿自动化,2016,42(2):12-15.
[4]阙凡博.基于stm32的程序远程升级设计[J].仪器仪表用户,2013(5):90-92.
[5]蒋俊,蓝敏.基于IAP 和网口的ARM Cortex-M3固件升级技术[J].单片机与嵌入式系统应用,2014,14(12):11-13.
[6]江洋,刘宇红,韩云杰.基于STM32的智能家居系统应用研究[J].电子科技,2014(4):105-107,111.
作者简介
曹玉保,硕士,工程师。

研究方向:继电保护、失效分析。

在天线中感应产生电流,然后在馈电点进行电流的收集、整流和储存。

纳米电子电磁收集器(NEC )可配置成频率选择表面,以有效吸收整个太阳光谱。

也可以将NEC 配置为中心波长为6.5μm 的反射型带通滤波器;这将使其能够吸收红外线,从而回收来自引擎、熔炉和其他高温电源产生的废热。

NEC 设备在硅和聚乙烯基板上都已经成功完成了原型制作,但要想开发出经济的批量生产工艺还需要更多的资金和时间。

研究人员预计,将会出现一种通过捕获当前未得到使用的红外能量来辅助传统PV 太阳能电池板的产品。

作为薄膜,
可将其集成到建材和基础设施中。

NEC 可被集成到聚合物材料中,这样它们也可以融合到消费电子设备的表面,为电池连续充电。

3展望
综上所述,能量采集新应用中,超低功耗MCU 的发展创造了一个巨大并且迅速扩张的能量采集市场,而这些MCU 对这一市场的依赖程度日益提高。

能量采集的第一波浪潮催生出了现在似乎已无处不在的低功耗无线传感器。

但是,连锁反应将在整个消费品、工业和医疗市场中持续,带来我们难以想象的新应用。

无论是规划便携式的电池供电设备,还是希望提高大型设备的能效,所有设计工程师都应考虑将能量采集技术结合到他们的产
品当中。

欢迎访问贸泽电子的能量采集网站,进一步了解广泛多样的能量采集设备上接第22页。

相关文档
最新文档