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/TM4C1292NCPDT:TFTP 客户端程序

Guru**** 2392905 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/640042/rtos-tm4c1292ncpdt-tftp-client-program

器件型号:TM4C1292NCPDT

工具/软件:TI-RTOS

您好!

我正在处理 tftp 客户端程序。  我必须使用 tftp 检索文件。 我使用了函数 NtTftpRecv。  我将获得 该函数的返回值- 4。 在该函数内,有一个函数调用 sendto ()。 此函数还返回- 4。 有人可以指导我解决这个问题吗?

此致

Sandra

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

    您使用的是 TI-RTOS 的哪个版本? 您何时调用 NtTftpRecv API?

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

    TI RTOS 版本为2.16.01.14。
    我获取了 tcpecho 项目、并从 TCP 处理程序任务中调用了函数 NtTftpRecv。 我调用了如下函数。

    unsigned long int n;
    CHAR IP[48];
    char * szFileName ="blinky.bin";
    char FileBuffer[2000];
    uint32_t FileSize = 2000;
    uint16_t pErrorCode;
    内转台;
    strcpy (ip、"192.168.1.3");
    N=conv (IP);
    RET = NtTftpRecv (n、szFileName、FileBuffer、&FileSize、&pErrorCode);

    此处 n 是 IP 地址的32位等效值。 函数的用法是否正确?

    此致
    Sandra
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    除了之前的帖子、我还在下面添加了一些更多详细信息。

    NDK 版本为2.25.00.09。
    我用于将 IP 地址转换为32位整数的代码是、

    unsigned long int conv (char ipadr[])

    unsigned long int num=0、val;
    char *tok,*ptr;
    Tok=strtok (ipadr、".");
    while (tok!= NULL)

    Val=strtoul (tok、&ptr、0);
    num=(num << 8)+ val;
    TOK=strtok (NULL、".");

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

    我得到了解决方案。 我不是以32位整数的形式传递、而是使用函数 inet_addr 并将 IP 地址转换为网络形式并传递。 它发挥了作用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您再次向我们提供解决方案。