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.

[参考译文] 编译器/TMS570LS0714:TI-CGT-ARM_16.9.6.LTS 行为可疑、将尾数设置为大、TMS570代码不起作用

Guru**** 2482105 points
Other Parts Discussed in Thread: TMS570LS0714, TI-CGT

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/709059/compiler-tms570ls0714-ti-cgt-arm_16-9-6-lts-is-behaving-suspiciously-set-the-endian-as-big-code-of-tms570-doesn-t-work

器件型号:TMS570LS0714
主题中讨论的其他器件: TI-CGT

工具/软件:TI C/C++编译器

大家好、

客户使用以下标志来进行编译和链接,但遗憾的是,当他们将端字节序设置为大时,他们的代码不起作用,如果他们将端字节序设置为小,则他们的代码运行良好。 读取 DevID 寄存器后、平台 ID 为5h。 他们确认 IC 是 TMS570、而不是 RM 器件。 您能帮您检查以下标志并给出一些意见吗? 非常感谢。

 ------------------------------

编译器:TI-CGT-ARM_16.9.6.LTS

器件:TMS570LS0714

编译器标志:

-c -mv7R4 --code_state=32 --float_support=VFPv3D16 --enum_type=packed --preproc_with_compile -i%V7_LIBDIR%--opt_level=off --endian=big

 

链接器标志:

--run_linker --heap_size=0x800 --stack_size=0x800

 --search_path="C:\ti\CODEC~1.0\ccsv7\tools\compiler\TI-CGT~4.LTS \lib"

 --search_path=%V7_LIBDIR%

 --reread_libs

 --warn_sections --rom_model -be32

o %application%.out -m %application%.map -x linker.cmd

--library=v火山7.lib --library=rtsv7R4_T_be_v3D16_eabi.lib

 --entry_point=_c_int00

 

在以小端字节序格式编译时、我使用以下编译器和链接器标志:

编译器标志:

-c -mv7R4 --code_state=32 --float_support=VFPv3D16 --enum_type=packed --preproc_with_compile -i%V7_LIBDIR%--opt_level=off --endian=little

 

链接器标志:

--run_linker --heap_size=0x800 --stack_size=0x800

 --search_path="C:\ti\CODEC~1.0\ccsv7\tools\compiler\TI-CGT~4.LTS \lib"

 --search_path=%V7_LIBDIR%

 --reread_libs

 --warn_sections --rom_model

o %application%.out -m %application%.map -x linker.cmd

--library=v火山7.lib --library=rtsv7R4_T_le_v3D16_eabi.lib

 --entry_point=_c_int00

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

    尊敬的 David:

    器件字节序应为-be32而不是大字节序

    ABI 应为 eabi

    请为我读取 CPSR 寄存器的值:

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

    您好 QJ、

    感谢您的回复。 CPSR 寄存器如下所示。 请帮助检查。 谢谢。

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

    E 位为"1"(大端字节序)。 这意味着您的代码处于大端字节序模式、即使您的运行代码是使用小端字节序选项编译的。 您说过使用 big32编译的代码选项不起作用。

    您可以将项目发送给我吗(空闲状态正常)?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 QJ、

    是的。 客户将标志更改为--endian=big32,但编译器(ti-cgt-arm_16.9.6.LTS)给他一个错误,即只有可用选项很少或很大。 因此、客户删除了此标志、但问题仍然与以前相同。 他的意思是、如果他以大端字节序格式编译代码、则不起作用。

    我将询问客户是否可以向我们发送他们的项目。 谢谢。

    其他信息:

    DevID 寄存器的值如下所示:

    2. 客户正在使用 ti-cgt-arm_16.9.6.LTS 编译器。 为了编译 和链接他的代码、他使用编译器包中存在的 armcl.exe 二进制文件(命令行版本)。 他还附加了批处理文件、在将其扩展名更改为.txt 文件后、他使用来编译 和链接他的代码。 在该文件 中、CFLAGS 表示编译器标志、LFLAGS 表示链接器标志。 链接在.txt 文件末尾完成

    e2e.ti.com/.../7506.build.txt

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

    感谢您更新电子邮件中的状态、编译器团队将修复文档中的拼写错误。 我将关闭此主题。 谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 QJ、

    感谢您的跟进。

    通过在链接器标志中将-be32标志更改为-be32、可以解决此问题。 希望答案能帮助他人。 谢谢。

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

    编译器/CCS 团队将检查该文档并进行更正。