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.

[参考译文] AM6422:SDK8.6 CPSW 中断 FreeRTOS

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1611789/am6422-sdk8-6-cpsw-interrupt-freertos

器件型号: AM6422

您好:

  CPSW 以太网在接收期间通过中断模式释放信标、接收任务从存储器读取以太网数据。 该中断的触发方法是什么? 它的具体优先事项是什么? 目前、发生中断时、中断启用似乎被禁用、只有在任务读取完所有当前以太网数据后、才会重新启用中断启用。 我们想知道这个中断的具体触发条件、如果可能、是否可以相应地配置这些条件?  

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

    您好、

    中断由 DMA 传输的完成事件触发。 DMA 事件的当前中断优先级为 1。  

    目前、在发生中断时、中断启用似乎被禁用、只有在任务读取完所有当前以太网数据后、才会重新启用中断。 我们想知道此中断的具体触发条件、如果可能、是否可以相应地配置这些条件?

    我想您在此上下文中指的是“Lwip2enet_rxPktHandler"。“。 这是在运行时启用中断配置的检查、但它始终保持在相同的模式。 在后续版本的 SDK 中、已清理并添加了具有中断或轮询数据包发送和接收的其他选项。

    如果您还有其他疑问、请告诉我。 如果我对上述假设有误、请提供有关您所指部分的更多详细信息。

    此致、
    Teja。

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

    您好:

       感谢您的答复。 关于我们使用的 SDK 8.6、该模式可以配置为中断驱动还是轮询? 对于中断模式、相应的中断触发条件是什么? 例如、是否在接收到的每个数据包的阈值之后或在特定的数据包阈值之后发生中断? 是否可以配置该阈值?是否可以配置 DMA 事件的中断优先级?

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

    您好、

    对于 8.6 中的 LwIP 示例、我们仅支持轮询。 对于 layer2 示例、每个数据包都会触发中断、但一旦数据包处理任务开始、它将处理所有数据包、直到硬件 FIFO 完全耗尽。 请让我与我们的开发团队联系、了解 AM64x 器件上的中断节奏功能支持。  

    是否可以配置 DMA 事件的中断优先级?

    是的、这可以在 技术上进行配置。 但目前它不受开箱即用支持。 要更改事件的中断优先级、您需要对 DMA 模块 (Enet Udma_registerEvent) 中的 Enet 驱动程序进行细微更改、以将其设置为所选的特定优先级。 但这会将所有以太网 DMA 中断的优先级设置为相同的优先级。 如果需要进一步控制、则需要操作 EnetUdma_registerEvent 的 API 参数以适合您的用例。

    此致、
    Teja。

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

    您好、

    我已经查看了 SDK 代码、但 AM64x 器件中不提供中断节奏。

    此致、
    Teja。

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

    您好、

       我还有一个问题。 在当前的 SDK 8.6 版本中、轮询的周期为 1000 微秒、这意味着接收任务每 1 毫秒运行一次。 在每次运行期间、它会读取当前数据。 如果使用情形需要及时响应、这是否会产生影响?或者是否可以调整这段时间? 如果可调、如何进行调整?

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

    您好、

    1 毫秒计时器的使用源于 FreeRTOS 计时器的限制。 用于轮询的 FreeRTOS 的时钟步长不能低于 1ms。 如果应用需要高度时间敏感的中断响应、则可以启用基于中断的配置、但这需要在吞吐量方面进行相当大的权衡。  

    请告诉我们这对您来说是否合适。  

    此致、
    Teja。

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

    您好、

       如果启用了中断,能否将其设置为混合模式 — 在高流量条件下使用计时器来减少 CPU 开销、并在低流量条件下使用中断来更大程度地减小延迟?

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

    您好、

    这与 Linux 使用的协议 (NAPI) 类似、但我们的 SDK 产品目前不提供类似的实现。 理论上可以实现这一点、但这需要在以太网驱动程序的核心运行中对其进行更改。 除非您有过网络驱动程序或任何核心驱动程序方面的经验、否则我不建议您冒险尝试一下。

    您能否 提供有关要求的更多详情? 我们可以在 SDK 选项中建议可满足您要求的可能方法。

    此致、
    Teja。