摘要:
LWIP使用经验一 LWIP内存管理LWIP的内存管理使用了2种方式:内存池memp和内存堆mem,如图1所示。内存池的特点是预先开辟多组固定大小的内存块组织成链表,实现简单,分配和回收速度快,不会产生内存碎片,但是大小固定,并且需要预估算准确。内存堆的本质是对一个事先定义好的内存块进行合理有效的组... 阅读全文
摘要:
如何去配置lwip,使它去适合不同大小的脚,这就是本贴的主题lwIP的配置问题。尤其是内存的配置,配置多了浪费,配置少了跑不了或者不稳定(会出现的一大堆莫名奇妙的问题,什么打开网页的速度很慢啊?什么丢包啊,什么死机啦,什么跑到无限循环里边去了,总之很多)。 在这里先... 阅读全文
摘要:
在这里先说一下这两个配置lwip协议栈文件opt.h和lwipopts.h的关系: opt.h是lwip“出厂”时原装的配置文件,它的作者是瑞士科学院的Adam等人,而lwipopts.h的作者是stellarisWare的工程师,它集合了opt.h中常常需要改动的部分和针对Stel... 阅读全文
摘要:
一、接收端 1、通过ehternetif_inputvoid ethernetif_input(struct netif *netif){ struct ethernetif *ethernetif; struct eth_hdr *ethhdr; struct pbuf *p; ethe... 阅读全文
摘要:
一、源码目录结构 api 、 core、netif、 include core下又有IPV4 、 IPV6 、 SNMP 和.c文件 include下又有IPV4、IPV6、LWIP、netif netif下的文件有 1. ethernetif.c... 阅读全文
摘要:
LWIP的底层结构(物理层)转自:http://bluefish.blog.51cto.com/214870/158418我们前面讲到说是ip层的发送和接收都是直接调用了底层,也就是设备驱动层的函数实现,在这里暂且称之为物理层吧。下面就接着ip层的讲,不过由于这里的设备驱动各平台的都不一样,为此,我... 阅读全文