STM32F7 + FREERTOS + LWIP 接收数据从网卡到应用层完整流程

本文详细解析了从STM32F7的网卡PHY层到IP层,再到应用层的数据接收流程。通过netif_add函数启动ethernetif_init和tcpip_input,接着low_level_init初始化并创建ethernetif_input线程,利用中断信号量接收数据。数据经DMA处理后,通过ethernet_input与tcpip_input传递到IP层,根据帧类型分别交给TCP、UDP等传输层协议,最终到达应用层。
摘要由CSDN通过智能技术生成
来来来,这里解释下从网卡PHY到IP层的数据接收流程:


这里是以函数调用方式来体现:


netif_add——》ethernetif_init——》low_level_init——》ethernetif_input——》low_level_input和tcpip_input——》


ethernet_input
——》 ip4_input(etharp_input、pppoe_disc_input)——》udp_input、tcp_input、icmp_input、igmp_input等




1.在netif_add(&gnetif, &ipaddr, &netmask, &gw, NULL, &ethernetif_init, &tcpip_input);这个函数中,主要用到的是


ethernetif_init(对网口底层初始化)、tcpip_input(向上层递交数据)这两个函数。


2.在ethernetif_init函数中,调用low_level_init函数,low_level_init函数中创建ethernetif_input线程进行中断信号量方式的接收数


据,DMA接收到完整帧后释放信号量,ethernetif_input线程用low_level_input提取完整数据包,再通过tcpip_input中调用的


ethernet_input将数据传递给上层如:IP、ARP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值