
LWIP
jrunw
这个作者很懒,什么都没留下…
展开
-
Lwip 使用流程
Lwip首先进行内存分配:Mem_init()内存栈起止地址,空闲列表初始化;Memp_init()内存池初始化,两者的详细比较会在http://my.oschina.net/u/274829/blog/272530,进行了详细的说明内存分配完之后,进行网络配置,设置IP,默认子网掩码,网关等设置,static struct netif enc28j60;转载 2017-03-28 13:48:46 · 4312 阅读 · 0 评论 -
lwip之数据收发流程
lwip从逻辑上看也是分为4层:链路层、网络层(IP、ARP、(ICMP、IGMP这两个协议是网络层的补充协议,并不严格属于网络层))、传输层(TCP、UDP)、应用层,基本等同TCP/IP,只是各层之间可以进行交叉存取,没有严格划分。协议汇总: 1. ARP协议:根据IP地址获取物理地址MAC的一个TCP/IP协议一个典型的lwip系统包含3个进程:首先是上层应用程序进程,然后转载 2017-03-28 21:52:06 · 3673 阅读 · 0 评论 -
LWIP使用经验
LWIP使用经验一 LWIP内存管理LWIP的内存管理使用了2种方式:内存池memp和内存堆mem,如图1所示。内存池的特点是预先开辟多组固定大小的内存块组织成链表,实现简单,分配和回收速度快,不会产生内存碎片,但是大小固定,并且需要预估算准确。内存堆的本质是对一个事先定义好的内存块进行合理有效的组织和管理,主要用于任意大小的内存分配,实现较复杂,分配需要查找,回收需要合并,容易产转载 2017-04-02 09:47:20 · 1401 阅读 · 0 评论 -
lwip编译选项
lwip编译选项修改默认选项时,不要修改opt.h文件,通过lwipopts.h修改。和内存管理以及TCP发送性能相关的选项// 为1时使用系统库malloc/free进行内存管理#ifndef MEM_LIBC_MALLOC#define MEM_LIBC_MALLOC 0#endif// 使用mem_malloc/mem_free替代pool内存池转载 2017-04-02 09:50:00 · 1088 阅读 · 0 评论 -
手把手教你移植LWIP(ENC28J60)
这里只是移植,所以LWIP那么多的协议都不需要管,只要知道哪里需要我们修改,为什么修改就可以了。 上图就是整个移植的基本思路,非常清晰的三个层次。其实想想,本质上就是收发数据,只是LWIP协议通过对数据的封装可以实现网络传输。从图中我们就可以看到这里首先需要ENC28J60的驱动,这个驱动需要实现数据的收发,驱动可以在网上找一个。其次就是要移植并修改LWIP协议了。移植 1.下载转载 2017-04-02 09:57:43 · 1798 阅读 · 0 评论 -
LwIP源代码文件目录解析
1 -- LwIP源代码文件目录root@motadou:/home/motadou/lwip/lwip-1.4.1# tree .├── CHANGELOG├── COPYING├── doc│ ├── contrib.txt│ ├── FILES│ ├── rawapi.txt│ ├── savannah.txt│ ├── snmp_agent.txt转载 2017-05-02 19:29:36 · 1272 阅读 · 0 评论 -
LWIP之opt.h配置含义
SYS_LIGHTWEIGHT_PROT 平台锁,保护关键区域内缓存的分配与释放NO_SYS --- 是否带操作系统, =1时带,=0时,不带MEMCPY(dst,src,len) --- 内存拷贝 若你希望自己写拷贝函数则可替换SMEMCPY(dst,src,len) ---内存拷贝 若你希望自己写拷贝函数则可替换MEM_LIBC_MALLOC --- 内存函数库的使用,转载 2017-05-02 19:42:11 · 1451 阅读 · 0 评论