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 11.1中,使用 TI Clang 编译器的 TMS570LC4357的项目不再支持正确的设备 endianess of be32

Guru**** 2472790 points
Other Parts Discussed in Thread: TMS570LC4357

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1071475/in-ccs-11-1-a-project-for-a-tms570lc4357-using-the-ti-clang-compiler-no-longer-supports-the-correct-device-endianess-of-be32

“线程”中讨论的其它部件:TMS570LC4357测试

在 CCS 10.3.0.00007中 ,当使用 TI Clang 编译器为 TMS570LC4357创建项目时,Device endianess 设置为 be32,这是  TMS570LC4357的正确值:

使用 CCS 11.1.0.00011时,设备的无内延性较大:

在 CCS 10.3中 ,选择 TI Clang 编译器时 TMS570LC4357的可用器件无内核选项为 be32,be8,大小或小。

使用 CCS 11.1,  选择 TI Clang 编译器时 TMS570LC4357的可用器件无内核选项只有大或小。

在相关线程中,CCS 10.3中为 TMS570LC4357创建的项目使用 TI Clang 编译器 v1.3.0.LTS 不再编译 CCS 10.4,11.0或11.1上的正确可执行文件时出现问题。 问题是,以后的 CCS 版本不再将--be32选项传递给链接器,导致生成的可执行文件在闪存的部分中具有不正确的 endianess。 这似乎与 TI Clang 编译器用于 TMS570LC4357时 CCS 不再识别 be32器件无内核选项有关。

 CCS 10.3和11.1安装中的 CCS/CCS 基础版/公共版/目标版 db/devices/tms570lc43xx.xml 文件是相同的,因此不知道是什么导致了差异。

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

    切斯特

    有多个问题。  首先,TMS570的设备 xml 文件没有缺省值 clang 选项。  因此,它最终将为处理器型号设置一些默认值。  现在我认为,armcl 是 TMS570的推荐编译器。

    如果您在 CCSv10.3和 Build 中运行向导并选择43xx 和 clang,则会出现如下错误:  

    tiarmclang:错误:大 endian 不支持子目标。

    在10.3中,如果我设置了处理器选项,那么它对我来说是可以的,并将 be32传递给链接器。  有趣的是,它不允许我通过 UI 编辑此选项。

    如果我在 CCSv11.1中遵循相同的过程(在向导中选择“大”),则第一个错误是相同的,我可以通过设置处理器选项来解决。  但是,第二步是不同的,因为它没有将 be32传递给链接器。  如果我将链接器选项从 CCS10.3复制到 CCSv11,它会起作用。   

    我们必须深入研究这个问题,以了解为什么我们不再允许您选择 be32。

    此致,

    约翰

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

    切斯特

    好的,我可以在 CCSv11.1中使其构建正常。

    故障测试案例:

    构建目标:“CCSv11.1 test.out”

    调用:ARM 链接程序

    "/Applications/ti/Ccs1110/CCs/tools/compiler/ti-CGT-armlvm_1.3.0.0.spir/bin/tiarmclang"-March =armv7r -MCPU=cortex-R5 -mbig-endian -og -gstrict -dwarf -xml -WL -wl -"-"CCm=-exch_linest-v-ex-exchem-ex-v-exchinch_ex-v-v-v-ex-v-v1.3"v-ex-ex-vswl -ex-ex-ex-ex-ex-ex-ex-ex-ex-ex-ex-v-ex-ex-ex-ex-v-v-ex-ex-exchinchinchv-v-v-ex-v-v-ex-ex-ex-ex-ex-ex-ex-ex-ex-ex-excwl -ex-ex-ex-ex-ex-exchinfilm -ex-ex-ex-ex-ex-exch_excwls.v-ex-ex-ex  

    tiarmclang:错误:不支持的选项'--be32'

    工作测试用例:

    构建目标:“CCSv11.1 test.out”

    调用:ARM 链接程序

    "/Applications/ti/Ccs1110/CCs/tools/compiler/ti-CGT-armlvm_1.3.0.0.spir/bin/tiarmclang"-March =armv7r -MCPU=cortex-R5 -mbig-endian -og -gstrict -dwarf -xml -wl -wl -"-"CCm=-exch_linest-v-ex-exchem-v-ex-v1.3"v-ex-ex-ex-ex-exchinch_ex-v-v-ex-vswv-ex-ex-ex-ex-ex-ex-ex-ex-ex-ex-ex-ex-ex-v-ex-ex-v-v-ex-ex-exchinchv-ex-v-v-v-v-v-v-v-v-v-ex-ex-ex-ex-ex-ex-excwlv-ex-ex-ex-ex-ex-ex-ex-ex-ex-ex-ex-ex-exchdwarnv-ex-ex-ex-ex-  

    警告#10247-D:在没有书帖规格的情况下创建输出书帖".text"

    警告#10247-D:在没有书帖规格的情况下创建输出书帖".stack"

    警告#10210-D:创建默认大小为0x800的".stack"部分;使用-stack 选项更改默认大小

    完成构建目标:“CCSv11.1 test.out”

    区别在于,在第二种情况下,-be32之前没有空格。  我正在手动添加--be32。

    我们正在检查为什么项目向导被更改为不允许选择 be32。

    此致,

    约翰

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

    切斯特

    因此,从 CCS 项目向导中删除了 be32选项,因为该选项不是工具集的验证套件的一部分。  您可以通过在链接器选项中添加"-wl,--be32"来解决此问题,这基本上是向导在10.3中所做的。  但是,请注意,此工具集当前未运行 be32测试。  现在正在讨论如何添加该内容。

    此致,

    约翰

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="3175" url="~/support/tools/code-composer-studio -group/CCCS /f/code-composer-studio -forume/1071475/IN-CCS-11-1-a-project-for-a-tms570lc4357-use-ti-clang-compiler-no-forum-enger/solutions/10746396412-ne-tms6432",不再支持该设备的默认选项,对于 TMS6396432-eness 文件,不适用。  因此,它最终会为处理器变体设置一些默认值。

    在 CCS 安装中,XML 文件中指定的处理器变体的默认值是在某个位置,还是在 CCS 可执行文件中指定的默认值?

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

    切斯特

    我所说的是以下选项:

    如果设备 xml 未指定它们,则 CCS 不会设置值。  编译器 将有一个缺省值,在未指定时使用该缺省值。  这是编译器二进制文件中的内容。

    此致,

    约翰