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.

[参考译文] AM3354:采用 CPPI DMA 的以太网 RX/TX 操作

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/668709/am3354-ethernet-rx-tx-operation-with-cppi-dma

器件型号:AM3354

大家好、

我在 TRM 文档(spruh73p)中阅读了以太网操作的说明。

我知道 AM335x EMAC 模块使用 CPPI DMA 和 CPPI 缓冲描述符来发送以太网帧。

当 TX7_HDP 写入 Tx 描述符缓冲器的地址时、数据包被传送。

当 RX 描述符地址被写入 RX0_HDP 时、数据包被接收。

描述符存储实际数据包的位置、该位置通常位于​​CPPI RAM 区域中。

当我向 CPPI DMA 接口写入一个值时、EMAC 模块作为一个 IP 运行并将地址写入 TX/RX_CP 寄存器。

我认为直接将 CPPI DMA 描述符用于 TX/RX 以太网数据包似乎不需要额外的 ISR。

EMAC 模块是否需要生成 TX/RX_PULSE 中断? AM335x 中是否存在用于数据包 RX/TX 的 ISR?

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

    您使用的是什么软件?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    至 Biser、

    Windows 10 64位、CCS v7.3、PDK-RTOS-AM335x-4.2.0.9、NDK-2.26.0、XDS100-v3 JTAG

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

    当我在 CCS 中启动时、我创建了一个 ti/RTOS 最小项目。

    我在执行 BIOS_Start 之前添加了我的代码()

    未添加任何线程创建代码。

    以太网帧由寄存器读取函数发送/接收。

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

    3端口开关以太网子系统生成四个中断事件、包括 TX/RX 脉冲中断。 适用于 AM335x 的 EMAC 驱动程序已在 PDK C:\ti\pdk_am335x_1_0_9\packages/ti\drv\emac 中提供、您是否打算优化驱动程序或尝试了解设计?

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

    给 Garrett。

    感谢您的回复。

    我的最终目标是创建一个最小的代码单元、用于在低级别发送和接收数据包。

    我已经在该位置看到了一些文件。

    在 TRM 文档13.3.2.4 CPDMA 中、在 RX 和 TX 接口说明中、用户使用 CPPI 接口(EMAC 端口0)作为 DMA 运行。

    数据包处理在 ARM 的 ISR 中不起作用、而在 EMAC 的 DMA 控制器中起作用。

    DMA 控制器运行后、RX/TX_PULSE 中断被传递到 ARM 内核。

    总之、RX/TX_PULSE 是否不会影响数据包传输/接收过程?

    如果用户在 CPPI RAM 中写入所有数据包信息并激活 DMA 控制器、则 ARM 是否需要 TX/RX_Pulse 处理?

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

    数据包在 CPDMA 子模块中进行处理是正确的。
    TX/RX_Pulse 中断可帮助主机正确接收和发送数据包、而不会丢失数据包。
    如果用户在 CPPI RAM 中写入所有数据包信息并激活 DMA 控制器、即使没有 TX_Pulse 处理、数据包也将被传输、但是如果用户在 TX_Pulse 发生之前以突发方式持续写入、数据包可能会被丢弃。 同样、如果没有 RX_Pulse、主机将必须轮询以检查是否有新的数据包。
    第14.4节"包含 TX/RX 中断的软件操作"中介绍了建议的数据包传输和接收操作。

    此致、
    Garrett