原版LwIP和RT-Thread中LwIP的对应关系

8 篇文章 2 订阅
3 篇文章 0 订阅

所比较的LwIP版本为2.0.2

原版(ethernetif.c)RT-Thread中LwIP功能
low_level_initrt_stm32_eth_init       (drv_eth.c)调用以太网驱动函数,初始化 STM32F4xx以太网外设
low_level_outputrt_stm32_eth_tx      (drv_eth.c)调用以太网驱动函数以发送以太网包
low_level_input rt_stm32_eth_rx        (drv_eth.c)调用以太网驱动函数以接收以太网包
ethernetif_init 

rt_hw_stm32_eth_init    (drv_eth.c)

--->eth_device_init

--->eth_device_init_with_flag 初始化网卡设备,并向系统注册网卡设备

(为网卡添加名称,IP、子网掩码、网关,网卡设备使用的发包和收包接口函数等)

初始化网络接口结构 (netif)并调用 low_level_init 以初始化以太网外设
netif_addnetifapi_netif_add     (ethernetif.c) 
ethernetif_input

eth_system_device_init_private    (ethernetif.c)

--->eth_rx_thread_entry

调用low_level_input来接收包并将包提供给LwIP协议栈
   

RT-Thread中将lwIP应用起来主要包括三个核心步骤:
1. 创建收发包线程,调用接口eth_system_device_init()。
lwip_system_init
    --->eth_system_device_init_private //创建收发包线程
 
2. 提供网卡驱动,调用网卡初始化函数,注册网卡设备。(驱动不同相应的接口函数可能不同)
rt_hw_stm32_eth_init
    --->eth_device_init
        --->eth_device_init_with_flag //初始化网卡设备,并向系统注册网卡设备

3. 初始化lwIP,创建lwIP线程,调用接口lwip_sys_init()(实际调用的lwip_system_init())。
lwip_system_init
    --->tcpip_init
至此,三个步骤完成之后,应用层便可以直接与外界通讯

参考资料:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值