嵌入式TCP/IP协议LwIP的内存管理机制研究

2012-11-26 09:01:36蔡雄飞王新华郭淑琴
关键词:管理机制嵌入式分配

蔡雄飞,王新华,郭淑琴

(1浙江工业大学信息工程学院,浙江杭州310023;2浙江科技学院信息与电子工程学院,浙江杭州310023)

0 引言

嵌入式系统中广泛采用的网络协议栈一般是作为嵌入式操作系统内核的一部分,应用中只需要在系统内核配置标中标记使用即可,但这些商用操作系统高昂的版权费不利于初期的开发。LwIP(Lightweight Internet Protocol)是瑞士计算机科学院的Adam Dunkels等开发出来的一套用于嵌入式系统的开源TCP/IP协议栈,可以方便地移植于各种开源的嵌入式操作系统。LwIP的主要特点是在保证了TCP/IP协议基本功能模块的基础上,减少了对RAM的占用,一般只需要几十KB的RAM就可以运行[1]。目前,最新的LwIP已经发展到了1.4.0版。本文主要分析和研究了LwIP协议栈的内存管理机制,并设计出了网络接口层的主收发程序。

1 LwIP的数据缓存方式

LwIP采用pbuf(packet buffer)结构和pbuf链来管理数据包。pbuf结构既能在动态内存分配下保存信息包的数据,也能够让信息包数据驻留在静态存储区,通过结构中的*prev和*next指针将存储数据包信息的各个pbuf结构“连接”起来,在逻辑上构成一个pbuf链。pbuf链实现了使物理上呈分散存储的数据能够在逻辑上连续读写,这样就减少了频繁的数据拷贝和内存分配操作。LwIP管理内存的pbuf结构为[2,3]:

pbuf具有PBUF_POOL、PBUF_ROM和PBUF_RAM 3种类型,结构中的flags成员变量即用来标识它的类型。由于分配一个pbuf的操作可以快速完成,PBUF_POOL主要用于网络设备驱动层,适合用于中断处理。当应用程序要发送的数据位于应用程序管理的存储区时,则会分配PBUF_ROM类型的pbuf。而PBUF_RAM类型的pbuf主要用于应用程序发送的数据由动态生成的情况下。……

登录APP查看全文

猜你喜欢
管理机制嵌入式分配
试论工程造价管理机制的完善与创新
建立有效的管理机制奠定坚实的人力资源基础
应答器THR和TFFR分配及SIL等级探讨
工电道岔结合部联合管理机制的探讨
遗产的分配
一种分配十分不均的财富
绩效考核分配的实践与思考
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
电镀与环保(2016年3期)2017-01-20 08:15:32
Altera加入嵌入式视觉联盟