This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/TMS320F28377S:编译器

Guru**** 2457760 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/680750/compiler-tms320f28377s-compiler

器件型号:TMS320F28377S

工具/软件:TI C/C++编译器

您好!

我对 TI v6.4.6版本中的编译器有疑问、即 pragma 保留的全局常量会被优化删除。

这是全局常量变量声明

#pragma RETAIN
#pragma DATA_SECTION ("DeviceID")
const unsigned long device_ID = 0xB3B3B3B3; 

和链接器脚本

DeviceID:> DEVICE_INFO、PAGE = 7 

但是、我找不到任何数据被分配到.map 文件中的 device_info 段。

该变量不会在代码中显式使用、而只是用作戳记。

谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在 C++中、常量变量默认具有内部链接。  (请参阅3版 C++编程语言第9.2节)。  这意味着它们是静态的。  编译器不会发出文件中未使用的静态变量。  克服它的最简单方法是添加关键字 extern。

    extern const unsigned long device_ID = 0xB3B3B3B3; 

    谢谢、此致、

    乔治