工具/软件:TI-RTOS
我运行的是较旧版本的 RTOS (6.32.5.54)和 NDK (2.23.2.03)、问题可能在较新版本中得到解决、但如果可能、我更愿意不进行更新。
以下代码示例用于更改第一/第二个以太网端口( 1和2)的 IP 地址
CI_IPNet NA;
句柄 hCfgIpAddr;
int ret_code;
/*清除 NA 并从 BIOS 获取*/
bzero (不适用、sizeof (不适用));
RET_CODE = CfgGetImmadiate(0、CFGTAG _IPNet、m_port_number、1、sizeof (NA)、 (uint8 *)&NA);
na.ipaddr = htonl (m_udp_connection_parameters.m_local_config.m_ip);
na.IPMask = htonl (m_udp_connection_parameters.m_subnet_mask);
NA.NetType = 0;
memcpy (&na.Domain[0]、&m_udp_connection_parameters.m_domain[0]、sizeof (m_udp_connection_parameters.m_domain));
/*获取当前静态 IP 条目*/
RET_CODE = CfgGetEntry (0、CFGTAG _IPNet、m_port_number、1、&hCfgIpAddr);
/*删除当前静态 IP 条目*/
RET_CODE = CfgRemoveEntry (0、hCfgIpAddr);
/*添加新的静态 IP 条目*/
RET_CODE = CfgAddEntry (0、CFGTAG _IPNet、m_port_number、0、sizeof (CI_IPNet)、 (uint8 *)不适用、0);
printf ("返回代码(%d)\n"、ret_code);
"m_udp_connection_parameters 使用新参数填充"
问题主要是端口2未检测到端口1,原因是 CfgAddEntry 在某些 IP/subnet 组合上将失败(返回代码-101)。
它具有从192.168.01.52更改为10.0.2.2的重要阶数、但会从开始更改
10.0.2.2至10.176.2.2将不会。
它非常奇怪、更改子网也会使其正常工作。
感谢您的观看
Mike