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.

[参考译文] AM2434:TMDS243EVM 上具有静态 IP 的 Enet Lwip CPSW 示例

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1340215/am2434-enet-lwip-cpsw-example-with-static-ip-on-tmds243evm

器件型号:AM2434
主题中讨论的其他器件:TMDS243EVMDP83869

大家好、

我特此报告在 mcu_plus_sdk_am243x_09_01_00_41中使用静态 IP 地址配置的 Enet Lwip CPSW 示例遇到的问题。

背景

我使用 MCU_PLUS_SDK_am243x_09_00_00_35在 TMDS243EVM 上以静态 IP 成功运行 Enet Lwip CPSW 示例。 在此设置中、 我已 lwipcfg.h 按如下方式修改文件中的代码、以将 USE_DHCP 和 USE_AUTOIP 设置为"0":

#define USE_DHCP 0
#define USE_AUTOIP 0
以及:
/*#define USE_PCAPIF 1 */
#define LWIP_PORT_INIT_IPADDR (addr) IP4_ADDR (addr)、192,168、3、50)
#define LWIP_PORT_INIT_GW (addr) IP4_ADDR (addr)、192,168、3、1)
#define LWIP_PORT_INIT_netmask (addr) IP4_ADDR((addr), 255,255,0 )
我能够对  TMDS243EVM 执行 ping 操作。
本期
当我使用 mcu_plus_SDK_am243x_09_01_00_41复制相同的方法(在 lwipcfg.h 中禁用 DHCP 和 AUTOIP)时、无法 ping 通 TMDS243EVM。  
我的 test.c 文件设置为:
#define IP_ADDR_POOL_COUNT (2U)

const ip_addr_t gStaticIP[IP_ADDR_POOL_COUNT]={IPADDR4_INIT_BYTES (192,168、3、50)、/*对于 NetifIdx = 0 */
IPADDR4_INIT_BYTES (192,168、4、50)、};/*对于 NetifIdx = 1 */
const ip_addr_t gStaticIPGateway[IP_ADDR_POOL_COUNT]={IPADDR4_INIT_BYTES (192,168、3、1)、/*对于 NetifIdx = 0 */
IPADDR4_INIT_BYTES (192,168、4、1)、};/*对于 NetifIdx = 1 */
const ip_addr_t gStaticIPNetmask [IP_ADDR_POOL_COUNT]={IPADDR4_INIT_BYTES (255,255、0、0)、/*对于 NetifIdx = 0 */
IPADDR4_INIT_BYTES (255,255、0、0)、};/*对于 NetifIdx = 1 */
系统会输出消息、指示使用配置的静态 IP (192.168.3.5)成功初始化 lwIP、但对此地址的 ping 操作失败。
============================
Enet LWIP 应用
============================
启用时钟!
EnetAppUtils_reuceCoreMacAllocation:将 CoreID:1的 Mac 地址分配从4减少为2
MDIO_OPEN:启用 MDIO Manual_Mode
EnetPhy_bindDriver:Phy 0:OUI:080028型号:23 Ver:01 <->'d ph83867':确定
EnetPhy_bindDriver:Phy 3:OUI:080028型号:0f Ver:01 <->'d ph83869':确定
PHY 0处于活动状态
PHY 3处于活动状态
[0]:启动 lwIP,本地接口 IP 为192.168.3.50
[LWIPIF_LWIP] NETIF 初始化成功
主机 MAC 地址-0:34:08:E1:80:D1:6d
主机 MAC 地址-0:70:ff:76:1e:67:9f
[1]:启动 lwIP,本地接口 IP 为192.168.4.50
[LWIPIF_LWIP] NETIF 初始化成功
[LWIPIF_LWIP] Enet 已成功启动
[0] STATUS_CALLB=UP,本地接口 IP 为192.168.3.50
[1]STATUS_CALLB=UP、本地接口 IP 为192.168.4.50
UDP 服务器侦听端口5001
Cpsw_handleLinkUp:端口1:链路建立:1Gbps 全双工
MAC 端口1:链路接通
[0] link_callback==up
[1] link_callback=up
电缆连接 在同一端口:
非常感谢您帮助解决此问题。  提前感谢您的支持。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的  Tomasz Krupski:

    感谢您的提问。

    我会检查一下、然后回复给您。

    此致

    阿什瓦尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Unknown 说:
    [0]status_callback==up,本地接口 IP 为192.168.3.50
    [1]STATUS_CALLB=UP、本地接口 IP 为192.168.4.50

    您需要为2个端口设置不同的域 IP 地址、如下所示

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/09_01_00_41/exports/docs/api_guide_am243x/NETWORKING_LWIP_STATIC_IP.html

    此致

    阿什瓦尼

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

    团队、您好!

    我们已在test.c第397行开始的文件中发现问题。

    ip4_addr_set(&gw, &gStaticIPNetmask[i]);
    ip4_addr_set(&netmask, &gStaticIPGateway[i]);
    

    此处已交换网关 IP 和网络掩码!

    要解决此问题、需要按如下方式交换两行:

    ip4_addr_set(&netmask, &gStaticIPNetmask[i]);
    ip4_addr_set(&gw, &gStaticIPGateway[i]);

    进行此更改后、我能够使用当前示例成功执行 Ping 操作。