打印
[开发工具]

IAR下载程序报错Verify error at address 0x000080D1

[复制链接]
4655|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Larm1|  楼主 | 2019-1-24 12:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
       最近将一个IAR下的M4的程序移植到M7上,移植之前M4的程序因为没有硬件没有验证过,当修改为所有的参数,编译都正确后仿真时,在下载过程中报了好多的警告——地址数据校验错误,错误如下:
      
Thu Jan 24, 2019 07:33:44: Verify error at address 0x000080D1, target byte: 0x40, byte in file: 0x30 
Thu Jan 24, 2019 07:33:44: Warning:  
Thu Jan 24, 2019 07:33:44: Verify error at address 0x000080D2, target byte: 0x00, byte in file: 0xDF
Thu Jan 24, 2019 07:33:44: Warning:  
Thu Jan 24, 2019 07:33:44: Verify error at address 0x000080D3, target byte: 0x80, byte in file: 0xF8
Thu Jan 24, 2019 07:33:44: Warning: Too many verify errors, only the first 200 are displayed
Thu Jan 24, 2019 07:34:13: Warning: There were warnings during download, see Log Window
Thu Jan 24, 2019 07:34:13: Loaded debugee: D:\Test\pri\iar\STM32746G-EVAL2\Exe\OS3.out
Thu Jan 24, 2019 07:34:13: Hardware reset with strategy 0 was performed
Thu Jan 24, 2019 07:34:13: Target reset
Thu Jan 24, 2019 07:34:14: Failed to enable illegal breakpoint definition '{D:\Test\pri\app_main.c}.211.5'
Thu Jan 24, 2019 07:34:14: Failed to enable illegal breakpoint definition '{D:\Test\pri\app_main.c}.180.5'
Thu Jan 24, 2019 07:34:14: Failed to enable illegal breakpoint definition '{D:\Test\pri\IAR\os_cpu_a.asm}.188.1'
Thu Jan 24, 2019 07:34:14: One or more breakpoints could not be set and have been disabled.
Thu Jan 24, 2019 07:34:43: There were 2 warnings during the initialization of the debugging session.
Thu Jan 24, 2019 07:36:00: HardFault exception.
Thu Jan 24, 2019 07:36:00: The processor has escalated a configurable-priority exception to HardFault.
Thu Jan 24, 2019 07:36:00:    A bus fault has occurred on an instruction prefetch.
Thu Jan 24, 2019 07:36:00:  
Thu Jan 24, 2019 07:36:00: Exception occured at: 0x0
Thu Jan 24, 2019 07:36:00:  
Thu Jan 24, 2019 07:36:00: See the call stack for more information.


      然后IAR就报错:
      
      一开始还以为没问题,点击OK继续执行,结果是程序直接跑飞了:

      
      卡在了某个位置。然后问度娘,大概的意思是工程的配置不对,但是试了几个方法都没有凑效。于是自己使用STM32CubeMx新建了一个可以运行的工程,然后比较工程配置,最终发现是因为options->linker->config下的linker configuration file没设置flash的icf文件导致的,见下图:
      
      选择正确的flash的icf后程序运行正常。




评论
tpgf 2019-1-25 12:08 回复TA
就喜欢楼主这样有始有终说的明明白白的 
沙发
mmuuss586| | 2019-1-24 17:08 | 只看该作者

正常了就好

使用特权

评论回复
板凳
21mengnan| | 2019-1-25 15:33 | 只看该作者
ICF是描述内存空间的。

使用特权

评论回复
地板
21mengnan| | 2019-1-25 15:33 | 只看该作者
一个标准的ICF文件可包括下面这些内容:

1.       可编址的存储空间(memory)

2.       不同的存储器地址区域(region)

3.       不同的地址块(block)

4.       Section的初始化与否

5.       Section在存储空间中的放置

使用特权

评论回复
5
晓伍| | 2019-2-19 12:59 | 只看该作者
icf文件是干嘛用的呢

使用特权

评论回复
6
paotangsan| | 2019-2-19 13:03 | 只看该作者
是不是flash和ram大小不同啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:大爱无疆

53

主题

389

帖子

0

粉丝