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.
您好!
要使用 NDK 库在 TMS320F28388D DSP 上启动 DHCP 服务器服务、我根据 "TI 网络开发者套件(NDK) API (SPRU524)" 文档中的说明更改了"tcpEchoF2838X"示例。 下图显示了这种解释。 我在 "NDK_tirtos.c" 文件的"initIP()"函数中添加了此配置、但每当我运行代码时、DHCP 服务器(TMS320F28388D)和 DHCP 客户端(我的笔记本电脑)都不会获得 IP、并且无法在它们之间进行通信。
我必须提到、我 以这种方式在"DHCP 客户端"和"Static IP"模式下运行代码、并且代码成功运行。 但是、我不确定在"DHCP 服务器"模式下是否正确。 您能否指导我如何正确执行 F28388D 上的"DHCP 服务器"服务?
最棒的
Alex
尊敬的 Alex:
您能否详细说明在 DHCP 服务器模式下节点之间没有通信。
此配置应该起作用。 您是否看到 f28388D 进行的任何数据包传输(通过 Wireshark 或类似的内容)。 或接收到的数据包。
在表达式窗口中、观察以太网低级驱动程序调试变量以查看它们是否在递增。
此致、
Yashwant
您好、Yashwant、
感谢你的答复。
[引用 userid="463143" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993624/tms320f28388d-launching-the-dhcp-server-service-using-ndk-library/3672772 #367772"]您是否看到 f28388D (通过 Wireshark 或类似的内容)进行的任何数据包传输[/quot]关于数据包传输、没有传输。 F28388D 芯片(DHCP 服务器)和主机(DHCP 客户端)均未分配 IP。 这是我目前的主要问题。 下面是“Wireshark”的屏幕截图。 DHCP 请求已从 DHCP 服务器发送到 DHCP 客户端。 但是,似乎有两个 DHCP 请求被发送到我的笔记本电脑,一个“DHCP”和一个“DHCPv6”似乎彼此冲突。 这至少是我从这张图片中的理解。
下面是有关我的实现的更多说明。 我在该通信中有两个节点。 第一个是 DHCP 服务器、它是我的 controlCARD 板(TMDCNCD28388D)、另一个是 DHCP 客户端、它是我的笔记本电脑。 我在“initIP”函数中添加了 DHCP 服务器配置,如下图所示。
另一方面,我在笔记本电脑的“自动获取 IP 地址”模式下设置以太网 IPv4设置,如下图所示。
然后、我通过以太网电缆连接我的笔记本电脑和电路板。 但是,每当我在板上运行代码并在“运行时对象视图(ROW)”窗口中观察 SysMin 模块时,就不会向网络添加 IP 地址。 下图显示了这一点。
但是,每当我使用“DHCP 客户机”或“静态 IP”配置运行代码时,此窗口将显示如下消息:
因此、我认为由于 DHCP 服务器没有获得 IP、DHCP 客户端也无法获得 IP。 如果有用、我也可以与您私下分享我的项目。
[引用 userid="463143" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993624/tms320f28388d-launching-the-dhcp-server-service-using-ndk-library/3672772 #367772"]在表达式窗口中,查看以太网低级驱动程序调试变量是否在递增。为了观察这些变量,我在代码中包含了“ethernet.h”并使用了几个调试变量。 但是,它在“ethernet.h”文件中显示错误。 我想知道您能否指导我如何观察以太网调试变量。
您好、Yashwant、
我只是想为您更新一些内容。 在"TI 网络开发者套件(NDK)用户指南"文档(SPRU523K)中、我们可以看到以下有关 NDK 中 NETCTRL 库的说明。 根据这张图片并为了正确使用 DHCP 服务器、我在链接器设置中将我正在使用的 NETCTRL 版本从"最小值"更改为"完整"。
但是、在构建项目后、我遇到了这样的错误、即"NetTool_IPv4"库中存在一个未解析的符号。 我认为、解决此错误可以解决我的问题。 但是 、我无法访问"NetTool_IPv4"库的源代码。 我想知道您能否提及我如何 修复此错误。
请参阅 第271行中 NDK_f2838x_3_61_01\SOURCE \ti\NDK\config\PACKAGE.xs 位置处的 PACKAGE.xs、查看是否有用。
项目中包含的默认堆栈库为 ti/ndk/stack/lib/stk.aem4。 您必须将其更改为 ti/ndk/stack/lib/stk_nat.aem4
您还可以尝试启用 serviceReportHook 函数以进一步调试 DHCP 服务器服务(可能是堆栈大小不足且需要增加)。
我们无法调试您的代码。 如果以太网低级驱动程序或示例中存在问题、请随时联系我们、因为该问题未进行修改。
谢谢、
Yashwant
请参阅 第271行中 NDK_f2838x_3_61_01\SOURCE \ti\NDK\config\PACKAGE.xs 位置处的 PACKAGE.xs、查看是否有用。
项目中包含的默认堆栈库为 ti/ndk/stack/lib/stk.aem4。 您必须将其更改为 ti/ndk/stack/lib/stk_nat.aem4
[/报价]感谢您的信息。 我现在使用的是完整版 netctrl 库、我更改了堆栈库、代码构建得很好。
[引用 userid="463143" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993624/tms320f28388d-launching-the-dhcp-server-service-using-ndk-library/3678429 #3678429"]您还可以尝试启用 serviceReportHook 函数以进一步调试 DHCP 服务器服务(可能是堆栈大小不足且需要增加)。我启用了这些函数并在代码中增加了两个堆栈大小(与 ndkStackThread、高优先级任务、低优先级任务、规范优先级任务和 NDK 引导任务相关的任何堆栈大小) 、在链接器设置中增加了堆栈大小、甚至高达4096。 我还在"netsrv.h"文件中启用了 DHCP 服务器的宏、如下图所示、并重建了代码库和 NDK 库。
但问题尚未解决,我看到 ROV 中“serviceReportHook”函数的“服务状态:DHCP:失败::000”消息。
要正确运行 DHCP 服务器,是否还需要进行其他更改? 我是否应该更改上面提到的 DHCP 服务器配置?
我想知道您是否会指导我。
谢谢、
Alex
尊敬的 Alex:
您能告诉我们 DHCP 服务为什么以前失败以及如何解决。
此致、
Yashwant
您好、Yashwant、
当然,问题是我们必须将以下行添加到 DHCP 服务器配置中。 请注意、尽管 提到"上述代码是使用配置系统调用此服务所需的全部代码"、但 NDK 文档中提供的代码段中缺少此行(在我之前的文章中共享)。
netAddr.NetType = CFG_NETTYPE_DHCPPS;
此致、
A.