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.

[参考译文] MSP432E401Y:如何启用 telnet 功能

Guru**** 2534260 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1207268/msp432e401y-how-to-enable-telnet-function

器件型号:MSP432E401Y

大家好、

客户使用  simplelink_msp432e4_sdk_4_20_00_12 SDK、并希望启用 telnet 功能。 如何配置 IP、端口等 ?

您能帮助检查这个问题吗?

谢谢。此致、

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

    您好!

     我们尚未准备好使用 telnet 示例、但我发现该线程对如何为 NDK 设置 telnet 很有帮助。  https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/726448/ccs-msp432e401y-configure-telnet-services-using-udpecho-sample-code-with-static-ip

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

    您好!

    添加 Telnet 非常简单、但有几个技巧!

    我从用于 TI RTOS 的"可移植"示例项目开始、然后在 http 演示项目中添加了网络堆栈。 更容易从一个使用网络的示例项目开始、并去除您不需要的位。 然后、只需点击 syscfg GUI 工具中的 Telnet 以添加整个实现。

    为 Telnet 添加服务报告回调函数-来自 httpsrvBasicHooks.c 的实现也与 HTTP 演示相吻合。 您可能需要在服务报告功能中编辑名称表,因为它可能不知道 Telnet。

    此时,它应该会编译并运行,但 Telnet 服务无法启动。 您需要交换库。 默认情况下、大多数样本使用 netctrl_min_ipv4.aem4f。 该最低版本的库具有许多高级功能-例如 Telnet -已被去除。 只需从名称中删除_min。 我发现在 CCS 项目窗口中编辑库名称把库移到了库的长列表的末尾,之后它不会链接! 只需关闭 CCS、使用文本编辑器编辑项目文件并重新启动。

    它现在应该会构建并运行并报告  

    服务状态:Telnet:已启用::000

    我使用配置了连接类型为"其他"- Telnet、端口23的 Putty。

    键入 A "?" 并出现 Telnet 菜单。

    希望这对您有所帮助。

    吉姆

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

    抱歉、忘记了您的真实问题!
    IP 地址是 MSP432板的地址-大多数项目在系统配置工具的"NDK 接口"选项卡中选择使用 DHCP、但您也可以在其中选择固定的 IP 地址。
    Telnet 的 TCP 端口默认为23、但可以在 sys cfg 的 Telnet 选项选项卡中选择不同的值。

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

    您好、Jim、

    如何获得 telnet 回调函数? 有演示吗?

    谢谢

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

    如果您是指服务报告回调、我只需调整一下其他 TCP 演示中的那个:


    /**@简短的服务报告回调。
    *
    *可以设置为 GUI 中定义的各种网络配置操作的回调。
    */
    void serviceReport (uint32_t item、uint32_t status、uint32_t report、void *h)

    Static char * TASKNAME[]={"Telnet"、""、"NAT"、"DHCPS"、"DHCP"、 "DNS"};
    Static char * reportStr[]={""、"running "、"updated"、"complete"、"Fault"};
    Static char * statusStr[]={"Disabled"、"Waiting "、"IPTerm"、"failed"、"Enabled"};

    Display_printf (DISPLAY、0、0、"服务状态:%-9s:%-9s:%-9s:%03d\n"、
    TASKNAME[item - 1]、statusStr[status]、reportStr[report /256]、
    报告和0xFF);

    /*报告常见系统问题*/
    如果((Item === CFGITEM_SERVICE_DHCPLIENT)&&
    (STATUS = CIS_SRV_STATUS_ENABLED)&&
    (REPORT & NETTOOLS_STAT_FAULT)

    display_printf (display、0、0、"DHCP Client 初始化失败;check your network。\n");
    while (1);
    }
    }
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jim、

    PC 似乎可以成功链接到器件、但器件无法启用 Telnet 服务。 我在 Wndows 终端中输入"telnet 192.168.1.100 1000",如 picture_1。  

    按 Enter 键后、它将如 PICTURE_2中所示。  

    在整个过程中、我使用 Wireshark 工具捕获数据包、结果显示为 PICTURE_3。 请帮助检查它。

    我的 PC IP 为192.168.1.20、器件 IP 为192.168.1.100。 Telnet 端口号为1000。

    谢谢~

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

    我只尝试使用 PuTTY 进行连接、因此我不确定。
    当您说 Telnet 端口为1000时、我假设这意味着您使用 syscfg GUI 中的 Telnet 设置将默认值从23更改为23!
    应该没问题、但我只使用了默认值。
    是否在 Launchpad 上看到 Telnet 已启动的服务报告功能状态?

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

    您好、Jim、

    我在文件名 tcpEchoHooks.c 中更改了 Telnet 端口、如下所示。 我不使用 syscfg GUI。

    执行 Telnet 链接时、没有来自 UART 控制台的任何日志。

    谢谢

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

    啊、我可以明白您可能希望它起作用的原因、但是:

    在首次分配 IP 地址时,许多示例项目都使用 netIPAddrHook ()以硬编码端口号启动网络任务。

    Telnet 是一种服务、因此启动方式有所不同。 当您在 syscfg GUI 中检查 Telnet 时、会将以下代码添加到生成的代码文件 ti_ndk_config.c 中 此处、端口号(telnet.param.Port = 23;)根据 GUI Telnet 设置中的端口参数生成。

    /*
    *=========== TI_NDK_CONFIG_Telnet_init ===
    配置并初始化 Telnet 服务器
    */
    extern socket ConsoleOpen (struct sockaddr *pSinClient);

    静态 void ti_ndk_config_telnet_init (void *hCfg)

      CI_SERVICE_Telnet 远程登录;

      /*为 Telnet 实例指定 Telnet 服务:CONFIG_telnetes_0 */
      /*注意! 应用程序必须提供与该原型相匹配的服务报告功能! */

      extern void serviceReport (uint32_t item、uint32_t status、
      uint32_t report、void *h);

      memset (&telnet、0、sizeof (telnet));
      Telnet.cisargs.Mode = CIS_FLG_CALLBYIP;
      telnet.cisargs.ipaddr = inet_addr ("0.0.0.0");
      Telnet.cisargs.pCbSrv = serviceReport;
      Telnet.param.MaxCon = 8;
      Telnet.param.Port = 23;
      Telnet.param.Callback =&ConsoleOpen;

      CfgAddEntry (hCfg、CFGTAG_SERVICE、CFGITEM_SERVICE_Telnet、0、sizeof (telnet)、 (unsigned char *)&telnet、0);
    }

    如果你编辑这个,它会被覆盖,但我建议坚持23 ,至少直到你得到一些工作.

    如果您已将服务报告功能添加到 Telnet 设置中(如我昨天发布的示例)、您应该会看到有关 Telnet 的一些消息(启用或失败)。 在报告"已启用"之前、您将无法连接。

    此致
    吉姆

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

    您好、Jim、

    我将稍后尝试如上所述并反馈结果。

    非常感谢!

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

    您好、Jim、

    是否有任何 ConsoleOpen()函数的参考?

    谢谢~

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

    我看不到任何文档!
    该示例在 C:\ti\simplelink_msp432e4_sdk_4_20_00_12\source\ti\ndk\tools\console\controlL.c 中使用库函数

    该函数的顶部只有一个基本注释:

    /*------------------ */
    /* ConsoleOpen()*/
    /*启动与指定客户端的控制台连接*/
    /*出错时返回本地套接字或 INVALID_SOCKET */
    /*------------------ */
    Socket ConsoleOpen( struct sockaddr *pClient )

    我想就是这样!