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.

[参考译文] CCS/RM57L843:RM57L + FreeRTOSUDP CAN#39;t 支持发送数据长度和管理;18.

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/593043/ccs-rm57l843-rm57l-freertosudp-can-t-support-send-data-length-18

器件型号:RM57L843
主题中讨论的其他器件:TMDXRM57LHDK

工具/软件:Code Composer Studio


我有 TMDXRM57LHDK。 在 FreeRTOS UDP/IP 协议下编译 UDP 演示并尝试之后、我发现它无法发送18字节以下的帧数据。 如果字节计数达到18个字节或更多、则没有问题。  通过调试进行跟踪后、我猜问题发生在 EMAC 驱动器(HL_EMAC.c)上。 请帮助。

同样,我猜问题将在函数 xNetworkInterfaceOutput()中发生。 如果我将 t_len 和 len 更改为60、则可以发出数据帧。

struct pbuf_struct* pbuf = 0;

/*获取缓冲区并初始化它*/
xGetPbuf (&pbuf);
pbuf->next = 0;//无链接的缓冲器链*/
pbuf->payload = pxNetworkBuffer->pucEthernetBuffer;
pbuf->tot_len =(uint16)(pxNetworkBuffer->xDataLength & 0xFFFF);
pbuf->len = pbuf->tut_len;//无链接的缓冲器链*/


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

    请参阅有关 LWIP+UDP 实现的此帖子。

    e2e.ti.com/.../482999

    具体而言、最小数据包长度主题通过该线程讨论约2/3 rds。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的快速响应。 在发布本主题之前、我已经找到了其根本原因:

    受 Min_PKT_LEN 限制。

    可以在此处添加工作轮:

    if <MIN_PKT_LEN) (pbuf->tot _

    pbuf->tut_len=min_PKT_LEN);

    pbuf->lenpbuf->tut_len;

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

    那么、软件似乎可以更改、以允许更短的数据包? 这对于专有实现是可以的、但我认为标准协议格式要求数据包中至少有60字节、这意味着一旦您考虑了数据包标头和其他协议相关内容、就至少有18个数据字节。