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.

[参考译文] TMS570LS1224:如何使用 GCC 工具链为诸如 Hercules TMS570 MCU 的大端系统构建和链接可行的代码

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1020406/tms570ls1224-how-to-build-and-link-workable-code-for-a-big-endian-system-such-as-a-hercules-tms570-mcu-using-a-gcc-toolchain

器件型号:TMS570LS1224

我发布此帖子主要是为了让其他人受益。  这个问题到处都有很多线程、但我在其他任何地方都找不到好的答案、最终我自己找到了解决方案。

在我的项目中、我们希望 使用 ARM 编译器进行版本构建、但由于成本的原因、我们希望避免将其用于开发工作。  我们使用 GCC 编译器作为开发的替代方案、因为代码和汇编与 ARM 编译器的兼容性比 ARM 编译器和 TI LTS 编译器之间的更强。

当使用 TI Code Composer Studio 中提供的 GNU 工具或使用 ARM 提供的 GCC 编译器时、我发现您可以将源代码构建为大端字节序、但程序不会构建、因为所有内置库仅支持小端字节序系统。

我在网上搜索了很多东西、没有太多帮助。  我还尝试从多个版本的 GCC 源代码构建交叉编译器。  我能够编译本机 GCC 编译器、但在尝试为 ARM 编译交叉编译器时、使其始终崩溃。

最后、我发现 Linaro 在其网站上提供了为大端字节序系统构建代码所需的二进制文件、网址为:

https://releases.linaro.org/components/toolchain/binaries/

您将找到支持 armb-eabi 大端字节序的工具链。  在发布本帖子时、我找到了适用于 GCC 7.5.0的编译器、 它支持 C11、C99和 C89、以防您使用 C 语言进行编程。 通过解压缩文件并在首选项中添加文件夹作为编译器搜索路径、可以轻松地将其添加到 TI CCS 中。

我希望有人可以通过阅读这篇文章来节省一些时间。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="418616" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1020406/tms570ls1224-how-to-build-and-link-workable-code-for-a-big-endian-system-such-as-a-hercules-tms570-mcu-using-a-gcc-toolchain "]我能够构建本机 GCC 编译器,但在尝试为 ARM 构建交叉编译器时使其始终崩溃。

    如果您确实需要为 ARM 构建交叉编译   器、这会有所帮助、则 TMS570LC4357:CCS/TMS570LC4357:使用 ARM 编译器9.3.1进行编译、在上一次执行该操作时有注释。

    [引用 userid="418616" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1020406/tms570ls1224-how-to-build-and-link-workable-code-for-a-big-endian-system-such-as-a-hercules-tms570-mcu-using-a-gcc-toolchain "]最后,我发现 Linaro 在其网站上提供了构建大端字节序系统代码所需的二进制文件

     AdaCore gnat-2021-20210519-arm-elf 编译器还提供大端字节序库、并能够使 CCS 使用  gnat-2021-20210519-arm-elf  

     由于 gnat-2021-20210519-arm-elf 用于 Ada 而不是 C、因此与随 CCS 安装的 Linaro 发行版相比、使用 GCC 进行开发确实存在一些限制:

    1. 没有 C++编译器、也没有 C++运行时库。
    2. 运行时库中没有*。specs 文件、因此必须删除任何 CCS 工程中的-specs 选项。
    3. 运行时库中没有 crt0启动代码、因此必须链接-nodstartfiles 选项。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您与社区分享。  

    此致、
    Sahin