lwip协议栈优化_LwIP—系统初始化

本文详细探讨了LwIP协议栈的系统初始化过程,并分享了针对性能和资源优化的关键步骤,旨在提升网络通信效率。
摘要由CSDN通过智能技术生成
LwIP(Light Weight Internet Protocol),小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM的占用。它只需十几KB的RAM和40K左右的ROM就可以运行,这使LwIP协议栈适合在低端的嵌入式系统中使用。很多嵌入式系统用的MCU提供的RAM资源都很紧缺,目前我接触的最大的是300K,但是实时系统等等一跑起来,差不多就占据了100K,外加其他七七八八,最终能剩150K也算得上资源充足了。所以 LwIP往往是嵌入式系统中不可或缺的存在。由于这部分代码着实生猛,堪比裹脚布,无法把全部代码贴出来。如果有条件贴出代码,就算我对每一行都进行注释,那最终你还是无法快速地把整个工程串起来。一般接手一个工程项目,最开始做的是熟悉其代码框架,然后再斟酌项目需求等具体要实现的功能。尽管自学有足够的时间,但是拿到一个demo也必须要先串通整个代码框架,然后才能去仔细分析模块化的东西并着手调试。那怎么串通整个代码框架呢?就以LwIP实现机制为例,首先要知道函数调用关系,并大概了解各个函数作用即可,知道代码运行流程。通过这一步目标也就不远了,但是往往这一步就非常不容易。其次就是深入各个函数的内部看其功能实现了。 这部分代码以当前我正在负责开发的项目为例,首先先理清各 函 数 调用关系 ,看硬件上电系统初始化都做了哪些工作。
Wifi_Init()  wifi_drv_init()    hal_lmac_set_dl_callback(nrc_mac_rx);//注册网络数据接收回调函数      nrc_mac_rx()        nrc_wpa_data_rx(&rx);          nrc_wpa_data_rx()            nrc_wpa_lwip()              lwif_input_from_net80211(vif_id, rx->u.frame + rx->offset_8023,rx->len);                netif->input(p, netif)//该函数为tcpip_input()                  tcpip_inpkt(p, inp, ethernet_input);//return tcpip_inpkt(p, inp, ip_input);//#define ip_input ip4_input                    ethernet_input()                      ip4_input()                        tcp_input()                          tcp_process()                            TCP_EVENT_CONNECTED(pc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值