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.

[参考译文] 编译器/TMS320C6678:集成 NDK 和 SRIO

Guru**** 2563960 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/622549/compiler-tms320c6678-integrated-ndk-and-srio

器件型号:TMS320C6678

工具/软件:TI C/C++编译器

你(们)好

我的工具:

操作系统:Win7

CCS:7.

我开始集成 SRIO 和 NDK、现在遇到了一个奇怪的问题!!

我将我的行动描述如下:

1) 1)我制作了一个 NDK 项目、它工作正常(基础项目是"客户端"示例、我可以 ping DSP)。 该项目的属性如下:

MCSDK:2.1.2.6

PDK:1.1.2.6

NDK:2.21.2.43

SYS/BIOS:6.3.6.50  

XDCTOOLS:3.23.4.60

CGT:8.1.2

2) 2)我创建了一个 SRIO DIO 项目、并且可以成功地与 FPGA 进行通信。  该项目的属性如下:

EDMA3:2.11.5

IPC:1.24.3.32

MCSDK:2.1.2.6

PDK:1.1.2.6

NDK:2.21.2.43

SYS/BIOS:6.3.6.50  

XDCTOOLS:3.23.4.60

CGT:8.1.2

3) 3)我开始将 NDK 项目添加 到 SRIO 项目。

3.1)我创建了一个新的"*。cfg"文件、我可以成功编译工程。

3.2)我添加了 NDK 配置(我使用 NDK 项目中的所有头文件复制和粘贴堆栈测试函数)、 我可以成功构建项目。

3.3)我将 堆栈测试函数作为任务调用、但当我构建项目时、会发生以下错误:

控制台的打印方式如下:

e2e.ti.com/.../Console_5F00_Err_5F00_NdkLib_5F00_Unresolved.txt

我尝试了很多、但我无法解决问题。

请指导我该怎么做?

此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已将其转发给软件团队。 他们的反馈应发布在此处。

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

    你(们)好

    请回答我、我在等。

    此致

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

    您是否检查了具有 OSAL 函数定义的文件是否已包含在您的项目中?
    我们已迁移到处理器 SDK、您是否有任何特殊原因需要使用 MCSDK 和 PDK 1.x?

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

    Garrett

    如果您查看错误、"NDK"库将生成错误!! 也许我应该在"*。cfg"文件中添加一个特定的模块?!!

    对于 LAN、我的基本项目是位于 MCDSK 目录中的 TI 客户端示例。

    对于 SRIO、我的基本项目是位于 PDK 目录中的 TI "tput_Benchmarking"。

    此致

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

    Dariush


    'NDK'库产生错误的原因是未定义引用的 OSAL 函数。 OSAL 函数需要由应用程序实现。 您应该能够在 mcsdk_2_01_02_06\examples\NDK\client\下的 platform_osal.c 中找到这些函数定义。

    此致、
    Garrett

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

    尊敬的 Garrett

    我可以构建项目、我修改了项目如下、这样 SRIO 和 NDK 并行工作:

    1) 1)我创建了一个新的"*。cfg"文件。

    2)我为以太网和 SRIO 创建了两个存储器区域。

    3)我更改了队列编号,

    4) 4)我更改了 SRIO 的事件 ID 和中断编号。

    5) 5)在 两个任务中创建 SRIO 和 NDK。

    控制台打印如下所示:

    e2e.ti.com/.../Console_5F00_Run_5F00_Prints.txt 

    我花了很多时间尝试、但不幸的是、当我运行程序时、SRIO 和 NDK 不能同时工作。

    问题1:  

    我是否可以通过电子邮件向您发送我的项目、您是否可以看到代码?

    请帮帮我。

    此致

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

    >>警告:队列处理程序验证失败
    出现警告时、您是否看到 SRIO 工作正常、但 NDK 无法 ping 通? 您是否了解过此警告?

    >>调试:DrvConfig Rx 主机描述符0x@10856d00缓冲器:0x@90000cc0返回队列0x2e0
    SRIO directio 实际上不需要 CPPI/QMSS、我建议您尝试以下主题中附加的示例: e2e.ti.com/.../259319

    您是否可以在该线程中上传 QMSS/CPPI 的代码片段、以便我们了解您如何配置和初始化它们?

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

    你(们)好

    是的、SRIO 工作正常、但 ping 的 NDK 失败。 我检查了 DSP 存储器中 FPGA 通过 SRIO DIO 写入该地址的特殊地址、并看到数据已正确接收。

    调用我的函数(在 main()中)的序列如下:

    1) Qmss_Cppi_PA_Init();

    2) SRIO (ENABLE_SRIO();、SrioDevice_init();、SRIO_init();和 clearSrioStatusErrors();)

    3) GPIO_init ();

    4) setupSRIOAppConfig ((Qms_MemRegion)Qmss_MemRegion_Memory_MEMORY_REGION1);。

    在第一阶段、我声明并初始化 Qmss、Cppi 和 PA。

    在第二阶段,我只修改可以 与 FPGA 通信的“SrioDevice_init()”函数。

    在第三阶段、我初始化 GPIO、我认为它对问题没有影响。

    在第四阶段,我调用了" setupSRIOAppConfig()"。 我从 以太网存储器区域"Qms_MemRegion_memory_REGION1"中使用单独的存储器区域"Qmss_MemRegion_MEMORY_REGION0"调用此函数。

    我应该提到的是、我在两个任务中调用了 SRIO 和 DIO。

    此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    只有一点,警告“>>警告:队列处理程序验证失败”
    当我复位 DSP 时、DSP 被删除、不再出现。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请回答我、我在等你。

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

    为什么没有人回答我?!!!! 请回答我的问题。 我有麻烦。

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

    >>我应该提到我在两个任务中调用了 SRIO 和 DIO。
    您可能意味着 SRIO 和 NDK 包含在两个任务中。 这些任务是否具有相同的优先级? 您能否尝试将 SRIO 设置为更高的优先级以查看其行为是否仍然相同- SRIO 工作、但 ping 的 NDK 失败。 这将有助于确定在用例中是否与 Cppi_initDescriptor 有任何冲突。

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

    尊敬的 Garrett

    我有两项静态任务、如下所示:

    您会看到 "DioTestTast"的优先级高于 " StackTest"、 并且其行为仍然相同- SRIO 工作、但 ping 的 NDK 失败。  我在" StackTest"中声明了 NDK 初始化并使套接字(bind……)

    在  "DioTestTask"中为 SRIO 设置。

    调用我的函数(在 main()中)的序列如下:

    1) Qmss_Cppi_PA_Init();

    2) SRIO (ENABLE_SRIO();、SrioDevice_init();、SRIO_init();和 clearSrioStatusErrors();)

    3) GPIO_init ();

    4) setupSRIOAppConfig ((Qms_MemRegion)Qmss_MemRegion_Memory_MEMORY_REGION1);。

    我应该怎么做? 您是否希望我解释 并附加"Qms_Cppi_PA_Init()"函数?

    此致

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

    您可以通过比较 NDK/SRIO 集成项目和注释掉 SRIO 的项目来尝试跟踪 NDK/CPSW 功能失败的位置。 此外、查看 Wireshark 跟踪以查看 NDK 是否在 TX 或 Rx 路径中发生故障。 通过将 NIMU_eth.c 文件添加到项目中、可能有助于调试。

    在该线程的最后一次更新中- e2e.ti.com/.../291465、它看起来使用相同的 QMSS 存储器区域有助于使 SRIO+NDK 正常工作。

    此致、
    Garrett