一。LWIP协议栈内存管理
1.LWIP内存管理方案
(1)堆heap
(2)池pool
2.LWIP内存管理
(1)内存池API
(2)内存堆API
3.网络数据包的管理
(1)pbuf解释
二。netif相关结构体
2.netif API
3.netif 底层接口(跟硬件打交道)
三。LWIP网卡设计
1.tcpip_init
2.补充:lwip_init这是在裸机下的初始化
3.HAL库实现lwip的初始化
4.以太网的初始化 ethernetif_init
low_level_init
底层数据收发
HAL_ETH_RxCpltCallback
ethernetif_input
low_level_input
low_level_output
解释:lwip的移植与裁剪
1.移植文件的存放地
(1)打开工程文件,进入根目录下
(2)middlewares文件夹下就是移植所需要的文件,有下图可知有Freertos与lwip
(3)这里主要看LWIP的移植,src为经常使用的.c与.h文件,system即为移植文件存方地。
2.移植步骤
(1)网卡驱动 ETH以太网接口
<1>lwip
<2>ethernetif
(2)操作系统 Freertos配置
<1>sys.arch.h
<2>sys.arch.c
(3)配置选项
<1>lwipopt 常用的宏定义放在这里
<2>opt 规定的宏定义存放