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.

[参考译文] TMS320F28069:使用不可理解的名称进行链接后的未知模块

Guru**** 2539500 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1312759/tms320f28069-unknown-module-after-linking-with-incomprehensible-name

器件型号:TMS320F28069

您好!

这更多的是一个问题、而不是一个问题。 链接后、我可以在 code composer 中查看存储器使用情况和分布情况。 当我环顾四周时,我发现了一些东西,我不能想出它从哪里,为什么它如此巨大。 可疑区段在.const:.string 中列出、其名称为:{FB7365F9-233A-4ad9-88D0-8D0F491C134B}、但只超过12KB。 我的怀疑是,它是从使用 c++ stl ,但我很不确定。 有什么关于它的来源以及如何使该段更小的提示吗? 不提供有关此方面的进一步信息的.map 文件。
敬托比

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

    您好!

     会将此查询转发给编译器团队。

    此致

    西达尔特

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

    将映射文件附加到下一帖子。  论坛不接受文件扩展名的文件 .map 作为附件。  如果正确、则添加文件扩展名 .txt 反馈回路。

    谢谢。此致、

    -乔治

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

    e2e.ti.com/.../Foc.txt

    很抱歉,我不知为何错过了它。 第5323行中提到了有疑问的部分:

     C:\Users\Tobias\AppData\Local\Temp\
          {6C0E9D68-DE88-4A4E-BA2D-1F0553721313}  0       16577 0           

    此致 Tobi

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

    我想我重现了类似的行为。  我怀疑这个文件...

    C:\Users\Tobias\AppData\Local\Temp\
          {6C0E9D68-DE88-4A4E-BA2D-1F0553721313}

    ...仍然在那个位置。  它是一个目标文件、即使它没有文件扩展名 .obj 。  将其复制到一个典型的文件名中。  说你叫它 Auto.obj 。  您可以使用类似于...的命令来反汇编它。

    $ dis2000 --all auto.obj | dem2000 --abi=eabi -q > disassembly.txt

    该命令 DI2000 是反汇编器。  该命令 DE2000 实用程序还原 C++名称。  这两个示例位于同一个 二进制 Directory 作为编译器 cl2000 。  输出位于文本文件中 disassembly.txt

    我怀疑这个文件的大量内容来自地图文件中的这一行...

                      003f4000    00003255     <whole-program> (.const:.string)

    有很多字符串。  希望你能弄清楚它们来自哪里,以及你能不能做任何事情。

    谢谢。此致、

    -乔治

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

    George、您好!
    到目前为止、您的解决方案似乎有效。 在反汇编中、我可以看到许多实际的功能和方法。 我怀疑、它们没有被放入.const:.string 段中。 我还发现了大量的短数据,这些数据看起来或多或少像这样:

    DATA Section [6].const:$P$T537$509$6 (Little Endian), 0x8 words at 0x00000000 
    00000000        $P$T537$509$6:
    00000000   6166    .word 0x6166
    00000001   5f6e    .word 0x5f6e
    00000002   6c73    .word 0x6c73
    00000003   706f    .word 0x706f
    00000004   2065    .word 0x2065
    00000005   7369    .word 0x7369
    00000006   2520    .word 0x2520
    00000007   0066    .word 0x0066

    有没有任何想法?
    在这里,我找到了一个部分,我知道它属于哪里,但不知道它做什么。

    DATA Section [7].const (Little Endian), 0x4c0 words at 0x00000000 
    00000000        _ZN10Controller14retain_sectionE$7:
    00000000   0003    .word 0x0003
    00000001   0000    .word 0x0000
    00000002   0000    .word 0x0000
    00000003   0000    .word 0x0000
    00000004   0000    .word 0x0000
    00000005   0000    .word 0x0000
    00000006   0000    .word 0x0000
    00000007   0000    .word 0x0000


    编辑:
    由于该段指出具有一个较大的.string 子段、因此我发现它实际上没有那么大。 此外、还将 uint8_t LUT 放置在此处。 例如:

    DATA Section [31].const:.string:Bit::bitReverse(unsigned char)::lookup (Little Endian), 0x10 words at 0x00000000 
    00000000        Bit::bitReverse(unsigned char)::lookup:
    00000000   0000    .word 0x0000
    00000001   0008    .word 0x0008
    00000002   0004    .word 0x0004
    00000003   000c    .word 0x000c
    00000004   0002    .word 0x0002
    00000005   000a    .word 0x000a
    00000006   0006    .word 0x0006
    00000007   000e    .word 0x000e
    00000008   0001    .word 0x0001
    00000009   0009    .word 0x0009
    0000000a   0005    .word 0x0005
    0000000b   000d    .word 0x000d
    0000000c   0003    .word 0x0003
    0000000d   000b    .word 0x000b
    0000000e   0007    .word 0x0007
    0000000f   000f    .word 0x000f

    其原因如下:

        const static uint8_t lookup[16] = {
        0x0, 0x8, 0x4, 0xc, 0x2, 0xa, 0x6, 0xe,
        0x1, 0x9, 0x5, 0xd, 0x3, 0xb, 0x7, 0xf, };

    它显然不是字符串。 但我想在组装上并不重要。


    此致 Tobi

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

    关于  数据部分[6].const:$P$T537509美元$6</s>6美元 。  我在链接器映射文件中找到该行...

                      0001436d    00000008     ControllerCliDeflatedAuto.obj (.const:$P$T537$509$6)

    构建源文件 ControllerCliDeflatedAuto.cpp 器件值。  但添加选项 -- keep_asm 。  默认情况下会删除编译器生成的汇编文件。  但该选项是要保留它。  它 被命名为 ControllerCliDeFlatedAuto.asm 。  搜索该文件  P$T537509美元$6</s>6美元 。  我不知道你会找到什么。  希望它对您有所帮助。

    以标签开头的代码的寄存器  _ZN10Controller14retain_sectionE7美元 。  在源中搜索同时包含两个选项的任意行 控制器 保留部分 。   

    谢谢。此致、

    -乔治