搜索
查看: 1598|回复: 0

[实战经验] 【ST MCU实战经验】LwIP 内存配置

[复制链接]

该用户从未签到

315

主题

568

帖子

0

蝴蝶豆

论坛元老

最后登录
2017-12-7
发表于 2016-3-25 15:07:58 | 显示全部楼层 |阅读模式
前言
LwIP在lwipopts.h和opt.h头文件中提供了多个配置选项。用户可以根据不同的性能需求和不同应用的内存限制对协议栈用到的内存配置进行调节。Opt.h头文件中包括协议使能和设置,内存设置,调试选项等等。而Lwipopts.h头文件中集合了opt.h中一些常常需要改动的部分。一般情况下用户对lwipopts.h头文件进行修改就可以了。不管是对lwipopts.h还是opt.h进行修改,都必须保证是在已经对你所改动的内容足够的了解的情况下进行,所做的改动是正确的,否则有可能导致协议栈不能正常工作,或者效率低下。

LwIP的内存管理机制
在进行内存配置之前,我们有必要先了解LwIP的内存管理机制。

Lwip动态内存管理
LwIP中可以使用两种动态内存分配的方法:Heap和Pool的方式。
Heap的方式,每次都根据你实际需要的大小分配一块内存出来用,用完以后再还回去。
Pool的方式则是,预先将内存等分成若干份,每次分配时都拿出其中的一块或几块来。假设每等份是256bytes,而你需要300bytes的内存空间,Pool的方式就会给你分配两个256bytes的内存块(一共512bytes)。虽然有点浪费,但这种方式分配内存速度很快,非常适合在接收数据时使用。
对于Heap的方式,程序默认是使用LwIP提供的mem_malloc/mem_free进行内存的分配和释放。这种方式下,程序需要预先分配一段内存空间用来做heap分配,这段预留的空间大小通过MEM_SIZE定义。
你也可以通过C标准库里的malloc/free函数进行内存的分配和释放。需要定义宏MEM_LIBC_MALLOC。

详细解答请下载文档:https://www.stmcu.org.cn/document/detail/index/id-217027
更多实战经验文档请见:https://www.stmcu.org.cn/document/list/index/category-657


回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-5-11 19:25 , Processed in 0.174175 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表