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.

[参考译文] CC3235SF:使用WiFi创建用于传输的套接字时,出现返回-2005问题

Guru**** 2560430 points
Other Parts Discussed in Thread: CC3235SF

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1084658/cc3235sf-when-using-wifi-to-create-a-socket-for-transmission-there-is-a-return---2005-problem

部件号:CC3235SF

您好,

当我创建数据传输的套接字时,当我主动关闭服务器时,当我重新创建套接字通信时,它返回-2005,即SL_ Socket ();返回-2005。 情况如何? 如何解决?

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

    你好,Wu,

    SL_Socket返回的-2005表示 SLNETERR_API_ABORED错误。 这意味着API由于主机驱动程序检测到的错误而中止。  

    这可能是由于CC3235SF的内存限制造成的。 您可能需要为应用程序分配更大的堆栈大小。 请检查以下相关线程:

    谢谢!
    雅各布

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

    我有SL_任务堆栈()并且系统堆栈已增加,但当服务器关闭并重新打开时,当连接套接字时它仍返回-2005,当执行以下功能时程序停止。 为什么?

    程序的执行在此处停止。 原因是什么?

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

    你好,Wu,

    在您输入prvTaskExitError之前直接调用哪个函数? SL_Socket递增中是否使用了套接字句柄?

    谢谢!
    雅各布

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

    我不知道我在进入prvTaskExitError函数之前调用了哪个函数,因为当我暂停它时,它只是在这个地方停止,不能执行它。 关于套接字句柄,由于我主动关闭服务器并重新打开它,它无法重新连接。 关于SL_ Socket()返回-2005。

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

    当服务器关闭时,打印出这样一个句子,这是什么问题?

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

    你好,Wu,

    107是 SL_ERROR_BSD_ENOTCONN错误,这意味着端点未连接(因为服务器已关闭)。 是否可以尝试关闭插座并重新打开插座? 您可能还需要在两个呼叫之间添加延迟。 因此,它应该如下所示:

    /* server has shut down */
    sl_Close("your socket here");
    
    delay();
    
    sl_Socket("your socket parameters to connect to server");

    谢谢!
    雅各布

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

    当我使用SL_CLOSE ()时,它返回-2005.似乎您无法关闭或打开新的套接字。 原因是什么?

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

    您好,

    它类似于代码中的其他一些问题(例如堆栈溢出),导致内存损坏和主机驱动程序崩溃。 您可能应该使用调试器在代码的不同位置搜索问题。

    一月

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

    我的代码可以运行,但只要我断开中间的服务器并重新打开它,我就无法连接,它的返回值为-2005。 如果是堆栈溢出,则程序不应运行。

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

    您好,

    堆栈溢出或某些内存区域被覆盖可能会以多种不同的方式运行。 这意味着这种错误在所有情况下都不需要造成硬故障。 但我同意问题的原因可能是您的代码中的其他内容。 如果在调试器中显示此问题,则应该可以轻松修复。

    一月

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

    我不知道问题出在哪里,因为它可以在我运行代码时运行。 当我将服务器连接到一半时,它才会返回-2005。 我应该如何找到问题?

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

    您好,

    第一步,您应检查ROV。 在从SL_ API返回-2005之前,您是否看到SimpleLinkGeneralEventHandler()或SimpleLinkFatalErrorEventHandler()处理程序中的错误?

    一月

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

    为什么我的ROV不能显示每个任务的堆栈大小和整个系统的堆栈大小? 我已按照步骤操作,但仍无法显示。 有什么问题?

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

    您好,

    • 我不知道为什么您在ROV中看不到任务。 请等待TI的回答。 您使用什么版本的CCS? 什么版本的FreeRTOS?
    • 从SL_ API返回-2005之前,您是否看到SimpleLinkGeneralEventHandler()或SimpleLinkFatalErrorEventHandler()处理程序中的错误?
    • 是否可以从设备提供NWP日志?

    一月

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

    1.我的CCS版本是10.4。0.0.0006万 ,FreeRTOS版本是20.2107万.00

    当我断开服务器连接时,系统进入SimpleLinkFatalErrorEventHandler()并打印以下信息。

    3.我无法提供NWP日志。

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

    您好,

    您能否使用最新版本的CCS检查 ROV是否正常工作? 您使用的SDK版本和ServicePack是什么?

    现在我们已经确认您有致命驱动程序中止/SimpleLinkFatalErrorEventHandler() SL_DEVICE_EVENT_FATAL_DRIVER_ABOR/。 这意味着主机驱动程序由于某些原因而崩溃。 此错误的常见原因是内存损坏。 如果没有可用的NWP日志,我们将无法确认或拒绝此失败是否来自NWP端。 但我认为最 可能的原因是内存损坏导致代码的其他部分。 此问题可能会隐藏在任何代码中,即使代码与套接字通信无关。 唯一的解决方法是使用调试器并尝试找出正在发生的情况。

    一月

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

    SDK版本为5_20_00_06。

    ServicePack

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

    您好,

    SDK版本和ServicePack看起来正常。

    您需要使用调试器来确定导致主机驱动程序中止和由此产生的硬故障的原因。

    一月

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

    但是当我的程序正常运行时,没有问题,只要我不关闭服务器,它就可以正常运行,但是如果我关闭服务器,就会发生这种情况,即它返回-2005。

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

    您好,

    很难说现在还在想。 我认为内存损坏发生的时间早很多。 但这只是我的猜测。

    如果应用程序使用多个线程,可以在不影响代码的其他部分的情况下禁用这些线程,则可以尝试禁用它们。 也许这可以提供一些线索。

    一月

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

    好的,我尝试测试一下

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

    您好,

    当我尝试关闭其他线程而只保留主线程时,我发现当我关闭服务器时重新打开可以建立套接字端,但是当我打开其他线程时,我断开服务器并返回到-2005, 但是我找不到其他线程的任何问题,因为只要我一直断开连接,它就可以一直运行。 关闭服务器后,它将返回-2005,并且无法重新建立插槽端

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

    您好,

    很难就这一问题提供任何建议。 也许您应该检查TCP任务和其他任务之间的集成外观。

    一月

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

    你好,Wu,

    [quote userid="49.8381万" url="~/support/wireless-connectivity /wi-fi-group/wif/wi-fi-forum/108.4658万/cc3235sf-whate-use-wifi-to-create-a-socket-for-transmission -3235 - the-the-is-a-return--2005-problem/4020901#4020901为什么402.0901万为什么堆402.0901万堆栈不能显示整个堆栈的大小? 我已按照步骤操作,但仍无法显示。 有什么问题?[/QUOT]

    我认为这是因为ROV默认情况下不支持FreeRTOS。 您可能需要Eclipse插件来查看堆栈大小。 请参阅 此主题

    如果您想了解有关ROV和TI-RTOS的更多信息,请参阅 此页面

    最佳,
    雅各布