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/TMS570LC4357:集成 lwIP 和 CAN 通信时出现问题

Guru**** 2484615 points
Other Parts Discussed in Thread: HALCOGEN, TMS570LC4357

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/723832/ccs-tms570lc4357-problem-integrating-lwip-and-can-communication

器件型号:TMS570LC4357
主题中讨论的其他器件:HALCOGEN

工具/软件:Code Composer Studio

您好!

我最近使用了提供的 lwIP 演示来通过 UDP 向 PC 发送一些数据、其最终目标是通过 UDP 在 CAN 上发送接收到的数据。 我已经在 Halcogen 中修改了所有内容、以便能够进行通信。 我已经使用之前的项目完成了这一操作、其中 CAN 通信可以正常工作、但是在这个项目中、使用 lwIP 无法正常工作。 我尝试发现这两个项目之间存在一些差异、我甚至在 Halcogen 中对工作中的 CAN 通信项目进行了与 lwIP 演示相同的修改、而之前的项目工作正常、并且 lwIP 项目仍然无法发送/接收 CAN 消息。

我甚至检查了2个项目的 CAN 模块的控制寄存器、它们是相同的、这2个项目的 halcogen 项目是相同的。 lwIP 演示或文件中显然有某种内容以某种方式禁用 CAN 通信、但我无法确定。

是否有人有同样的问题? 有人知道 lwIP 演示中会干扰 CAN 通信的任何内容吗?

谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我使用 CAN 通信将所有 lwip 文件添加到工程中、我不使用任何 lwip 函数、只需将 lwip 文件放在工程目录中、然后添加包含路径、就像 lwip 示例中的路径一样。 现在、在工作项目上、CAN 通信也已停止。 我很清楚、lwip 文件中的某些内容正在发生更改、并且以某种方式同时停止 CAN 通信。

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

    我终于找到了问题。 如果其他人发现自己与我处于相同的状况,这将会很有帮助:)

    文件 HL_sys_common.h 中 lwIP 演示集的 halcogen 实现定义了:

    #ifndef __little_endian__
    #define __little_endian__ 1.

    #endif
    #ifndef __lig_ENDIAN__
    #define __LITY_ENDIAN__ 1.

    #endif

    可以看到、这些设置为1。 但据我所知、tms570lc4357是大端字节序。 因此、将这些定义更改为0可以解决问题、现在、CAN 通信和 lwip 库可以协同工作。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 Adrian 的更新。 我在 HL_sys_common.h 文件中找不到这两行。