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.

[参考译文] TMS570LS3137:EMACTransmit 问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/580617/tms570ls3137-emactransmit-problem

器件型号:TMS570LS3137
主题中讨论的其他器件:HALCOGENDP83640

我的 CTM 使用 TMS570LS3137ZWT 的 EMAC +DP83640芯片实现以太网通信,EMAC 驱动程序由 HALCoGen 04.02.00自动生成,相应的 EMAC 配置和引脚多路复用器已配置,它们的软件代码 将在每10ms 的周期内调用布尔 EMACTransmit (hdkif_t *hdkif、pbuf_t pbuf)。

现在的问题是、当软件运行几分钟时、程序将跳转到 EMACTransmit 的以下两个循环、并且无法跳出。

   while (EMAC_BUF_DESC_EOQ!=(CURR_BD->FLAGS_pktlen & EMAC_BUF_DESC_EOQ))
   {
        
   }
   /*在 TXHDP0变为零之前不要写入它*/
   /*SAFETYMCUSW 28 D MR:NA "硬件状态位读取检查"*/
   /*SAFETYMCUSW 134 S MR:12.2. "LDRA 工具问题"*/


   while ((((uint32) 0U!=*((uint32 *) 0xFCF78600U)))
   {
         
   }

我想问  的是,两项判决没有确定,将会出现什么情况。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我相信您看到的是数据包指针溢出。 检查您的数据包缓冲区中的数据包空间是否没有用完。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好极了。 非常感谢您的回答!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Shuai Peng、您好!

    您是否能够解决您的问题? 如果是、您能否发布您如何解决问题、或将提供的答案之一标记为已验证、以便我们可以关闭主题?