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.

[参考译文] Starterware/TMS320C6678:串行快速 IO 输入基准测试示例停止

Guru**** 2555630 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/610730/starterware-tms320c6678-serial-rapid-io-tput-benchmark-example-halts

器件型号:TMS320C6678

工具/软件:Starterware

我想使用连接两个 EVMC6678LE 的分线卡(BOC)来测试和评估串行快速 IO 通信。 我 已经复制了 SRIO_TputBenchmarking_evmc6678_C66TestProject 并根据自述文件进行了更改、以 分别生成一个可 在 Emulator1/Core1和 Emulator0/Core0上运行的 Producer 和 Consumer 版本。

代码在缓存块或 IPC_START()中的某个位置停止。 具有和不具有 代码优化。

如果.cfg 文件中缺少任何内容或在.c 和.h 文件中进行的任何其他更改(不是指令中的更改)、您能提供指导吗?

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

    我已通知软件团队。 他们的反馈将在此处发布。

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

    SRIO_TputBenchmarking_evmc6678_C66TestProject 应按照 Readme.txt 中的说明工作。 您是否能够使用单板运行环回示例? 您使用的是哪个 PDK 版本? 最新版本如下: software-dl.ti.com/.../index_FDS.html

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

    处理器 SDK:processor_sdk_rtos_c667x_2_00_01_07

    PDK:pdk_c667x_2_0_0

    同一测试项目在单 个 EVM 板上运行正常 、并列出了吞吐量统计信息。 我怀疑  分接卡(BOC)上的 DIP 开关设置不正确、但事实并非如此。 我通过相同的 BOC 运行了 TransportSrioMultiBoardConsumerC6678C66ExampleProject 和 TransportSrioMultiBoardProducterC6678C66ExampleProject、运行正常。

    我已经注意到、在我更改 了 struct 中的值 bedaling.h 后、testControl.SRIO_isBoardToBoard 变量未更新为 true 因此、我必须在在检入 main()的 IPC_start()的 if-condition 之前再次显式声明它。 。。。 进行此更改后,处理器将不会执行 IPC_START()。

    if (!testControl.SRIO_isBoardToBoard)
    {
    /*初始化共享存储器中的堆。 使用 IPC 模块执行该操作*/
    IPC_START ();
    } 

    cfg 文件中是否缺少多板方案的 IPC 设置?  

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

    雪利、


    您是否为生产者和使用者更新了 benchmarking.h 中的 define CORE_TO_INDIATE_SRIO?

     *对于板对板:
     *  RX 端 EVM (消费类):
     *    这应该是 consumer_core
     要    加载到内核0上的*.out 文件。
     *  TX 端 EVM (制片人):
     *    这应该是 Producer_core
     要    加载到内核1上的*.out 文件。
     *
    #define CORE_TO_INDIVE_SRIO           生产者核心

    core_TO_initialize_SRIO 在 testControl 结构中使用。

    此致、Garrett

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

    是的、我在基准测试.h 中进行了上述更改、每个更改针对消费代码(Emulator0/core 0)和生产代码(Emulator1/core 1)。 为清楚起见、我的工作区中有两个单独的项目。

    我为消费类代码头添加了以下内容

    #define 是板到板 true
    #define Is_over_external_SRIO_switchfalse
    #define USE_LOOP_MODE false
    #define CORE_TO_INDIO_SRIO consumer_core // 0x00
    
    

    生成器内核1的标头和.c 代码

    #define 是板到板 true
    #define Is_over_external_SRIO_switchfalse
    #define USE_LOOP_MODE false
    #define CORE_TO_INDIO_SRIO Producer_core 
    testControl.SRIO_initCorenum =1;
    if (coreNum == testControl.SRIO_initCorenum)
    {
    //调试消息:* 

    但是、当我在 IF 条件下放置断点时、testControl.SRIO_isBoardToBoard 尚未变为 true、因此满足了!false 的条件、程序进入 IPC_start()。 它真的应该这样做吗? 我使用的板是 CI2EVMBOC。 根据 C:/pdk_directory\packages/ti\drv\SRIO\test\tput 基准测试\docs 中的文档、EVM 1的 Core 0也应加载 GEL 文件。 我在调试模式中右键单击 Emulator1/core0来加载 GEL 文件。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我发现了一个错误。 当我将工程复制到工作区时、我没有编辑/删除指向编译设置中所有.c 和.h 文件的原始 PDK 目录的现有 Include Options。
    dalking.c 仍在查找位置"${pdk_install_path/ti/drv/SRIO/test/tput_kaling/src"、而不是 dalking.h 的本地副本 现在已经全部整理好了。
    感谢你能抽出时间。