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.

[参考译文] TMDSCNCD28388D:从代码中删除全局变量

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1070273/tmdscncd28388d-global-variables-removed-from-code

部件号:TMDSCNCD28388D

使用 CCS11.0.0

我有一些全局变量被外部工具用于控制软件,它们正在从地图文件中进行优化。   

我使用的是一个简单的操作系统,它通过函数指针调用任务。 不知怎么说,代码认为调用处理变量的函数的任务没有调用,因此优化了变量名称。  但是,如果我添加了对使用变量的函数的调用,则该函数将包含在地图文件中。

 

我的问题是是否有一个编译器/链接器选项来保留全局符号? 到目前为止,我还找到了该选项。

 

以下是警告:

2838x_flash_lnk_C28x.cmd",第168行:警告#10068-D:无匹配部分

 下面是部分声明

  IRAM:  {  *(.code_checkMemClassRam)  *(.IRAM_VAR)  *(.IRAM_DATA)  *(.IRAM_Measure 变量)  }>RAMGS1, align(4)

我正在使用相同的 pragma 解密代码中的部分,并且只有 code_checkMemClassRam 已优化。

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

    您好,Duane,  

    您可能会发现本指南非常有用:  https://software-dl.ti.com/C2000/docs/optimization_guide/index.html

    谢谢,
    克利须那

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="510801" url="~ë/support/intrles/c2000微控制器-group/c2000 /f/c2000微控制器-forume/1070273/tmdscncd28388d-globale-variables-remove-fer-code]I 有一些全局变量,外部工具使用这些变量来控制软件,它们正在从地图文件中进行优化。  [/引用]

    这些符号应用#pragma Retain 或 Retain 属性。  有关详细信息, 请在 C28x 编译器手册中搜索 标题为 “Retain Pragma”的子章节。

    谢谢,此致,

    乔治