硬汉嵌入式论坛

 找回密码
 立即注册
查看: 988|回复: 2
收起左侧

[STM32H7] STM32H7平台上,使用IAR自定义一个ICF,在调试时报警

[复制链接]

5

主题

7

回帖

22

积分

新手上路

积分
22
发表于 2022-8-13 13:28:11 | 显示全部楼层 |阅读模式
大家好,我使用IAR(9.30.1)在做第28章实验时自定义了一个icf,想将不同属性的变量放到不同的SDRAM中。
icf如下图
/*-user define Regions-*/
place in SRAM1_region    { section .SRAM1_DATA };
place in SRAM2_region    { readwrite section .USER_DEFINE_DATA };   
place in SRAM3_region    { zeroinit section .USER_DEFINE_DATA };  
place in AXISRAM_region { section .AXISRAM_DATA  };
place in ITCM_region             { ro section .ITCM_CODE };
place in ITCM_region            { ro section .USER_DEFINE_DATA };
/*-user define Regions end-*/


C代码对应如下图
#pragma location = ".USER_DEFINE_DATA"
const char AppReadonlyAXISRM[] = "hello,world";
#pragma location = ".USER_DEFINE_DATA"
uint16_t NoInitialData;
#pragma location = ".USER_DEFINE_DATA"
uint16_t InitialData = 2 ;

// 0x00000000 - 0x0000FFFF
#pragma location = ".ITCM_CODE"
void critical_func1( void)
{
    __NOP();
}

正常情况下,ZI属性的NoInitialData会被定义到SRAM3 , InitialData 会被定义到SRAM2,AppReadonlyAXISRM会被定义到ITCM_region。map中也确实如此,调试时查地址也如此
但是在编译和下载时出现了以下报错,让我很诧异。
1
编译时报warning如下
Warning[Be006]: possible conflict for segment/section ".USER_DEFINE_DATA":        D:\PROJECT\MASTER\XD\ANFULAI\User\main.c        50       

variable "InitialData @ ".USER_DEFINE_DATA"" (declared Hat line 50 of "D:\PROJECT\MASTER\XD\ANFULAI\User\main.c"h) is an initialized variable                       
variable "NoInitialData @ ".USER_DEFINE_DATA"" (declared Hat line 48 of "D:\PROJECT\MASTER\XD\ANFULAI\User\main.c"h) is a zero-initialized variable                       
variable "AppReadonlyAXISRM @ ".USER_DEFINE_DATA"" (declared Hat line 46 of "D:\PROJECT\MASTER\XD\ANFULAI\User\main.c"h) is a constant                       


2
下载调试时报警如下
image.png image.png

3
debug log中显示如下
Sat Aug 13, 2022 13:24:42: Flash download warning: 16 out of 16 bytes from data record CODE:[0x0,0xf] will not be flashed
Sat Aug 13, 2022 13:24:42: There were warnings while generating flash loader input.
Sat Aug 13, 2022 13:24:42: See the Debug Log window for details.


我想知道为什么会报这个?有没有什么好的解决方式
谢谢大家

回复

使用道具 举报

5

主题

7

回帖

22

积分

新手上路

积分
22
 楼主| 发表于 2022-8-13 14:50:06 | 显示全部楼层
如果使用download and debug会调这个报警,但是使用download without debug不会。我个人认为和FLASH的算法有关系m, 后来把demon里的选型从STM32H743XI 换成STM32H750后不再报错
回复

使用道具 举报

5

主题

7

回帖

22

积分

新手上路

积分
22
 楼主| 发表于 2022-8-16 13:07:52 | 显示全部楼层
补充,之前好像搞错了,换了750的也会报警。但是找到了类似报错的贴子,
https://forums.freertos.org/t/mpu-ewarm-warnings/7286
回贴中有一句
We have examined the generated code and those warnings are harmless. You can supperss them by following these steps:
Right click on the project and click options.
Go to C/C++ Compiler --> Extra Options.
Add --diag_suppress Be006
Thanks.
就是说这不是啥问题,不用管。我认为是我把RW,RO,ZI数据都定义在这个区里导致的
至于这个解决方法,加上去后会有一堆报错,不怎么管用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-25 14:24 , Processed in 0.210747 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表