本文由RT-Thread论坛用户@出出啊原创发布:https://club.rt-thread.org/ask/article/3011.html
前言
很久之前就开始整理下面的优化项列表了,但是有很多问题研究不深,一时不敢冒失推出。
前不久,有人在论坛上提问,当时我给的答案比现在少,但是现在列出来的这些也不能保证是全部,以后再做补充吧。
lwip 协议栈、sal socket 抽象层使用了很多全局数组变量当作线程栈,可以修改成从内存堆动态申请的内存。
有些功能和特性在嵌入式设备里是用不到的,可以先去掉。
还有的是可有可无的特性,如果想用,也存在优化空间,可以自己实现。
以下说明不限于 lwip ,sal 部分也有涉及。
裁剪详解
sal 可裁剪优化项
SAL_INTERNET_CHECK: 网络检测,使用到了 workqueue 。检测原理就是尝试连接 “link.rt-thread.org::8101”,发送检测数据。
这个或者可以去掉检测,或者换成自家服务器。#define SAL_SOCKETS_NUM 4: 这个可能是支持创建 socket 的最大数量。RT_USING_NETDEV: 网络接口设备,没有终端操作的情况下可以优化掉。其中,NETDEV_USING_IFCONFIGNETDEV_USING_PINGNETDEV_USING_NETSTATNETDEV_USING_AUTO_DEFAULT分别可以单独增删。NETDEV_IPV6: 目前支持还不普及的吧,可以关掉,如果需要才开启。

本文介绍了如何裁剪rt-thread操作系统的lwip协议栈和sal层,包括网络检测、socket数量限制、协议优化等,以适应嵌入式设备的需求。通过减少不必要的功能和优化内存使用,可以提高系统的效率和资源利用率。
最低0.47元/天 解锁文章
1992

被折叠的 条评论
为什么被折叠?



