JNH官网

【ARM】解决变量中添加Static属性后在map文件中无法找到对应符号的问题

1、 文档目标

解决变量数中添加Static属性后在map文件中无法找到对应符号的问题。


2、 问题场景

在main函数中用“static unsigned long rw_base_addr;”设置一个全局变量,在map文件无法找到这个变量名称,同时,会出现“Warning: L6329W: Pattern *(RW) only matches removed unused sections.”的警告信息,如图2-1所示:

图2-1

3、软硬件环境

1)、软件版本:ArmDS 2024.0

2)、电脑环境:Windows 11

3)、外设硬件:无


4、解决方法

1)、打开工程的属性窗体,把编译优化设置为O0,如图4-1所示:

图4-1

2)、重新编译工程,map文件可以找到这个符号,同时警告信息也已修正,如图4-2所示:

图4-2

注:1、static关键字导致这些变量的作用域被限制在了单个文件或模块内,当对编译优化时,会优化掉。

2、警告信息,也是由于“static int variable __attribute__((section("foo"))) = 10;” 这个设置中,也应用了“static”关键字。


jnh官网 jnh官网 jnh官网 jnh官网 金年会 金年会 金年会 金年会