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.

[参考译文] RTOS/TMS320C6678:OpenMP 无法与 POSIX 线程配合使用

Guru**** 2535750 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/643040/rtos-tms320c6678-openmp-can-not-work-with-posix-threads

器件型号:TMS320C6678

工具/软件:TI-RTOS

这是我的问题(我以前问过):

尊敬的所有人:

当我按照用户指南(downloads.ti.com/.../index.html) 创建 OpenMP 项目时,我发现当我选择“启用对 OpenMP 3.0的支持”时,它将自动选择“假定使用多线程”(build->Advanced options -> Advanced Optimizations)。 问题是 ,选择“假定多线程”时,我无法使用 POSIX 线程。 该工程可以正确编译、但在运行时它将会在_c_int00 ()中裸片。 您能告诉我问题的解决方案吗?

谢谢、致以诚挚的问候。

/*********

@专家  的回答:

您好 QQ、


OpenMP 运行时不是在 POSIX 线程之上构建的。  事实上,OpenMP 运行时的默认配置不会启动 BIOS 运行。  您必须修改启动代码以启动 BIOS、然后在 BIOS 任务或 pthread 中的各自内核上运行主线程和工作线程。  例如、请参阅以下文件:

args_main_rtsc.c

此外、每个 DSP 内核都运行自己的 BIOS 版本。  它不是所有内核上的 SMP。  OpenMP 运行时管理不同内核间线程的同步。  因此、不要指望 pthread API 在不同内核上运行的线程之间工作。

使用--openmp 开关时,默认情况下,编译器包括 RTS 库的多线程版本。

当我通过 POSIX = xdc.useModule('ti.sysbios.posix.Settings'在配置文件中启用 POSIX 支持时)、我看到了您报告的相同崩溃。  其中一个 RTS 文件中存在错误。 我在此处附上了固定版本:

mutex.c

您需要修改链接器命令文件(或使用此新文件重建 RTS 库)、以将此文件中的.far 段放置在 L2SRAM 中。

   .localfar:
   {
       "* rts*。lib"(.far)
       "* rts*。lib"(.fardata)
       "*_mutex.*"(.far)
       "*_mutex.*"(.fardata)
       "ti.drv.qmss*.ae66"(.far:local)
       "OMP_CONFIG_PE66.oe66"(.far)
       "OMP_CONFIG_PE66.oe66"(.fardata)

   }> L2SRAM

此外,在调用 args_main()之前 OpenMP 运行时调用 getenv 时出现问题(它将在 pthread 之外发生)。  您可以通过禁用 getenv()例程来解决该问题:

getenv.c

我将针对这些问题提交错误报告。  我希望这些信息能够帮助您的项目正常运行。

此致、Eric

/*********

我只想知道错误是否已修复,如果已修复,在哪个版本中。

谢谢! 此致!

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

    感谢您关注我们的器件。 我需要一些时间来收集实验中的数据。 请允许我在这里住几天,我会再回来的

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

    这仍在 TODO 列表中、将在将来的版本中修复。 发布后、我将更新该主题。

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

    期待您的回复,谢谢!

    此致
    ZQ
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    我的项目非常紧迫,能否尽快提供解决方案,因为自从我上一个问题以来已经很久了,谢谢!

    此致
    ZQ