Part Number:CC3235SF
1.请问我在使用sl_Send()函数发送数据时,发现有时候会返回-11,查找了手册,发现说-11好像是资源不可用,需要重新发送,那么一般什么情况下会导致这种资源不可用呢?
2.在使用sl_Send()该API函数时,默认使用的socket是阻塞还是非阻塞呢?
wu:
nonBlocking = FALSE; status = sl_SetSockOpt(tcp_client_socket, SL_SOL_SOCKET, SL_SO_NONBLOCKING, &nonBlocking, sizeof(nonBlocking));
为什么我将socket设置成非阻塞情况下,会出现程序卡死的情况,但是我设置成阻塞状态的话就会出现在使用sl_send()发送数据的时候返回-11。在整个系统中使用了FREERTOS操作系统和多线程。请问这种情况下应该怎么处理呢?
,
Kevin Qiu1:
-11代表没有发送成功,一般需要检查IP以及端口是否正确,检查内部buffer是否可用
对于freertos问题,如此前所说,建议你在英文论坛提问
,
wu:
IP和端口都是可用的,buffer也是可以的,他是一段时间没问题,但是过段时间偶尔就会发生这样的情况,而且返回的基本都是-11.请问这种情况一般会是什么原因引起的呢
,
Kevin Qiu1:
一般都是上面说的几种原因之一,一段时间后才会出现这样的问题很有可能是buffer的问题
,
wu:
如何判断是不是buffer的问题呢?因为我是通过消息队列来存放数据,然后在从消息队列里将数据拿出来sl_send()发往上位机,但是我发现他偶尔就会出现sl_send()发送失败返回-11的问题,这是什么回事呢?
,
wu:
sl_send()发送返回-11特别经常,测试发现,发送60s返回-11大概是200多次,请问应该如何减少或解决这种发送失败呢?应该怎么处理这种问题呢
,
Kevin Qiu1:
如果是TI-RTOS,可以通过ROV观测buffer使用情况来判断
freertos则没有办法通过ROV观测,对于freertos的消息队列存放数据,如此前所说,中文论坛目前没有freertos专家,你应该在英文论坛或者freertos论坛提问
,
wu:
那buffer一般是原因才会导致发送失败呢
,
Kevin Qiu1:
等待此处的回复:https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1070454/cc3235sf-about-sl_-send-failed-to-send-and-returned—11