完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用的是ESP_RTOS_SDK git上170316的版本
在多次操作TCP时,偶尔select会返回-1,但得到的errno是0,同时select无法做到让出cpu 这是什么原因呢?是不是170316的版本TCP_WND无法设置导致? 我原本想自己编译third_part中的lwip看看log,但编译出来的.a在生成最后的镜像时,提示`iram1_0_seg' error |
|
相关推荐
1个回答
|
|
首先,我们来分析一下问题:
1. select 函数返回 -1,但 errno 为 0。 2. select 无法让出 CPU。 3. 是否与 ESP_RTOS_SDK 170316 版本中的 TCP_WND 设置有关? 4. 编译 third_part 中的 lwip 时出现错误。 接下来,我们逐一解决这些问题: 1. select 函数返回 -1,但 errno 为 0: 通常情况下,select 函数返回 -1 表示发生错误,而 errno 为 0 表示没有错误。这种情况可能是由于 select 函数内部的某些原因导致的。建议检查 select 函数的实现,看是否有特殊情况导致返回 -1 但未设置 errno。 2. select 无法让出 CPU: select 函数通常用于等待 I/O 操作,但它本身并不会导致 CPU 让出。要实现让出 CPU,可以使用其他方法,例如在等待 select 时使用任务调度器(如 ESP_RTOS_SDK 中的 FreeRTOS)来切换任务。 3. 是否与 TCP_WND 设置有关: TCP_WND(TCP 窗口大小)通常用于控制 TCP 传输的流量控制。如果 select 函数的问题与 TCP_WND 无关,那么可能需要检查其他方面的原因。建议查看 ESP_RTOS_SDK 的文档和源代码,了解 TCP_WND 的设置方法和影响。 4. 编译 third_part 中的 lwip 时出现错误: 这个错误提示可能是由于生成的 .a 文件在链接时出现问题。建议检查以下方面: a. 确保 lwip 库的编译选项和 ESP_RTOS_SDK 的其他部分兼容。 b. 检查 lwip 库的源代码,确保没有错误或遗漏。 c. 检查 ESP_RTOS_SDK 的链接脚本,确保正确处理 .a 文件。 总之,要解决这些问题,需要从多个方面进行排查和调试。建议仔细阅读 ESP_RTOS_SDK 的文档,了解其工作原理和配置方法,并根据问题进行相应的调整。 |
|
|
|
只有小组成员才能发言,加入小组>>
321 浏览 0 评论
1178 浏览 1 评论
586浏览 6评论
483浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
468浏览 5评论
467浏览 4评论
442浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 07:06 , Processed in 0.858041 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号