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.

[参考译文] CC3235MODSF:什么是"+recv:0、0、OK (&quot);?

Guru**** 2535150 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/980954/cc3235modsf-what-means-recv-0-0-0-ok

器件型号:CC3235MODSF

您好!

我正在使用 simplelink_cc32xx_sdk_4_40_00_07、并且我的项目从 at_commands 示例中进行了非常细微的修改。

1.从主 MCU 向 CC3235发送"AT+recv=0、0、5120"以从远程服务器接收一些数据。

2.有时、CC3235会向 主 MCU 发送"+recv:0、0、OK"。 长度为0。 下面是日志。 发生时关闭插座。

[2000-01-01T00:00:26][DBG][WIFI.c:1288][ATRx:24]-["AT+recv=0、5120
好的


"]
[2000-01-01T00:00:36][DBG][WIFI.c:1288][ATRx:18]-["+recv:0、0、0、
好的
"]
[2000-01-01T00:00:36][DBG][WIFI.c:643] 1) len:0、last:
[2000-01-01T00:00:36][ERR][WIFI.c:663] 1)长度错误!:0
[2000-01-01T00:00:37][DBG][WIFI.c:1288][ATRx:28]-["AT+Close=0"
+Close:0
好的

我将套接字选项设置为"AT+setsockopt=0、socket、rcvtimeo、60、0"。 rcvtimeo 为60秒。

但在"AT+recv=0、0、0、OK"之后10秒从"AT+recv=0、0、5120、OK"接收到"+recv:0、0、OK"、因此无法接收远程服务器发送的数据。

在什么情况下,NWP 会以"+recv:0、0、OK"进行响应???

谢谢、

Calvin

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

    您好、Calvin、

    返回"+recv、0、0、OK (+recv、0、0、确定)"时是否会出现任何异步事件?

    调用底层套接字接收回调时返回该字符串。 只有在接收到数据或满足超时时时时才会发生这种情况。

    您能否按照 NWP 程序员指南第20.1节中的说明收集 NWP 日志? http://www.ti.com/lit/swru455

    该信息允许我检查 CC3235网络堆栈的运行状态、并查看 recv 命令中是否存在错误、从而帮助我调试您的问题。

    此致、

    Michael

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

    您好、Michael、

    没有异步事件。

    2.我复制了这个问题,并捕获了 NWP 日志。 请参阅所附日志的最后一部分。 (这次我将套接字 rcvtimeout 设置为30秒)

    e2e.ti.com/.../1731.nwp.log

    下面是主 MCU 和 CC3235之间的最后一个日志。 (无异步事件)

    [2000-01-01T01:00:10][DBG][WIFI.c:644] 1) len:231,最后:>
    [2000-01-01T01:00:10][DBG][WIFI.c:1290][ATRx:25]-["AT+recv=11、0、5120
    好的


    "]
    [2000-01-01T01:00:32][DBG][WIFI.c:1290][ATRx:19]-["+recv:11、0、0、
    好的
    "]
    [2000-01-01T01:00:32][DBG][WIFI.c:644] 1) len:0,最后:
    [2000-01-01T01:00:32][ERR][WIFI.c:664] 1)长度错误!:0
    [2000-01-01T01:00:32][DBG][WIFI.c:1290][ATRx:30]-["AT+Close=11.
    +Close:11.
    好的


    "]

    谢谢、

    Calvin

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

    您好、Calvin、

    我下载并尝试对您的日志进行解码、但似乎您的日志已损坏。 具体而言、日志中没有任何空(0x0)字符。 您能否再次检查 UART 捕获设置、并确保保存所有二进制数据、并在上电后为我提供新日志?

    您可以在收集的日志上执行完整性检查、然后再将其提供给我。 如果从冷启动成功捕获 NWP 日志、则应在原始二进制日志中看到一些 ASCII 纯文本、尤其是/sys/servicepack.ucf NWP SP 文件。 此外、该字符串前面的3个字节的二进制数据将为0x27 0xCA 0x2F。 如果您检查字符串+这3个字节并在日志中看到它、并且还看到存在空字符、则应该正确捕获该字符并可由我的工具解码。

    此致、

    Michael

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

    您好、Michael、

    能否检查附加的日志? 它不是重现问题的日志、它旨在验证 NWP 日志是否正确。

    e2e.ti.com/.../8816.teraterm.log

    我找不到 前面的字节  0x27 0xCA 0x2F。  

    谢谢、

    Calvin

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

    您好、Calvin、

    遗憾的是,您提供的日志已损坏,并导致日志解码器崩溃。 似乎缺少"/sys/servicepack.ucf 字符串。 缺少该字符串几乎是日志损坏的肯定迹象、因为加载服务攻击是引导序列的一部分、并且始终打印在从加电捕获的日志中。

    请查看说明、重新捕获日志数据、并仔细检查您的日志是否符合我在上一篇文章中提到的完整性检查。

    此致、

    Michael

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

     您好、Michael、

    我很难获取 NWP 日志。

    我在 主线程中添加了 MAP_PinTypeUART (PIN_62、PIN_MODE_1)(基于 at_commands 示例)

    void * mainThread (void * pv 参数)

    int32_t status = 0;
    pthread_attr_t pAttrs;
    struct sched_param primParam;

    /*使用 CC31xx/CC32xx 接口初始化 SlNetSock 层*/
    status = ti_net_slNet_initconfig();
    if (0!=状态)

    UART_PRINT ("初始化 SlNetSock\n\r\n 失败");

    GPIO_init();
    spi_init();

    /*配置 UART */
    InitTerm();

    MAP_PinTypeUART (PIN_62、PIN_MODE_1);// NWP 日志

    /*在命令模块创建*/
    ATCmd_create();

    SL_Start (0、0、0);
    ATCommands_displayBanner();

    三、会议的报告

    三、会议的报告

    UART0用于与 InitTerm()中的主 MCU 通信。

    UART_Handle InitTerm (void)

    UART_Params uartParams;

    UART_INIT();
    UART_PARAMS_INIT (uartParams);

    uartParams.writeDataMode = UART_DATA_BINARY;
    uartParams.readDataMode = UART_DATA_BINARY;
    uartParams.readReturnMode = UART_return_full;
    uartParams.readEcho = UART_ECHO_OFF;
    uartParams.baudrate = 115200;

    uartHandle = UART_open (CONFIG_UART_0、uartParams);
    /*从 LPDS 依赖项中删除 UART 接收*/
    UART_CONTROL (uartHandle、UART_CMD_RXDISABLE、空);

    return (uartHandle);

    它使用模块引脚46、47。

    在定制板上、是否需要将 UART1配置为引脚48和49? (TP24用于 NWP 日志输出)。

    我将使用电话插孔进行此操作。

    谢谢、

    Calvin

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

    您好、Calvin、

    您的代码看起来正常-在 InitTerm()正确后多路复用 NWP UART。

    您无需配置 UART1 -只有 UART0需要处于活动状态才能使 NWP UART 输出正常工作。

    总体而言、您的设置看起来不错。 我会不断检查您的捕获工具和软件、以确保保存来自 NWP UART 的所有二进制数据。

    如果您认为电话插孔可能存在问题、也可以尝试将 NWP UART 多路复用为备用引脚。 查看我在此处发布的其他选项:

    https://e2e.ti.com/support/wireless-connectivity/wifi/f/968/p/977375/3614163#3614163

    其中有任何一项适合您吗?

    此致、

    Michael

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

     您好、Michael、

    很抱歉、我对硬件方面不太满意、所以让我 问您更多问题?

    UART0非常适合与主 MCU 通信以及进入引导加载程序。

    1、不用管脚48、49? 该引脚有什么用途?

    GPIO7 (TP24)需要连接到某个位置? 还是仅需要 MAP_PinTypeUART (PIN_62、PIN_MODE_1);在代码中?

    (之前发送的日志是通过将引脚连接到电话插孔的 Rx 来提取的日志)

    谢谢、

    Calvin

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

    您好、Calvin、

    启用 UART0后、除了在代码中的某个位置调用 MAP_PinTypeUART (PIN_62、PIN_MODE_1)之外、您不需要执行任何其他步骤。

    pins48和49没有具体用途。 它们是 GPIO、也可用于其他通用外设。 TP24原样可以收集日志、除非电话插孔有干扰 UART 信号的东西。

    作为完整性检查、您能否使用 UART 捕获工具捕获 TX_FLASH 信号的原始二进制数据? 在您的应用中、请将波特率调整为921600、以便数据可读。 如果您的设置工作正常、您应该能够准确地捕捉您在终端上看到的内容。 是这样吗?

    此致、
    Michael

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

    您好、Michael、

    该文件怎么样?

    e2e.ti.com/.../0310_2D00_5.zip

    我无法看到  0x27 0xCA 0x2F 字节和 "/sys/servicepack.ucf "字符串、但可以看到下面一些其他字符串。

    谢谢、

    Calvin

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

    您好、Calvin、

    您的新文件格式正确、我可以成功解码它。

    查看日志文件,可以看到设备正在闲置,没有正在执行 sl_* API。 这是与您的问题相对应的日志、还是仅与测试日志相对应?

    如果您可以使用这些设置捕获日志、并显示设备从重置到问题发生的时间、这将有助于进行调试。

    此致、

    Michael

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

    您好、Michael、

    我将上载从 重置到下星期一问题发生的全新日志。

     

    谢谢、

    Calvin

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

    您好、Michael、  

    很抱歉迟到了。

    我发现、当我在使用设备发送/接收数据期间强制关闭服务器 PC 程序的套接字时、也会发生这种情况。

    因此、我认为这不是一个问题、而只是需要对案例进行例外处理。

    谢谢、

    Calvin