本文由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_IFCONFIG
NETDEV_USING_PING
NETDEV_USING_NETSTAT
NETDEV_USING_AUTO_DEFAULT