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.

[参考译文] RTOS/TMS320C6678:CfgAddEntry 在不同的 IP 子网组合上失败

Guru**** 2589275 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/639713/rtos-tms320c6678-cfgaddentry-fails-on-different-ip-subnet-combinations

器件型号:TMS320C6678

工具/软件: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

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

    我已通知软件团队。 他们的反馈将直接发布在此处。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们确定的是、这两个端口并不是独立的、并且相互依赖 IP 地址和子网掩码。 因此、如果端口1掩码设置为255、IP 设置为10.176.1.1、则端口2无法使用端口设置范围内的任何 IP。 不确定这是不是它的工作方式、但是...