4089|6

9

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

STM32 IAR 配置问题 [复制链接]

还不太懂stm32 IAR的配置,在icf文件中定义区块define overlay param   with alignment = 4 {ro section .text };或定义define block param   with alignment = 4 {ro section .text };
编译都会出现报错Error[Lc041]: "param" defined but not referenced
以为是C代码中未调用出现的问题,但加入#pragma section = "param"定义好变量,并调用该变量后,再编译,仍然报错。一直不知道问题出在哪里。

这么用的目的:将不同文件中定义的零散变量含静态变量的地址统一存储在Param块中,请高手指点一下,icf文件配置哪里出了问题。
此帖出自stm32/stm8论坛

最新回复

这么用的目的:将不同文件中定义的零散变量含静态变量的地址统一存储在Param块中,请高手指点一下,icf文件配置哪里出了问题  详情 回复 发表于 2014-8-24 12:52
点赞 关注
 

回复
举报

4996

帖子

19

TA的资源

裸片初长成(初级)

沙发
 
不怎么用ICF文件,可以在工程设置中设置地址,在代码中添加重映射。。。。
此帖出自stm32/stm8论坛
 
个人签名我的博客
 

回复

1803

帖子

0

TA的资源

五彩晶圆(高级)

板凳
 
你应该是只是定义了,但是没有声明,检查一下声明部分。
此帖出自stm32/stm8论坛

点评

谢谢Study_Stellaris[/backcolor] 兄提示,在place in里面添加后,编译OK,具体是否正确后续验证,3Q!具体修改如下: + define overlay param with alignment = 4 {section .text }; - place in ROM_regio  详情 回复 发表于 2014-8-24 07:54
谢谢zhaojun_xf兄提示,在place in里面添加后,编译OK,具体是否正确后续验证,3Q!具体修改如下: + define overlay param with alignment = 4 {section .text }; - place in ROM_region { readonly }; +  详情 回复 发表于 2014-8-23 22:10
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

4
 
本帖最后由 luyongcdpj 于 2014-8-24 07:56 编辑
Study_Stellaris 发表于 2014-8-21 11:06
你应该是只是定义了,但是没有声明,检查一下声明部分。
12345
此帖出自stm32/stm8论坛
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

5
 
Study_Stellaris 发表于 2014-8-21 11:06
你应该是只是定义了,但是没有声明,检查一下声明部分。[/quote]

[quote]Study_Stellaris 发表于 2014-8-21 11:06
你应该是只是定义了,但是没有声明,检查一下声明部分。

谢谢Study_Stellaris 兄提示,在place in里面添加后,编译OK,具体是否正确后续验证,3Q!具体修改如下:
+  define overlay param   with alignment = 4 {section .text };
-   place in ROM_region   { readonly };
+  place in ROM_region   { readonly,overlay param };
这个问题解决了,但又有一个新问题。我要存储于param中的数据是地址指针,而这些数据是来自各个文件的静态变量,调用param地址的数据又是在另外一个文件。
现在问题是如何在一个未使用#pragma 的情况下,正确调用__section_begin("param"),__section_size("param")
Error[Pa053]: segment/section has not been declared using #pragma  

此帖出自stm32/stm8论坛
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

6
 
When you use the @ operator or the #pragma location directive to place a data object or a function in a user-defined section, or when you use named blocks in the linker configuration file, the section operators can be used for getting the start and end address of the memory range where the sections or blocks were placed.
The named section must be a string literal and it must have been declared earlier with the #pragma section directive. The type of the __section_begin operator is a pointer to void. Note that you must enable language extensions to use these operators.
大概明白了
此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

7
 
这么用的目的:将不同文件中定义的零散变量含静态变量的地址统一存储在Param块中,请高手指点一下,icf文件配置哪里出了问题
此帖出自stm32/stm8论坛
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表