|

楼主 |
发表于 2024-12-31 18:20:11
|
显示全部楼层
接上条。感谢大哥。就算只设置一个,改变基地址也无效。网口1是0xE000B000u 网口2是0xE000c000u。ucos中接口设置设置none都无法使用。网口1就只能使用0xE000B000u ,而0xE000c000u 是无效的,这时该如何处理多网口,现在看来只能选择一个然后使用。我看示例也只有一个以太网和一个wifi的。附我的代码 NET_IF_NBR if_nbr;
NET_IF_NBR if_nbr2;
NET_ERR err_net;
CPU_BOOLEAN if_init_res;
UCOS_Print("UCOS - Initializing GEM Interface.\r\n");
UCOS_TCPIP_IfCfgInit(&NetDevCfg);
#if (UCOS_CPU_TYPE == UCOS_CPU_TYPE_PS7)
#if (UCOS_IF_DEDIC_MEM_ADDR != 0)
NetDevCfg.MemAddr = UCOS_IF_DEDIC_MEM_ADDR;
NetDevCfg.MemSize = UCOS_IF_DEDIC_MEM_SIZE;
NetDevCfg2.MemAddr = UCOS_IF_DEDIC_MEM_ADDR;
NetDevCfg2.MemSize = UCOS_IF_DEDIC_MEM_SIZE;
#else
;
NetDevCfg.MemAddr = 0xFFFF0000u;
NetDevCfg.MemSize = 0x4000;
Xil_SetTlbAttributes(0xFFFF0000u, NORM_NONCACHE);
#endif
#if (UCOS_ETHERNET_DEVICE_ID == 0) /* Base address is returned as 0 from HSI, hardcode for now.*/
NetDevCfg.BaseAddr = 0xE000B000u;
#else
NetDevCfg.BaseAddr = 0xE000B000u;
NetDevCfg2.BaseAddr = 0xE000C000u;
#endif
UCOS_TCPIP_PhyCfgInit(&NetPhyCfg);
if_nbr = NetIF_Add((void*)&NetIF_API_Ether,
(void*)&NetDev_API_GEM,
(void*)&NetDev_BSP_GEM_0,
(void*)&NetDevCfg,
(void*)&NetPhy_API_ksz9131rnx,
(void*)&NetPhyCfg,
#if (APP_TCPIP_EXP_ENABLED == DEF_ENABLED)
DEF_NULL,
#endif
& err_net);
#endif
if (err_net != NET_IF_ERR_NONE) {
UCOS_Printf("UCOS - Error initializing GEM Interface. Error code %d\r\n", err_net);
return (DEF_FAIL);
}
UCOS_Printf("UCOS - GEM Interface initialized successfully with if number %d.\r\n", if_nbr);
UCOS_Print("UCOS - Starting GEM Interface.\r\n");
NetIF_Start(if_nbr, &err_net);
if (err_net != NET_IF_ERR_NONE) {
UCOS_Printf("UCOS - Error starting GEM Interface. Error code %d\r\n", err_net);
return (DEF_FAIL);
}
if_init_res = UCOS_TCPIP_IF_Cfg(if_nbr);
//
// UCOS_TCPIP_IfCfgInit(&NetDevCfg2);
// NetDevCfg2.MemAddr = 0xFFFF4000u;
// NetDevCfg2.MemSize = 0x4000;
// Xil_SetTlbAttributes(0xFFFF4000u, NORM_NONCACHE);
// NetDevCfg2.BaseAddr = 0xE000B000u;
// UCOS_TCPIP_PhyCfgInit(&NetPhyCfg2);
//
// if_nbr2 = NetIF_Add((void*)&NetIF_API_Ether,
// (void*)&NetDev_API_GEM,
// (void*)&NetDev_BSP_GEM_0,
// (void*)&NetDevCfg2,
// (void*)&NetPhy_API_ksz9131rnx,
// (void*)&NetPhyCfg2,
// & err_net);
// if (err_net != NET_IF_ERR_NONE) {
// UCOS_Printf("UCOS - Error initializing GEM Interface. Error code %d\r\n", err_net);
// return (DEF_FAIL);
// }
// NetIF_Start(if_nbr2, &err_net);
// if (err_net != NET_IF_ERR_NONE) {
// UCOS_Printf("UCOS - Error starting GEM Interface. Error code %d\r\n", err_net);
// return (DEF_FAIL);
// }
// UCOS_Print("UCOS - GEM Interface started successfully.\r\n");
// if_init_res = UCOS_TCPIP_IF_Cfg(if_nbr2); |
|