OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 125|回复: 2

LWIP中TCP/IP线程邮箱的获取?

[复制链接]

37

主题

181

帖子

0

精华

高级会员

Rank: 4

积分
822
金钱
822
注册时间
2016-3-17
在线时间
192 小时
发表于 2025-1-23 11:49:27 | 显示全部楼层 |阅读模式
1金钱
在ETH_ETH_IRQHandler中断里面释放信号量, 然后执行 ethernetif_input:

ethernetif_input    ---->    tcpip_input()    ---->    tcpip_inpkt    ---->    sys_mbox_trypost给出邮箱

TCP/IP线程需要获取信号量
tcpip_init(NULL, NULL)    ---->   sys_thread_new 创建 tcpip_thread  ----> sys_arch_mbox_fetch获取邮箱

在UPD的任务中也需要获取信号量
udp任务    ---->    netconn_recv()    ---->    netconn_recv_data()    ---->    sys_arch_mbox_fetch获取邮箱

TCP/IP线程和UPD任务都序号获取 “邮箱”,请问是谁先获取,谁后获取,因为就给出一个邮箱?

最佳答案

查看完整内容[请看2#楼]

粗略的见解 ethernetif_input ----> tcpip_input() ----> tcpip_inpkt ----> sys_mbox_trypost给出邮箱 TCP/IP线程: tcpip_thread() ----> TCPIP_MBOX_FETCH() ----> tcpip_timeouts_mbox_fetch ----> sys_arch_mbox_fetch()和sys_check_timeouts()搭配使用,获取sys_mbox_trypost给出邮箱 ----> tcpip_thread_handle_msg() ---->继续下行 ----> ethernet_input() ----> ip4_input() ----> udp_input ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

37

主题

181

帖子

0

精华

高级会员

Rank: 4

积分
822
金钱
822
注册时间
2016-3-17
在线时间
192 小时
 楼主| 发表于 2025-1-23 11:49:28 | 显示全部楼层
粗略的见解
ethernetif_input    ---->    tcpip_input()    ---->    tcpip_inpkt    ---->    sys_mbox_trypost给出邮箱

TCP/IP线程:
tcpip_thread() ----> TCPIP_MBOX_FETCH() ----> tcpip_timeouts_mbox_fetch ----> sys_arch_mbox_fetch()和sys_check_timeouts()搭配使用,获取sys_mbox_trypost给出邮箱 ----> tcpip_thread_handle_msg() ---->继续下行


----> ethernet_input() ----> ip4_input() ----> udp_input() ----> pcb->recv,即recv_ud() ----> err = sys_mbox_trypost(&conn->recvmbox, buf)给出邮箱


邮箱创建: netconn_new() ----> netconn_new_with_proto_and_callback() ----> netconn_alloc() ----> sys_mbox_new(&conn->recvmbox, size),创建邮箱


获取邮箱: netconn_recv() ----> netconn_recv_data() ----> sys_arch_mbox_fetch() ----> xQueueReceive(),获取邮箱。如果LWIP_SO_RCVTIMEO设定为0,在没有邮箱时会一直等待阻塞。


这是目前自己的学习见解,如有后续深入再补充。


回复

使用道具 举报

37

主题

181

帖子

0

精华

高级会员

Rank: 4

积分
822
金钱
822
注册时间
2016-3-17
在线时间
192 小时
 楼主| 发表于 2025-1-23 11:56:07 | 显示全部楼层
微信截图_20250123115559.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-22 02:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表