工具/软件:Code Composer Studio
您好!
我们有两个板。 两者均使用 LWIP TCP 协议栈连接到 LAN。 第一块电路板配备了 LM3S9B96处理器(我们使用的是 StellarisWare 工具)。 第二个示例是 TM4C129ENCPDT (具有用于开发的 TivaWare 工具)。 条件是:网络连接可能使用 DHCP (AutoIP 打开)或静态 IP (两个项目都使用 lwiplib.c)、具体取决于当前参数(Parameters.ui8UseDHCP)。
图示代码:
if (参数.ui8UseDHCP)
lwIPInit (g_ui32SysClock、parameters.pui8MACAddr、0、0、0、0、 ipaddr_use_dhcp);
其他
lwIPInit (g_ui32SysClock、Parameters.pui8MACAddr、htonl (Parameters.ui32IPAddr)、htonl (Parameters.ui32NetMask)、
htonl (Parameters.ui32GWAddr)、IPADDR_USE_STATIC);
在某些测试中、我们发现了这样一种奇怪的行为:
a)使用 DHCP 和 AUTOIP 进行编译:
在 lwipopts.h 中:
#define LWIP_DHCP 1.
#define LWIP_AUTOIP 1.
然后、在使用 LM3S9B96切换到静态 IP 板后工作正常、使用 TM4C129ENCPDT 的板不工作。
b)在 DHCP 和 AUTOIP 关闭的情况下编译:
在 lwipopts.h 中:
#define LWIP_DHCP 0
#define LWIP_AUTOIP 0
然后、具有 TM4C129ENCPDT 的电路板也可以正常工作。
问题是我们需要在设备工作期间在 DHCP <=>staticIP 之间动态切换。
请帮帮我们。 任何想法都非常感激!
提前感谢。