GD32通过IAP升级不成功的问题解决

项目场景:

项目由于在硬件测试完成功能之后就需要组装成为样机,这样需要在测试过程中不停的外部升级代码,平时升级功能没有问题,这次项目通过IAP的升级方式升级后确不能正常运行APP的功能。


问题描述

问题就是升级过后,APP程序不能正常运行,但是我通过jlink的烧录软件进去之后就可以正常运行,我做的项目是一个MCU主控板控制4个MCU的测温板,首先是测温板需要进行软件的升级。后面出现了升级的问题,我就去使用中空板也进行外部的软件升级,出现了一模一样的情况。


原因分析:

1.这个问题已经存在几天,开始通过去看代码检测了IAP升级过程中的通信问题发现中途出现了通信不上的问题,是我的测温板串口配置不对。
2.第二个方面想到了我的外部升级标志位存储在0x08060000的地址学属于扇区七的位置。我的测温版由于没有外部AT24的flash,我于是使用扇区八作为了我参数存储的位置。检测好了外部升级的标志位也没有问题。
3.我找公司的同事给我帮忙我,发现我在升级过程中经常数据校验错误的问题,我通过逻辑分析仪对比了升级过程中RS485的通讯时序和数据都是正常的,在校验失败的时候也是会自动进行停止。
4.在确保通信无误之后,我把升级成功后写入到MCU内部flash的数据通过JlinkFlash提取出来,通过WinMerge软件,将两个生成的bin文件进行对比也没有出现问题。


解决方案:

1.在排除了这些问题之后,在两天后之前的项目由于升级了新功能需要进行升级,在升级4台样机的过程中我发现升级没有成功,但是APP程序是可以运行的。这就出现了和之前升级不成功同样的例子,就找到了是因为生成的bin文件的问题与工程以及axf文件的文件名没有对应起来。

1.这是未修改前的生成bin文件的路径

这是未修改前的生成bin文件的路径

2.这是未修改前的output工程输出文件名

请添加图片描述
3.在这样修改之后去查找资料找到了原因
原因主要出在bin文件生成的方式中
Objects是我用于存放axf输入文件的文件夹
生成bin文件前,要先生成axf输入文件;
请添加图片描述
请添加图片描述
4.问题到这也是基本解决,这真的是一个大失误呀,因为我为了区别不同的bin文件贸然修改生成的文件名困扰了2周,嵌入式小白简直了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值