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.

[参考译文] CCSTUDIO:关于 tiarmclang v4.0 中 C++原子操作支持的阐述

Guru**** 2445440 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1547343/ccstudio-clarification-on-c-atomic-operations-support-in-tiarmclang-v4-0

部件号:CCSTUDIO


工具/软件:

您好 TI 专家、

根据 TI Arm Clang 编译器文档 (2.5. Arm C++的特征和实现—TI Arm Clang 编译器工具用户指南)中指出、C++原子操作“未实现或完全受支持“。

您能否澄清一下、这在实际意义上意味着什么?

根据我的经验、我能够声明 std::atomic 变量并使用 std:memory_order_seq_cst 执行基本操作、例如存储、加载和 fetch_add。 但是、我想更清楚地理解这些限制:

  • 是否存在不受支持或可能意外行为的特定原子操作或类型?
  • 是否已实现并正确遵守所有标准内存顺序(例如 std::memory_order_seq_cst、relaxed、acq_rel)?
  • 在多线程场景中使用原子操作与此编译器时、是否存在已知问题或注意事项?

如果您有任何其他技术见解或文档参考、我们将不胜感激。

此致
Luca.

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

    您好:  

    我提请编译器专家注意这一主题。 他们将能够提供进一步的帮助。

    谢谢

    Ki

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

    支持的帧速率 STD::原子 因为它会为它生成相关的汇编指令、即 LDREXD. STREXD. 等  但这只是解决方案的一部分。  运行时执行程序也起着作用。  该 解决方案的一部分由器件的软件开发套件 (SDK) 提供。 因此、您问题的完整答案必须来自为您的器件提供 SDK 支持的团队。

    您使用什么设备?

    谢谢。此致、

    -乔治

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

    您好、George、

    感谢您的答复。 我目前正在使用 AM64x-EVM 和 AM64x-SK 板、其中使用了 MCU 和 SDK 版本 11.01.00.17。

    此致、
    Luca.

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

    尊敬的 Luca:

    我希望您知道、我们所有的驱动程序和示例都是仅用 C 语言编写和测试的。 我们只有使用 C++编写的 hello_world_cpp 工程以及使用 C++编写的基本 libs 构建。

    请参阅  hello_world_cpp 

    C++功能未经 SDK 测试、E2E 论坛不支持。

    此致、

    Tushar