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.

[参考译文] CCS/TMS320C6678:ROV 不能与 OpenMP + NDK 配合使用

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

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/600774/ccs-tms320c6678-rov-does-not-work-with-openmp-ndk

器件型号:TMS320C6678
Thread 中讨论的其他器件:SYSBIOS

工具/软件:Code Composer Studio

您好!

我的客户正在使用具有 NDK 堆栈的 OpenMP 运行时。 他们面临的问题是、ROV 在 NC_NetStart API 之后不起作用。

我创建了 CCS 工程以重现问题。 我在这里`ve。 请`m、我使用以下环境:
- CCS v7.1
- ProcSDK 版本03.03.00 (最新版本)
- CGT v8.2 (最新版本)
- C6678 EVM

我的示例`s 基于 TI 的 NDK 示例(NIMU_emacExample_EVMC6678C66BiosExampleProject)、我还在其中启用了 OpenMP 功能。
在 NetworkOpen NDK 处理程序中、我创建了一个任务实例(task_udp_recv 函数)来接收传入的 UDP 数据包、然后放置一个简单的 OpenMP  
它上面的并行区域--所有内核中只有一个 System_printf。 您应该会在 CCS 控制台上看到日志。 我认为程序本身工作正常。

关于问题描述。
在 main()中调用 NC_NetStart 之前,ROV 可以正常工作,但是如果我在该调用之后看到了 ROV,例如在 NetworkOpen NDK 处理程序中,则 ROV 不再工作  
正确显示内核状态。

 在 NC_NetStart 调用之前:

 在 NC_NetStart 调用之后:

请您在您的旁边尝试一下、并向我建议正在发生的情况以及如何解决问题。

此致、
Naoki

下面是一个示例代码:
e2e.ti.com/.../NIMU_5F00_emacExample_5F00_EVMC6678C66BiosExampleProject.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我已通知工厂团队。 他们的反馈将在此处发布。
    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Naoki、

    您是否仅在与 OMP 集成后才遇到 ROV 问题? 这可能与 cppi/qmss 高速缓存一致性的 osal 函数有关、正如您在主题 e2e.ti.com/.../2209176中所关注的那样

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

    您好、 Garrett、

    我尝试移植代码、现在 NIMU_osal.c 看起来是这样的。

    e2e.ti.com/.../nimu_5F00_osal.c

    不幸的是,问题仍然存在。 我认为 ROV 问题与 NDK 无关。 这个问题似乎不会在仅 omp 或仅 NDK 应用中发生。 它坚持 OpenMP* NDK。

    请注意、此实现中使用的是 SYS/BIOS 缓存 API。 它应比 CSL 高速缓存集成更适当地处理高速缓存和预取缓冲器。

    此致、
    Naoki

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

    您好!

    是否有此更新?

    此致、

    Naoki

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

    我可以在这里重现此问题、并会密切关注它。

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

    您好、Garrett、

    您能否更新此问题的进度?

    此致、

    Naoki

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

    Naoki、

    ROV BIOS->Scan 中显示了一个 GateMP 错误,该错误可能会导致该问题。 我正在与团队讨论、以尝试获取更多信息。

    TI.sdo.ipc.GateMP,Gate Resources,N/A,N/A,在 View init 代码中捕获异常:获取 remoteSystemInUseJavaException 时出现问题:java.lang.exception:目标存储器读取失败,地址为0x80000880,长度:32根据应用程序的段映射,此读取位于无效地址。 应用程序可能未初始化或已损坏。

    尝试修改堆栈/堆大小、但没有帮助解决 nc_NetStart()之后时钟模块中的内存损坏问题:

    ,ti.sysbios.KNL.Clock, Module, N/A,在 View init 代码:"c:/ti/ccsv70/xdctools_3_32_01_22_core/packages/xdc/rov/StructureDecoder.xs 中捕获异常,第518行:java.lang.exception: target memory read failed at address: 0x80002588, length: 32根据应用程序的段映射,此读取位于无效地址。 应用程序可能未初始化或已损坏。

    此致、

    Garrett

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

    感谢你的帮助。 好的,您正在进行调试。 如果您对此有进一步的更新、请告诉我。

    感谢您的大力帮助
    Naoki