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.

[参考译文] TDA4VE-Q1:ETH 缓冲器忙

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1523957/tda4ve-q1-eth-buffer-busy

器件型号:TDA4VE-Q1

工具/软件:

您好:

我尝试从上层发起多个以太网帧的传输。

当上层请求缓冲区时、  Eth_Queue_删除 调用()、它设置 Eth_Cfg -> dmaCfgPtr -> egressFifoCfgPtr -> quePtr-> 头/尾  指向的指针  null 。  

在下一个缓冲区请求中执行触发、因为这些指针是这样的 已为 NULL 、帧将不会添加到队列中、而 Eth 驱动程序将报告 Buffer_Busy 上层。

在中初始化这些指针  Eth_Queue_添加 ()、由调用  Eth_Tx Confirmation()。

最初、我在 Eth 驱动程序中只配置了一个 FIFO。 我已经尝试添加几个、但没有结果。

您能给我一些关于我如何处理这个问题的提示吗?

此致、

Octavian

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

    您好、

    Unknown 说:
    当上层请求缓冲区时、  Eth_Queue_删除 调用()、它设置 Eth_Cfg -> dmaCfgPtr -> egressFifoCfgPtr -> quePtr-> 头/尾  指向的指针  null 。  [/报价]

    配置了多少个缓冲器?  

    如果您使用分配的所有缓冲区空间、在传输完成之前、将没有用于提交传输请求的缓冲区。

    [报价 userid="609482" url="~/support/processors-group/processors/f/processors-forum/1523957/tda4ve-q1-eth-buffer-busy

    您能给我一些关于我如何处理这个问题的提示吗?

    [/报价]

    您还需要包含用于保存缓冲区的描述。

    根据最新的 TI SDK、我们有16个描述符和24576U 缓冲区大小(每个描述符具有1536缓冲区大小、即1536*16)。

    此致、
    Sudheer

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

    尊敬的 Kumar:

    感谢您的快速答复。

    我不确定您讨论的缓冲区和描述符是什么。

    我已经看到、根据这些可配置的 Fifos、Eth 驱动程序将生成一些缓冲区和描述符。

    你是说我应该配置16 Fifos 吗?  

    以下是为每个 fifo 生成的变量:

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

    您好、

    [引述 userid="609482" url="~/support/processors-group/processors/f/processors-forum/1523957/tda4ve-q1-eth-buffer-busy/5858954 #5858954"]

    以下是为每个 fifo 生成的变量:

    [/报价]

    上述配置正确。 它有128个描述符、即表示128个缓冲区和196608个缓冲区大小、每个描述符为1536字节。

    即使在更新到128个缓冲区后、您是否也会遇到相同的问题?

    您使用的是哪个 SDK 版本?
    您是否已验证应用程序在传输完成前请求了多少个缓冲区? 是否已请求全部128个?

    此致、
    Sudheer



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

    如何查看:对于我配置的每个 FIFO、生成了2个由128个元素组成的数组:描述符_0[128]和描述符_1[128]。

    我需要2个 Fifos 或更多吗? 或者1就足够了,问题与我配置的 Fifos 数量无关?

    不同应用  pdk_09_02_00_30

    似乎所有128个请求的 速度都比传输速度快。


    缓冲区已满时会发生多个缓冲区请求、这就是我使缓冲区繁忙的原因。

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

    您好、

    [报价 userid="609482" url="~/support/processors-group/processors/f/processors-forum/1523957/tda4ve-q1-eth-buffer-busy/5859070 #5859070"]

    如何查看:对于我配置的每个 FIFO、生成了2个由128个元素组成的数组:描述符_0[128]和描述符_1[128]。

    我需要2个 Fifos 或更多吗? 或者1就足够了,问题与我配置的 Fifos 数量无关?

    不同应用  pdk_09_02_00_30

    [/报价]

    在 TI Eth_Ctrl_ Ingress_Descriptor_配置程序文件中、我只能看到一组存储器、即"SDK.0_SDK-0"。
    在 config.h 文件中为"FifoDescAddress"映射 Eth_Get 了相同的内容。 请参阅以下捕获内容、以便更好地理解。

    似乎所有128个请求都 比传输速度更快。

    是的、这只是导致缓冲器繁忙性的可能原因。  

    此致、
    Sudheer