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/PROCESSOR-SDK-AM57X:OpenMP 示例失败

Guru**** 2563960 points
Other Parts Discussed in Thread: TMDSEVM572X, SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/609306/rtos-processor-sdk-am57x-openmp-example-fails

器件型号:PROCESSOR-SDK-AM57X
主题中讨论的其他器件:TMDSEVM572XSYSBIOS

工具/软件:TI-RTOS

在 TMDSEVM572X 上运行 OpenMP hello 示例失败。

http://downloads.ti.com/mctools/esd/docs/openmp-dsp/building_openmp_app.html

使用的主要组件版本为:

 CCS7.1.0.00016

 - PROCESSOR-SDK-RTOS-AM57X 04_00_00_04

 当它发生故障时、两个内核都在_ti_dsp_malloc()或_minit()中的点停止。

如何修复此故障?

此致、

Daisuke

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS 团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我正在尝试将".TI.TLS"部分分配给 DDR3、以参考以下帖子。

    http://e2e.ti.com/support/development_tools/compiler/f/343/p/495133/1791277#1791277

    我尝试了以下两种不同的方法。

     使用链接器命令文件:

     部分
     {
        .TI.TLS:> DDR3
     }

     2.使用 RTSC 配置文件:

     program.sectMap[".TI.tls"]       = new Program.SectionSpec ();

     program.sectMap[".TI.tls"].loadSegment     ="DDR3";

    但是在构建完成后、映射文件中不存在".TI.TLS"段。

    如何分配".TI.TLS"部分?

    请尽快给我一个答案。 如果您能及时回复、我们将不胜感激。

    此致、

    Daisuke

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

    如果您已经有 CCS 工程、是否可以将其附加到此处以便我重现? 您使用的 CCS、SYSBIOS、XDC、OpenMP 运行时库的版本是什么?

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

    您好、Eric - San、

    感谢你的答复。

    我的 CCS 项目附在此处: e2e.ti.com/.../openmp_5F00_app.zip

    使用的组件版本如下:

     CCS7.1.0.00016

     - PROCESSOR-SDK-RTOS-AM57X 04_00_00_04

     http://software-dl.ti.com/processor-sdk-rtos/esd/AM57X/latest/index_FDS.html

    此处未列出的所有其他组件均包含在处理器 SDK 中。

    此致、

    Daisuke

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

    您好!

    感谢您提供 CCS 项目。 它仅需要 SYSBIOS、IPC、PDK、XDC、OpenMP、 但您的项目有许多其他 RTSC 软件包、我删除了这些软件包。

    此外、出于某种原因、OpenMP 运行时库(COM_TI_RTSC_OpenMP*安装_DIR)指向我的 K2G OpenMP 安装、并且我无法更新它。 作为一种权变措施、我将 ti_runtime_openmp_am57x_debug_E66.ae66复制到了\openmp_ds_dsp_k2g_2_06_00_00\packages/ti\runtime\openmp\lib、以便可以进行链接。

    然后、我可以构建.out 并将其加载到 AM572x 的两个 C66x 内核。 运行它我得到:

    [C66xx_DSP1]来自线程的"Hello World"= 0

    线程数= 2

    [C66xx_DSP2] Hello World from thread = 1.

    已附加 CCS 工程和构建日志。 希望它也能在您的身边工作。

    此致、Eric

    e2e.ti.com/.../openmp_5F00_helloworld.7z

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

    您好、Eric - San、

    感谢你的答复。

    附加的项目中的输出文件可能会失败。 这似乎不是一个项目问题。

    首次上电后、它成功。 随后、即使在对 DSP 内核(组)执行以下任何步骤后、它也会多次成功。

     -"CPU Reset"->"Reload Program"->"Resume"

     -"Disconnect Target"->"Connect Target"->"CPU Reset"->"Reload Program"->"Resume"

    但在重新连接 A15内核后、程序加载失败。 在断电后打开电源后、运行程序失败。 当运行失败时、两个内核都在_ti_dsp_malloc()中的点停止。

    此问题是否在您的环境中重现?

    我假设 GEL 文件对 A15内核的初始化与此问题相关。 例如、器件的热量会影响 DDR3调平的结果。

    此致、

    Daisuke

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

    您好!

    我测试该程序的方法是:

    1) 1) 在 CCS 中对 A15内核执行系统复位

    2) 2)在创建 GP EVM 或 IDK EVM 目标时连接 A15并运行 GEL

    3) 3)运行 GEL 以启用 DSP1/2时钟

    4) 4)将.out 加载到两个 DSP 内核并运行

    5) 5)断开两个 DSP 内核

    我在几次尝试中没有任何失败。 您也可以关闭插卡的电源再打开。

    此致、Eric

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

    您好、Eric - San、

    感谢你的答复。

    我的详细确认程序如下:

     1) 1)将仿真器连接到 TMDSEVM572X 的 JTAG 接头

     2) 2)将不带交流电源的交流适配器连接到 TMDSEVM572X 的12V 输入

     3) 3)将交流适配器连接到交流电源

     4) 4)使用 USB 电缆将仿真器连接到 PC

     5) 5)启动 CCS

     6) 6)使用"启动所选配置"启动调试

     7) 7)按电源开关以打开 TMDSEVM572X

     8) CortexA15_0:"connect Target"、然后 GEL 中的"OnTargetConnect()"运行、并通过"AM572x_multicore_EnableAllCores()"启用所有从内核

     9) 9)组1 (C66xx_DSP1和 C66xx_DSP2):"连接目标"

     10)组1 (C66xx_DSP1和 C66xx_DSP2):"CPU Reset"

     11)第1组(C66xx_DSP1和 C66xx_DSP2):"加载程序..."

     12)第1组(C66xx_DSP1和 C66xx_DSP2):"恢复"

     13)"终止"调试

     14) 14)终止 CCS

     15) 15)从 PC 上拔下 USB 电缆

     16) 16)按住电源开关以关闭 TMDSEVM572X

     17) 17)断开交流适配器与交流电源的连接

    在步骤17之后、如果我在 TMDSEVM572X 冷却之前从步骤3重新开始、则在步骤12中运行程序可能会失败。

    您的 GP EVM 中处理器模块的修订版是什么?

    处理器模块的最新版本是 A3A、但我的处理器模块的版本是 A3。

    此致、

    Daisuke

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

    我的板是 AM572x GP EVM、A3。 我尝试了你的步骤、对我来说很好。 如果您从步骤17断开交流适配器连接、这与您从新电源循环(第一次运行)运行交流适配器相同。 在第一次运行时它起作用、然后重启电源、在第二次运行时失败、这毫无意义。

    如果在第二次运行中失败、如何使程序再次运行? 为什么第三次运行有效? 您的目的是撕下所有东西? 比如关闭 CCS、拔下 USB 电缆、断开交流电源? 通常情况下、我们保持 CCS 打开、保持 JTAG 电缆在那里。 按住电源开关可关闭、然后再次打开并快速运行 GEL 以避免 PMIC 将其关闭;或者我们不触摸电源按钮、而是使用 CCS 中的系统复位来复位 SOC、然后再次运行 GEL 以进行重复测试。

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

    您好、Eric - San、

    感谢你的答复。

    如果在步骤17之后电路板经过足够的时间后再次运行、则这些步骤的重复会成功、但如果在步骤17之后电路板经过足够的时间之前再次运行、则会多次失败。 如果电路板在冷却之前运行、它似乎会失败。

    此致、

    Daisuke

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

    您好、Eric - San、

    其他信息:

    在第一次运行中、即使在步骤6或步骤8之后经过了足够的时间、也会成功。 但是、如果在步骤12后断开所有内核、然后从步骤8重新启动、加载程序将在步骤11中失败。 GEL 文件再次运行后、似乎会发生故障。

    此致、

    Daisuke

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

    您好、Eric - San、

    其他信息2:

    如果在第一次运行中删除了步骤11和步骤12 (没有正在运行的程序)、则在第二次运行的步骤12中运行 OpenMP*应用程序将失败。

    即使在步骤12中运行失败、C66XX_DSP1中正在运行的其他程序("\pdk_am57xx_1_0_7\packages\MyExampleProjects\GPIO_LedBlink_evmAM572x_c66xTestProject")也会成功。

    此致、

    Daisuke

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

    我无法重现您的问题、我不理解为什么您需要"关闭 CCS、拔下 USB 电缆、断开交流电源"进行此类测试。

    由于完全断电、每个测试运行都是独立的。 您需要确保每次成功运行 GEL。

    如果您发现电路板看起来过热、冷却有助于下一次运行、可能会出现一些硬件问题、尽管我不理解:OpenMP helloworld 是一个非常简单的程序、只需打印一些内容、它不是 SOC 或 DDR 扩展、它如何使电路板过热?

    您可以验证另一个 EVM 上的确切步骤、如果没有此类问题、则可以要求经销商更换损坏的 EVM、或者在保修期内维修损坏的 EVM。

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

    您好、Eric - San、

    感谢你的答复。

    我需要"关闭 CCS、拔下 USB 电缆、断开 AC"以确保每次测试都是独立的。

    我在 GEL 运行后检查了日志。 第1次运行(成功)和第2次运行(失败)日志的结果相同。

    此问题发生在我们客户自己的 EVM 上、并在我们自己的 EVM 上重现。

    使用我刚刚获得的最新 EVM (Revison A3a)、我再次进行了验证。 本期转载于本期。

    三个不同的主板上已出现此问题。

    此致、

    Daisuke

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

    如果问题已经在多个电路板上发生、如果您重复第3次和第4次测试、会怎么样:
    第一步:好的
    第二:吴议员
    第三:?
    第四:?

    如何返回到原始状态(例如、第一:确定)? 您是否需要冷却电路板一段时间才能使其再次工作?

    过去、我们使用不同的驱动程序应用示例测试了 AM572x GP EVM (我们当然不会关闭 CCS、移除 USB 电缆、断开交流电源)、我们没有发现任何问题。

    我记得您提到的 LED 测试在您的序列中工作正常。 那么、您要将其作为硬件问题还是软件问题(OpenMP)进行调试吗? 如果对于硬件、我们有许多 EVM 用户、并且没有此类报告、首先运行正常、然后是第二个运行故障问题。 如果对于软件、这是一个非常简单的 printf、它展示了如何执行 OpenMP、为什么需要多次运行? 每一次跑步都是完全不重要的、但这种恐惧是没有意义的。 如果您等待一段时间、然后运行第二个测试、您是否通过了测试? 您是否有任何显示电路板过热的测量?

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

    您好、Eric - San、

    感谢你的答复。

    即使重复第3次和第4次试验、也需要离开试验板一段时间、使其再次工作以恢复到原始状态(例如、第一:确定)。

    没有测量显示电路板过热。 我通过触摸散热器来检查它是热的还是冷的。

    我们的客户希望根据基本示例中的 hallo 项目使用 OpenMP 来评估各种算法。 如果只有此项目存在此问题,客户 可以切换到其他 OpenMP 项目。

    此致、

    Daisuke