说明:
- 工程使用
board\ALIENTEK_STM32F429\KEIL\tcp_server_base_lwip,且并未在实际的开发板上运行(没有对应的开发板)。 - 这里只分析send的流程
- 代码所在文件是文件名带有有下划线的那个
调用send函数
宏替换为lwip_send()
下面这个函数的第一个参数是一个函数指针:
现在回头看lwip_netconn_do_write(),它就是上图中442行的fn




其中netif是从一个全局列表中找到的一个元素


netif是一个全局变量,它的初始化要在ethernetif.c中寻找
etharp_output()有三条返回路径:
无论那条路,最终还是调用ethernet_output()
又遇到了netif:
仍然在ethernetif.c中寻找其初始化:
在ethernetif_drv_write()中会遇到另外一个全局变量:ethernetif_drv

ethernetif_drv的初始化是通过ethernetif_drv_register()完成的,这个函数在lwip.c中
现在已经到了BSP(board surport pack)层了,跟硬件相关的驱动层

这里感觉应该是通过设置标志,来物理发送数据
