assert failed: tcpip_send_msg_wait_sem IDF/components/lwip/lwip/src/api/tcpip.c:455 (Invalid mbox)

assert failed: tcpip_send_msg_wait_sem IDF/components/lwip/lwip/src/api/tcpip.c:455 (Invalid mbox)
assert failed: tcpip_send_msg_wait_sem IDF/components/lwip/lwip/src/api/tcpip.c:455 (Invalid mbox)

UIS8910DM平台移值LwIP的方式和推荐的不太一样。

(1)没有创建 tcpip_thread 线程,把需要在 tcpip_thread 执行的代码,移植到 net_thread 线程上。该工作通过修改 tcpip_thread() 函数和异步调用函数(如tcpip_inpkt、tcpip_callback_with_block、tcpip_send_msg_wait_sem、tcpip_api_call)的实现来完成。

(2)设置 LWIP_TCPIP_CORE_LOCKING = 1

(3)对网络设备的数据处理,通过线程 callback的方式,运行在 net_thread 线程上。

综上所述,UIS8910DM平台上,socket层的主动调用基本都运行在调用者的线程上,而接收数据的协议栈内的处理运行在 net_thread 线程上,然后通过消息队列将异步事件通知给使用者。
 
原文链接:https://blog.csdn.net/Jonee_Pan/article/details/108110681

 

配置

# CONFIG_LWIP_TCPIP_CORE_LOCKING is not set

CONFIG_LWIP_TCPIP_CORE_LOCKING = y

 

posted on   lydstory  阅读(1668)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示