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.

[参考译文] TM4C1294NCPDT:双路静态/DHCP 配置可在以太网链路上清除静态 IP 数据(TivaWare 中的 lwiplib.c)

Guru**** 2532560 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1171439/tm4c1294ncpdt-dual-static-dhcp-configuration-clears-static-ip-data-on-ethernet-link-up-lwiplib-c-in-tivaware

器件型号:TM4C1294NCPDT

早上好!

我的客户想要选择(并随时改变他的想法)
配置之间的通信。
我必须同时支持 DHCP (因此我需要 DHCP 代码)和静态 IP
一个固件中。

问题出现在文件"TivaWare_C_Series-2.2.0.295/utils/lwiplib.c"中。

我需要包含 DHCP,因此我为 lwIPLinkDetect()定义了 LWIP_DHCP 常量
功能。
当以太网状态发生变化(例如:链路断开、链路断开)时、
在 lwIPLinkDetect()中清除静态 IP 信息:
--------------------------------------------------
//
//从网络接口清除任何地址信息。
//
ip_addr.addr = 0;
net_mask.addr = 0;
gw_addr.addr = 0;
netif_set_addr (&g_sNetIF、&ip_addr、&net_mask、&gw_addr);
--------------------------------------------------

我建议清除数据、但不用于静态 IP 配置:
--------------------------------------------------
if (g_ui32IPMode!= IPADDR_USE_STATIC)

   //
   //从网络接口清除任何地址信息。
   //
   ip_addr.addr = 0;
   net_mask.addr = 0;
   gw_addr.addr = 0;
   netif_set_addr (&g_sNetIF、&ip_addr、&net_mask、&gw_addr);

--------------------------------------------------

祝你一切顺利、
Piotr Kasprzyk

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

    您好!

     我们没有任何 lwIP 示例 可在 DHCP 和静态之间切换。  我发现这篇 lwIP 论坛文章可能对您有所帮助、因为它会像您所做的那样做一些事情。  https://lists.gnu.org/archive/html/lwip-users/2010-07/msg00078.html

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

    我不需要任何 lwIP 示例、我的代码现在可以正常工作。 我认为 TivaWare 软件无法使用静态 IP (没有我建议的补丁)。 尝试5个步骤中的简单练习:1. 以 TM4C129使用 DHCP 的任何示例为例;2. 使用 LWIP_DHCP 启用 DHCP 代码;3. 使用"lwIPInit (g_ui32SysClock、pui8MACArray、ipaddr、netmask、GWAddr、 ipaddr_use_static);";4. 检查您是否可以使用静态 IP 地址 ping TM4C。 5.尝试断开 RJ-45以太网并重新连接,然后检查 ping。

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

    您好!

     lwIPLinkDetect 函数从未考虑在运行时支持在静态 IP 和 DHCP IP 之间切换的情况。 该示例的设计考虑了一个 IP、无论是 DHCP 还是静态 IP。 但很高兴知道您的修补程序能够同时支持这两种应用程序。