嵌入式系统与单片机|技术阅读
登录|注册

您现在的位置是:嵌入式系统与单片机 > 技术阅读 > ZYNQ 裸机lwip 双网口注意事项

ZYNQ 裸机lwip 双网口注意事项

本例子使用zynq7000系列的ps带的两个mac,一个通过mio引出,一个通过emio引出。如下图:

由于lwip通常不使用双网口,有部分需要注意修改。有以下注意事项:

1加宏定义

vivado自带的问题,生成的时候少宏定义。

xxx_bsp/ps7_cortexa9_0/include/xparameters.h 增加宏定义:

#define XPAR_GMII2RGMIICON_0N_ETH1_ADDR  5

xxx_bsp/ps7_cortexa9_0/libsrc/lwip202_v1_2/src/contrib/ports/xilinx/netif/xemacpsif_physpeed.c 增加宏定义

#define  XPAR_GMII2RGMIICON_0N_ETH1_ADDR 6

此数据5应与ip核设置为相同

2  路由相关设置

使能路由,并且由于双网口可能处于相同网段需要进行适度修改。

2.1 使能lwip的路由功能

xxx_bsp/ps7_cortexa9_0/libsrc/lwip202_v1_2/src/contrib/ports/Xilinx/include/lwipopts.h

#define IP_FORWARD 1  使能路由

2.2 增加路由功能宏定义

xxx_bsp/ps7_cortexa9_0/libsrc/lwip202_v1_2/src/lwip-2.0.2/src/include/lwip/ip4.h  

#define LWIP_HOOK_IP4_ROUTE_SRC

2.3 修改路由相关函数

xxx_bsp/ps7_cortexa9_0/libsrc/lwip202_v1_2/src/lwip202_v1_2/src/include/lwip/netif.h  增加如下:

#if LWIP_SINGLE_NETIF