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.

[参考译文] MSP430FR6989:mspgcc 与普通 gcc 功能相同

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/941162/msp430fr6989-mspgcc-same-functionality-as-normal-gcc

器件型号:MSP430FR6989

大家好、  

我不知道我会在什么论坛中专门提出这个问题、这似乎是最接近的。  

我一直使用 CCS 提供的编译器。 但是、我正在尝试更多地使用 GCC、并且知道 GCC 的功能及其工作方式。 所以我有一些问题,我似乎找不到答案。  

1.您是否需要 MSP430-GCC 来编译到 MSP430、或者您是否可以使用具有-mmcu=MSP430等标志的普通 GCC? -->正常的 GCC 可用于您自己的计算机,因此您需要一个交叉编译器,因此需要使用 MSP430-gcc,该标志将起作用。

2. MSP430-GCC 是否提供与 GCC 完全相同的功能(是否可以使用相同的属性和标志)? 我猜它确实如此、我猜 MSP430-GCC 也可以做更多的事情吗?  

此致。

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

    您好!

    [引用用户="Yannick Daelemans"]

    1.您是否需要 MSP430-GCC 来编译到 MSP430、或者您是否可以使用具有-mmcu=MSP430等标志的普通 GCC? -->正常的 GCC 可用于您自己的计算机,因此您需要一个交叉编译器,因此需要使用 MSP430-gcc,该标志将起作用。

    [/报价]

    您不能使用"正常"(即本机) GCC 为 MSP430编译、因为 MSP430和 x86_64 (例如)是截然不同的计算机。 必须为一个特定的目标机器配置 GCC。

    我认为不值得了解 为什么 GCC 不允许您为多个目标机器进行配置。

    [引用用户="Yannick Daelemans"]

    2.如果 GCC 本身不能用于 MSP430、是否有一些可使用的交叉编译器(例如 TI 不提供、尽管这不是必需的)?

    [/报价]

    MSP430-GCC 只是为 MSP430目标配置的 GCC、因此它是一个交叉编译器、因为它为与其运行的"机器"不同的"机器"编译代码。

    我们通过 TI 发布的 MSP430-GCC 基于早期稳定版本的 GCC、并应用额外的补丁来添加功能和修复错误。

    如果您不想使用 TI 发布的版本、您可以自己构建 MSP430的最新上游 GCC。

    [引用用户="Yannick Daelemans"]

    MSP430-GCC 是否提供与 GCC 完全相同的功能(是否可以使用相同的属性和标志)? 我猜它确实如此、我猜 MSP430-GCC 也可以做更多的事情吗?  

    [/报价]
    正如我之前的回答所描述的、在您使用术语(本机 GCC)的方式中、"gcc"不能用于构建任何 MSP430程序。 您需要为 MSP430配置的 GCC 版本、例如"MSP430-GCC"、或者您自己构建并为 MSP430显式配置的 GCC 版本。
    如果您采用上游 GCC 并自行为 MSP430进行配置、则"MSP430-GCC"具有一些不可用的功能。 这是因为开发周期不同。 一年中的6个月内、无法向上游 GCC 添加新功能、因此不能始终及时将 MSP430-GCC 中的功能放入上游 GCC。
    因此、如果您需要最新功能和错误修复、则应使用 TI 发布的最新 MSP430-GCC。 在某些情况下、错误修复可能会在 MSP430-GCC 版本中提供之前更新到 GCC、但它只会出现在 GCC 的开发版本中、因此可能存在其他稳定性问题、因为它是开发版本。
    使用 MSP430-GCC 时、请参阅 TI 分发的 MSP430-GCC 用户指南、使用上游 GCC 时、请参阅在线 GCC 文档。
    我希望这能解答您的问题、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jozef、  

    感谢您的讲解。  

    我还有另外一个问题。 在 MSP430-GCC 中、使用了 MSP430-elf-gcc 编译器。 此特定编译器与"正常"/"native" gcc 编译器有何不同? 只是后端发生了变化吗? 还是中间端? 是否未输入某些标志和选项?  

    此致

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

    您好、 Yannick、

    是的、与本机 GCC 编译器相比、它只是更改了的后端。

    例如、MSP430-GCC 9.2.0.50版本与本机 GCC 9.2.0具有相同的前端(处理特定语言、例如 C/C++)和中端(对由前端使语言独立的代码执行优化)。 MSP430-GCC 中的后端用于"MSP430-elf"目标、而本机 GCC 的后端将特定于您的主机。

    因此、MSP430-GCC 9.2.0.50将支持任何通用选项/属性/扩展以及 GCC 9.2.0支持的其他功能。

    请注意、几乎没有任何行为会在9.2.0和9.3.0 (最新的上行版本的 GCC 9)之间发生变化、因此、如果需要、您可以安全地参阅在线9.3.0文档以了解通用行为。

    希望这对您有所帮助、

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

    谢谢,非常有帮助:)