首先应该看下源码包中的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()。
本文详细介绍了LWIP网络栈的初始化流程,包括内存管理、各协议层初始化及网络接口配置。通过具体步骤说明如何设置IP地址、子网掩码、网关等,并给出了ethernetif_init函数的具体实现。
1034





