Keil5生成错误的hex文件、烧录后无法正常使用

本文讲述了在使用Keil5编译32位项目时遇到的hex文件烧录异常问题,通过对比两台电脑的hex文件发现数据不一致,定位到特定地址的0x00应为0x1E。解决方法是将正常编译器ARMCC替换到出错的Keil中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Keil5生成错误的hex文件

问题

在使用keil5编译32的项目时,发现生成的hex文件通过jFlash进行烧录后存在异常,使用keil里的一键烧录没有问题

原因

为了确认是否是项目存在问题,本人使用另外一台电脑编译相同的项目,生成hex并通过jFlash进行烧录,发现此时程序不存在异常,比较二者生成的hex,如图
请添加图片描述

可见有两处数据不一致,通过仿真查找相对应地址的代码,发现两部分地址数据应该储存0x00,但错误的hex在这两处的数据都为0x1E

解决办法

将生成正常hex的keil编译器(ARMCC)覆盖到生成异常hex的keil里

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值