首先应该看下源码包中的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()。