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/TMS320C6657:6657

Guru**** 2587345 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/680092/ccs-tms320c6657-6657

器件型号:TMS320C6657

工具/软件:Code Composer Studio

您好!

 我在 CCS5和 CCS7中构建了代码库。 显示编译器版本所有其他软件包都是相同的。

在两个 IDE 中生成的.map 文件不同。

CCS7:

.cinit 0 00892778 00005ef0  

00892778 00004d7c (.cinit、.fardata.load)[加载映像]

CCS5:

.cinit 0 9f0ac30c 00002a4c
9f0ac30c 0000277e (.cinit、.fardata.2.load)[加载映像、压缩= rle]
9f0aea8a 00000002 --hole --[填充= 0]

您可以观察到".cinit、.fardata.load"的长度存在显著差异。

我已经在项目链接器设置中设置了--zero_init = on 和--cinit_compression=off。

如何仅在 CCS7中对.fardata 段应用 RLE 压缩

此致、

Pradeep

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

    出于某种原因、CCS5编译会压缩.cinit 段、而 CCS7编译不会压缩。  由于您使用-cinit_compression=off、我假设 CCS7是所需的结果。   

    对于 CCS5构建、请再次执行构建、然后保存"Console"视图的内容。  使用图标 Copy Build Log 将整个构建日志保存到文本文件中。  确保将文本文件命名为文件扩展名为.txt。  请将其附加到您的下一个帖子。

    谢谢、此致、

    乔治

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

    e2e.ti.com/.../DPM1_5F00_Console.txtHi、

    我希望 CCS7中的代码像 CCS5一样编译。

    我在 CCS7中将"-cinit_compression=off"设置为"--cinit_compression=off"。 如果未设置、.cinit 的所有段都将压缩到 RLE 中、这是我不需要的。  

    此致、

    Pradeep

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

    [引用 user="Pradeep sabarinadh"]我在 CCS7中设置了"-cinit_compression=off"。 如果未设置、.cinit 的所有段都将压缩到 RLE 中、这是我不需要的。  [/报价]

    遗憾的是、命令行选项-cinit_compression 是唯一可用的方法。  无法压缩一个段(如.fardata)的初始化数据、但不能压缩另一个段(如.data)的初始化数据。

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    生成的映射文件 CCS5如下所示
    CCS5映射文件
    .cinit 0 9f0ac30c 00002a4c
    9f0ac30c 0000277e (.cinit、.fardata.2.load)[加载映像、压缩= rle]
    9f0aea8a 00000002 --hole --[填充= 0]
    9f0aea8c 000000d4. (.cinit.platform_lib.load)[加载图像、压缩= RLE]
    9f0aeb60 0000007e (.cinit、.nearddata.load)[加载映像、压缩= rle]
    9f0aebde 00000002 --hole --[填充= 0]
    9f0aebe0 0000002a (.cinit、.rodata.load)[加载映像、压缩= rle]
    9f0aec0a 00000002 --hole --[填充= 0]
    9f0aec0c 00000015 (.cinit、.fardata.1.load)[加载映像、压缩= rle]
    9f0aec21 00000003 --hole --[填充= 0]
    9f0aec24 0000000c (__TI_handler_table)
    9f0aec30 00000008 (.cinit。.algext_MEM.load)[加载映像、压缩= zero_init]
    9f0aec38 00000008 (.cinit。.ALGL2_MEM.load)[加载映像、压缩= zero_init]
    9f0aec40 00000008 (.cinit、.alg_MEM.load)[加载映像、压缩= zero_init]
    9f0aec48 00000008 (.cinit、.app_MEM.load)[加载映像、压缩= zero_init]
    9f0aec50 00000008 (.cinit。.INPUTPARAM_MEM.load)[加载映像、压缩= zero_init]
    9f0aec58 00000008 (.cinit。.MSGQDATA_MEM.load)[加载映像、压缩= zero_init]
    9f0aec60 00000008 (.cinit、.MSGQ_MEM.load)[加载映像、压缩= zero_init]
    9f0aec68 00000008 (.cinit、.pci_MEM.load)[加载映像、压缩= zero_init]
    9f0aec70 00000008 (.cinit、.VOLUMEDATA_MEM.load)[加载映像、压缩= zero_init]
    9f0aec78 00000008 (.cinit、.bss.load)[加载映像、压缩= zero_init]
    9f0aec80 00000008 (.cinit、.far.load)[加载映像、压缩= zero_init]
    9f0aec88 00000008 (.cinit.comGlobal.load)[加载映像、压缩= zero_init]
    9f0aec90 00000008 (.cinit.cpuLargeMemory.load)[加载映像、压缩= zero_init]
    9f0aec98 00000008 (.cinit.cpuMemoryMap.load)[加载映像、压缩= zero_init]
    9f0aeca0 00000008 (.cinit.exceptionInfo.load)[加载映像、压缩= zero_init]
    9f0aeca8 00000008 (.cinit.linebuffInfo.load)[加载映像、压缩= zero_init]
    9f0aecb0 000000a8 (__TI_cinit_table)
    在此过程中、我将设置中的-cinit_compression 选项留空。
    如何对 CCS7中的各种代码应用类似的压缩模式、如 CCS5中所示。
    如果我在 CCS7中将-cinit_compression 留空、则.cinit 的所有代码都将在 RLE 中进行压缩。 在我的情况下,这是不可取的。

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

    稍后编辑... 请完全忽略此帖子。  我出错了。  我将此帖子保留在这里只是为了避免更多混淆。  抱歉!  乔治

     

    我仍然不确定原因,但我想如果您明确指定链接器选项,您将从 CCS7构建中获得所需的结果...

    --zero_init=on --cinit_compression=rle 

    我可以看到、在 CCS5构建中、您使用的是编译器版本7.4.1。  使用 CCS7进行编译时、您使用哪种编译器版本?

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我正在 CCS7中使用 ti-cgt-C6000_8.2.2

    使用该设置、--zero_init=on --cinit_compression=rle
    我得到了、
    .cinit 0 00892858 000029f8
    00892858 000026c0 (.cinit、.fardata.load)[加载映像、压缩= rle]
    00894f18 000000d4 (.cinit.platform_lib.load)[加载图像、压缩= RLE]
    00894fec 0000007e (.cinit、.nearddata.load)[加载映像、压缩= rle]
    0089506a 00000041 (.cinit、.pci_mem.load)[加载映像、压缩= rle]
    008950ab 0000002a (.cinit、.rodata.load)[加载映像、压缩= rle]
    008950d5 00000025 (.cinit。.ALGEXT_MEM.load)[加载映像、压缩= RLE]
    008950fa 0000000e (.cinit、.VOLUMEDATA_MEM.load)[加载映像、压缩= RLE]
    00895108 0000000d (.cinit。.ALGL2_MEM.load)[加载映像、压缩= RLE]
    00895115 0000000d (.cinit、.alg_MEM.load)[加载映像、压缩= RLE]
    00895122 0000000d (.cinit。.INPUTPARAM_MEM.load)[加载映像、压缩= RLE]
    0089512f 0000000d (.cinit、.MSGQDATA_MEM.load)[加载映像、压缩= RLE]
    0089513c 0000000d (.cinit、.MSGQ_MEM.load)[加载映像、压缩= RLE]
    00895149 0000000d (.cinit、.far.load)[加载映像、压缩= rle]
    00895156 0000000d (.cinit.cpuLargeMemory.load)[加载映像、压缩= rle]
    00895163 0000000d (.cinit.cpuMemoryMap.load)[加载映像、压缩= RLE]
    00895170 0000000b (.cinit、.app_MEM.load)[加载映像、压缩= RLE]
    0089517b 0000000b (.cinit.comGlobal.load)[加载图像、压缩= RLE]
    00895186 0000000b (.cinit.exceptionInfo.load)[加载映像、压缩= RLE]
    00895191 0000000b (.cinit.linebuffInfo.load)[加载映像、压缩= RLE]
    0089519c 00000009 (.cinit、.bss.load)[加载映像、压缩= RLE]
    008951a5 00000003 --hole --[填充= 00000000]
    008951a8 00000008 (__TI_handler_table)
    008951b0 000000a0 (__TI_cinit_table)

    我想要类似的东西
    .cinit 0 9f0ac30c 00002a4c
    9f0ac30c 0000277e (.cinit、.fardata.2.load)[加载映像、压缩= rle]
    9f0aea8a 00000002 --hole --[填充= 0]
    9f0aea8c 000000d4 (.cinit.platform_lib.load)[加载映像、压缩= rle]
    9f0aeb60 0000007e (.cinit.neeardata.load)[加载映像、压缩= rle]
    9f0aebde 00000002 --hole --[填充= 0]
    9f0aebe0 0000002a (.cinit.rodata.load)[加载映像、压缩= rle]
    9f0aec0a 00000002 --hole --[填充= 0]
    9f0aec0c 00000015 (.cinit、.fardata.1.load)[加载映像、压缩= rle]
    9f0aec21 00000003 --hole --[填充= 0]
    9f0aec24 0000000c (_TI_handler_table)
    9f0aec30 00000008 (.cinit.ALGEXT_MEM.load)[加载映像、压缩= zero_init]
    9f0aec38 00000008 (.cinit.ALGL2_MEM.load)[加载映像、压缩= zero_init]
    9f0aec40 00000008 (.cinit、.alg_MEM.load)[加载映像、压缩= zero_init]
    9f0aec48 00000008 (.cinit.app_MEM.load)[加载映像、压缩= zero_init]
    9f0aec50 00000008 (.cinit.INPUTPARAM_MEM.load)[加载映像、压缩= zero_init]
    9f0aec58 00000008 (.cinit.MSGQDATA_MEM.load)[加载映像、压缩= zero_init]
    9f0aec60 00000008 (.cinit.MSGQ_MEM.load)[加载映像、压缩= zero_init]
    9f0aec68 00000008 (.cinit、.pci_MEM.load)[加载映像、压缩= zero_init]
    9f0aec70 00000008 (.cinit.VOLUMEDATA_MEM.load)[加载映像、压缩= zero_init]
    9f0aec78 00000008 (.cinit、.bss.load)[加载映像、压缩= zero_init]
    9f0aec80 00000008 (.cinit.far.load)[加载映像、压缩= zero_init]
    9f0aec88 00000008 (.cinit.comGlobal.load)[加载映像、压缩= zero_init]
    9f0aec90 00000008 (.cinit.cpuLargeMemory.load)[加载映像、压缩= zero_init]
    9f0aec98 00000008 (.cinit.cpuMemoryMap.load)[加载映像、压缩= zero_init]
    9f0aeca0 00000008 (.cinit.exceptionInfo.load)[加载映像、压缩= zero_init]
    9f0aeca8 00000008 (.cinit.bufflineInfo.load)[加载映像、压缩= zero_init]
    9f0aecb0 000000a8 (_TI_cinit_table)

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

    我对您想要解决的问题感到困惑。  这...

    [引用 user="Pradeep sabarinadh ]我在 CCS7中使用了 ti-cgt-C6000_8.2.2

    使用该设置、--zero_init=on --cinit_compression=rle
    我得到了、
    .cinit 0 00892858 000029f8

    (笑声) 小于...

    [引用 user="Pradeep sabarinadh"]我想要类似的东西
    .cinit 0 9f0ac30c 00002a4c

    请注意、.cinit 行上的最后一个数字是.cinit 段中的字节数。

    这些是仅在启动时使用的初始化表。  在这种情况下、我认为越小越好。  您必须记住其他一些目标。  这是什么?

     CCS5编译使用 compression=zero_init 的位置、CCS7编译使用 compression=rle、您是否感到烦恼

    谢谢、此致、

    乔治

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

    尊敬的乔治:

    让我澄清一下你的困惑和意图。

    在 CCS7中、如果我们设置-zero_init=on -cinit_compression=rle、.cinit 大小会比 CCS5小。

    但是、在我的案例中、基于这种设置构建的 DSP 映像不起作用。 因此、我必须将这两个设置留空、以将其删除。

    3.我不关心 .cinit 段的大小,而是关注对.cinit 的各种代码应用的压缩。

    我的意图是使 CCS7的.cinit 中的压缩看起来与 CCS5类似。

    回到第2点、除了.cinit 之外、CCS7中的所有段看起来几乎与 CCS5相似。 这就是让我专注于.cinit 压缩的原因。  

    无法正常工作的问题可能是其他问题、但我计划获取与工作映像之一匹配的.cinit 压缩设置。

    << 在  CCS5编译使用  compression=zero_init 的位置、CCS7编译使用 compression=rle、您是否感到烦恼?>>是

    此致、

    Pradeep

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

    [引用 user="Pradeep sabarinadh"]2. 但是、在我的案例中、基于这样的设置构建的 DSP 映像不起作用。 因此、我必须将这两个设置留空、以将其删除。

    结果是--zero_init=on --cinit_compression=rle 与默认值匹配。  因此、删除这些设置无效。

    请提供更多详细信息、了解您的"不工作"是指什么。  到底是什么问题?  您是如何看到它的?

    [引用 user="Pradeep sabarinadh"]无法正常工作的问题可能是其他问题

    这似乎很有可能。   

    [引用 USER="Pradeep sabarinadh?<<< 您是否被 CCS7编译在  CCS5编译使用  compression=zero_init 的位置使用 compression=rle 这一事实困扰?>>是

    明白。  当使用 RLE 与使用 zero_init 不同时、最终结果是相同的。  也就是说、变量设置为0。  遗憾的是、无法匹配在旧编译器中完成压缩的方式。  

    谢谢、此致、

    乔治