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.

[参考译文] 意外地将 CCS 临时文件链接到 device's 内存映射

Guru**** 2563960 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1202844/ccs-temp-file-linked-into-device-s-memory-map-unexpectedly

您好、尊敬的 CCS 团队:

客户正在使用 CC2642、他们发现 C:\Users\下有一个目标文件的对象 \AppData\Local\Temp 位于已编译的.map 文件中、该文件占用~5k 内存:

目标文件可以使用 armofd.exe 打开、它具有如下信息、并且看起来像一些调试信息:

但是、客户不知道哪个选项会生成此信息、并阻止它链接到内存映射、客户不会使用该信息、他们希望将其删除以节省记忆。

您能不能评论一下什么是此文件以及如何将其从存储器映射中删除? 谢谢、我附上了以下完整文件。

e2e.ti.com/.../_7B00_50B4475C_2D00_2253_2D00_46D1_2D00_A8FA_2D00_D931DA281D52_7D00_

e2e.ti.com/.../simple_5F00_peripheral_5F00_CC26X2R1_5F00_LAUNCHXL_5F00_tirtos_5F00_ccs.map

此致、

沭阳

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

    我有部分解释。

    在使用进行构建时会发生这种情况 -- opt_level=4. 也称为链接时优化。   有关链接时优化的详细信息、 请在 TI ARM 编译器手册 中搜索标题为 链接时优化的子章节。  较大的临时目标文件来自链接时优化。  在中 模块总结 作为链接器映射文件的一部分、大型临时目标文件中的大多数字节都与它们在其中启动的源文件相关联。  但是、5264字节的读写数据不与任何源文件相关联。  我们知道、其中大部分来自常见变量。  但不是全部的。  我们仍在调查。  请耐心等待。

    Xiong Dang 说:
    客户不使用该文件、他们想要将其删除以保存记忆。

    只能确定的是、代码的正确操作需要此读写数据、因此无法将其删除。

    谢谢。此致、

    -George.

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

    很抱歉、但我们的调查仍在继续。  在我们可以完全从源代码构建的 CCS 项目中、我们可以看到类似的问题。  我们在探索它的前提下、假设它代表了您的客户体验所遇到的问题。  再说一次、请耐心一点。

    谢谢。此致、

    -George.

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

    创建未初始化的全局变量时...

    int uvar;

    ... 编译器不会立即为其分配空间。  相反、它会创建一个公共变量。  可以将公用变量视为仅创建了部分变量。  之后、链接时会确定程序是否读取或写入了此变量。  如果不是、则会丢弃它。  如果使用了它、则链接器会为它分配空间、以其他方式完成它的创建。  到发生该事件时、与定义了变量的源文件的关联将丢失。  这就是为什么在链接器映射文件中您会看到类似...的条目。

                      200045e0    00000800     (.common:bleTaskStack)
                      20004de0    00000800     (.common:gCommCfg)
                      200055e0    00000400     (.common:myTaskStack)

    请注意没有库或文件与这些条目相关联。   

    中信息的一部分 模块总结 链接器映射文件的一部分是程序中的文件和库使用的存储器大小。  常见变量会出现什么情况?  用于不是使用构建的目标文件(无论是否来自库) -- opt_level=4. ,重新建立与源文件的关联,给定文件中公用变量的大小 有助于 RW 数据 (最后一个)栏。  生成的目标文件的快捷方式 -- opt_level=4. ,与链接时优化临时对象文件的关联是唯一一个仍然存在的关联。  这就是为什么你看到...

        C:\Users\F70401~1\AppData\Local\Temp\
           {50B4475C-2253-46D1-A8FA-D931DA281D52}   0        0         5264   
        +--+----------------------------------------+--------+---------+---------+
           Total:                                   0        0         5264

    如果将提交的映射文件中所有公用变量的大小相加、将达到9603字节、超过5264。  其余与不是使用其构建的目标文件相关联 -- opt_level=4.

    谢谢。此致、

    -George.