lwip初始化过程

首先应该看下源码包中的doc/rawapi.txt,这篇文档中介绍了初始化流程。

初始化过程的前半部分主要针对lwip的内存管理和各个协议层,在src/core/init.c中有一个lwip_init()函数已经为我们做好了,直接调用即可;

初始化过程的后半部分初始化网络接口,依次调用以下函数:

netif_add(如果有多个接口则需多次调用)

netif_set_default

netif_set_up

dhcp_start

调用netif_add函数时我们需要提供一个init函数指针,这个指针指向我们自己的硬件接口初始化函数,一般来说就是ethernetif.c中的ethernetif_init()。

原文地址:https://www.cnblogs.com/byeyear/p/4169834.html