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.

[参考译文] TM4C129ENCPDT:EtherNet_S2E 示例中的 Telnet

Guru**** 2612355 points
Other Parts Discussed in Thread: EK-TM4C129EXL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/771533/tm4c129encpdt-telnet-from-ethernet_s2e-example

器件型号:TM4C129ENCPDT
Thread 中讨论的其他器件:EK-TM4C129EXL

您好!

我正在尝试使用 telnet 应用程序、这样、当我远程访问 EK-TM4C129EXL launchpad 时、我会发出一些命令、例如"chip temp"、然后控制器以芯片温度或"led on"回复、然后控制器打开 LED 等 但是我不知道这是否要求控制器是 Telnet 服务器或客户端。 请记住、我不限于使用 Telnet、我认为 Telnet 使用 TCP/IP 协议、并且不能在 UDP (我猜)下工作、如果您有类似的应用程序、我也可以将 UDP 用于相同的目的。

我正在使用基于 FreeRTOS 的方法、因为我需要它。很遗憾、我看不到 FreeRTOS 的大量示例。 我尝试运行一个 EtherNet_S2E、但它有许多编译错误、我的印象可能是我的项目副本缺少一些文件。  

我提出以下问题并寻求您的善意帮助;

  1. 请告诉我是否需要 Telnet 服务器或客户端用于我之前提到的目的
  2. Telnet 是否有任何可用于 UDP 的计数器部分
  3. 请提供 Enet_S2E 项目的已知构建副本
  4. 我尝试使用 TIvAware c_series_2_1_4_178版本构建 Enet_S2E 应用。 我不知道该版本是否兼容或推荐的版本、因为即使解决了所有包含的路径问题、应用程序也不会编译。
  5. 如果有人能够指出、Enet_S2E 项目中将存储传入请求数据的缓冲区将会非常感谢、例如"led on"、这样我就可以读取传入数据包并相应地对其执行操作。

我感谢大家的合作。  

此致、

Sahil  

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

    您好、Sahil、

     下面是使用 FreeRTOS 的 Enet_S2E 示例的副本。 请注意、这是我们仅有的示例、没有其他示例。 我可以是服务器或客户端。 当您的 MCU 接收到数据包(无论是服务器还是客户端)时、您只需解码数据包中发送的命令并对其做出响应。  

    e2e.ti.com/.../1057.enet_5F00_s2e.zip

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

    我正在尝试您现在共享的副本。 我很快会回来的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    查尔斯

    我运行项目并能够对其进行编译和闪存。 但是,由于我没有串行 Booster Pack,所以我如何 telnet 并查看正在 launchpad 调试端口上打印的消息?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您尚未阅读、请参阅此处的用户指南。 www.ti.com/.../spma072.pdf。我想您可以映射到 UART0、UART0通过调试 USB 端口连接到 PC 的虚拟 COM 端口。 如果您没有 BoosterPack、则需要根据您的硬件环境调整软件。 正如我先前所说的那样、这是我们唯一拥有的示例。 您需要对项目进行必要的修改。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    查尔斯

    感谢您分享链接。 我可以找到保存通过 telnet 接收的数据包的正确位置和正确缓冲区。  

    因此、保存数据的缓冲区位于 TELNET.c 下的第1516行、如下所示。 我也能够在调试端口上打印字符。

    switch (pState->eTelnetState)
    {
    //
    //解析器的正常状态,是发送了每个字符
    //连接到 UART 或是 telnet IAC 字符。
    //
    案例 State_normal:
    {
    //
    //查看此字符是否为 IAC 字符。
    //
    if (ui8Char = Telnet_IAC)
    {
    //
    //跳过此字符并进入 IAC 状态。
    //
    pState->eTelnetState = State_IAC;
    }
    其他
    {
    //
    //将此字符写入 UART。
    //
    SerialSend (pState->ui32SerialPort、ui8Char);
    UARTprintf ("\n\r\n%c"、ui8Char);
    }