华大HC32F460_IAP升级开发过程中,APP程序生成Bin文件报error:File exists的问题

在进行HC32F460的固件IAP升级时,遇到修改APP程序起始地址为0x2000后,无法正常生成bin文件的问题。错误提示显示在0x400地址已有内容冲突。解决方案是删除工程中的icg.c文件,从而避免冲突,成功生成bin文件。
摘要由CSDN通过智能技术生成

项目场景:

概述:最近在做HC32F460的IAP升级的相关工作,按照正常的流程,再开发完boot程序之后,只要合理安排falsh分区,保证boot引导程序和APP程序互不冲突即可,为此需要更改APP程序在flash中的默认起始地址由0x0(默认)改为0x2000(根据Boot程序的大小来定),之后再生成二进制bin文件由boot程序引导写入flash即可,但是在实际操作过程中,却一直无法正常生成Bin文件。:


问题描述:

我这里使用的是keil5.28版本,在配置菜单中找到“target”选项卡并更改其中的IROM和IRAM配置即可,具体看你的程序大小自行配置。如若需要生成对应的bin文件,则点击“User”选项卡,在After Build一栏添加<fromelf --bin -o “$L@L.bin” “#L”>即可。在开发时遇到的具体问题是,当我将IROM1的起始地址由0x0改为0x2000之后,在生成Bin文件的步骤一直报文件已存在的错误。具体错误提示请看下图三:
在这里插入图片描述
生成Bin文件配置
在这里插入图片描述


原因分析:

从错误提示来看貌似是在0x400这个地址上已经定义了什么内容,导致程序无法以0x2000作为起始地址。后续经过实验,也证实了这个猜想,当我把程序起始地址改为0x200(即起始地址小于0x400时),bin文件正常生成没有报错。尽然问题初步定位到了,那剩下的就好办了,找相关的配置文件并把有冲突的去掉或修改即可,这里的解决办法是直接把icg文件从工程中去掉,具体操作如下。

解决方案:

步骤1.在项目工程中找到icg.c文件

在这里插入图片描述
步骤2.将这个文件从工程中移除

在这里插入图片描述

步骤3.然后点击编译即可,bin文件正常生成不报错。

在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值