ffxz 发表于 2009-5-25 11:07:50

RT-Thread + LwIP,强大的优化

开始我也没想到,优化会到这种地步

先看一个几种开源的TCP/IP协议栈对比:
几种开放源码的TCPIP协议栈概述
1、BSD TCP/IP协议栈

   BSD栈历史上是其他商业栈的起点,大多数专业TCP/IP栈(VxWorks内嵌的TCP/IP 栈)是BSD栈派生的。这是因为BSD栈在BSD许可协议下提供了这些专业栈的雏形,BSD许用证允许BSD栈以修改或未修改的形式结合这些专业栈的代码而无须向创建者付版税。同时,BSD也是许多TCP/IP协议中的创新(如广域网中饿拥塞控制和避免)的开始点。

2、uC/IP

    uC/IP是由Guy Lancaster编写的一套基于uC/OS且开放源码的TCP/IP协议栈,亦可移植到其它操作系统,是一套完全免费的、可供研究的TCP/IP协议栈,uC/IP大部分源码是从公开源码BSD发布站点和KA9Q(一个基于DOS单任务环境运行的TCP/IP协议栈)移植过来。uC/IP具有如下一些特点:带身份验证和报头压缩支持的PPP协议,优化的单一请求/回复交互过程,支持IP/TCP/UDP协议,可实现的网络功能较为强大,并可裁减。 UCIP协议栈被设计为一个带最小化用户接口及可应用串行链路网络模块。根据采用CPU、编译器和系统所需实现协议的多少,协议栈需要的代码容量空间在 30-60KB之间。http://ucip.sourceforge.net

3、LwIP

   LwIP是瑞士计算机科学院(Swedish Institute of Computer Science)的Adam Dunkels等开发的一套用于嵌入式系统的开放源代码TCP/IP协议栈。LwIP的含义是Light Weight(轻型)IP协议,相对于uip。LwIP可以移植到操作系统上,也可以在无操作系统的情况下独立运行。LwIP TCP/IP实现的重点是在保持TCP协议主要功能的基础上减少对RAM的占用,一般它只需要几十K的RAM和40K左右的ROM就可以运行,这使 LwIP协议栈适合在低端嵌入式系统中使用。LwIP的特性如下:支持多网络接口下的IP转发,支持ICMP协议,包括实验性扩展的的UDP(用户数据报协议),包括阻塞控制,RTT估算和快速恢复和快速转发的TCP(传输控制协议),提供专门的内部回调接口(Raw API)用于提高应用程序性能,并提供了可选择的Berkeley接口API。http://www.sics.se/~adam/lwip/或http://savannah.nongnu.org/projects/lwip/

4、uIP

    uIP是专门为8位和16位控制器设计的一个非常小的TCP/IP栈。完全用C编写,因此可移植到各种不同的结构和操作系统上,一个编译过的栈可以在几KB ROM或几百字节RAM中运行。uIP中还包括一个HTTP服务器作为服务内容。许可:BSD许用证http://www.sics.se/~adam/uip/

5、TinyTcp

    TinyTcp 栈是TCP/IP的一个非常小和简单的实现,它包括一个FTP客户。TinyTcp是为了烧入ROM设计的并且现在开始对大端结构似乎是有用的(初始目标是68000芯片)。TinyTcp也包括一个简单的以太网驱动器用于3COM多总线卡 http://ftp.ecs.soton.ac.uk/pub/elks/utils/tiny-tcp.txt

选择一个开源协议栈可以从四个方面来考虑:
       一个是是否提供易用的底层硬件API,即与硬件平台的无关性;一个是与操作系统的内核API。协议栈需要调用的系统函数接口是否容易构造,另一个对于应用支持程度。

最关键的是占用的系统资源是否在可接受范围内,有裁减优化的空间否? 其中,BSD 栈可完整实现TCP/IP协议,但代码庞大,70KB-150KB之间,裁减优化有难度,uIP和TinyTcp代码容量小巧,实现功能精简,限制了在一些较高要求场合下的应用,如可靠性与大容量数据传输。LwIP和uC/IP是同量级别的两个开源协议栈,两者代码容量和实现功能相似,LwIP没有操作系统针对性,它将协议栈与平台相关的代码抽象出来,用户如果要移植到自己的系统,需要完成该部分代码的封装,并为网络应用支持提供了API接口的可选性。 uC/IP协议最初是针对uC/OS设计,为方便用户移植实现,同样也抽象了协议栈与平台相关代码,但是协议栈所需调用的系统函数大多参照uC/OS内核函数原型设计,并提供了协议栈的测试函数,方便用户参考,其不足在于该协议栈对网络应用支持不足。

根据以上分析,从应用和开发的角度看,似乎LWIP更得到了网上很多朋友使用的青睐;uC/IP在文档支持与软件升级管理上有很多不足,但是它最初是针对 UC/OS而设计,如果选用UC/OS作为软件基础的话,在系统函数构造方面有优势。当然你选择其他操作系统的话,可参照OS_NULL文件夹下的文件修改。以上的这些开源协议栈也并非免费,拿来就可以用,据我所知,UC/OS的母公司推出UC/OS-TCP/IP花了6人*2年的工作量,国内某公司使用 LWIP作为移植的参照,花了4-5人*2年的工作量来测试与优化协议,使用商用TCP/IP栈的高费用就不足为奇了。作为广大的爱好者学习而言,如果只是跑跑原型,实验一下效果,以上的几种开源协议栈都提供了测试的例子,应该是不错的选择。个人的看法:LWIP可优先考虑,至少网上有很多的人一块研究,参考的资料较多;UC/IP其次,如果你想深入学习TCP/IP的话,移植UC/IP是一种挑战性的工作,它尚需完善。

ffxz 发表于 2009-5-25 11:19:22

从上面可以看得出来,如果要在小型设备上跑TCP/IP协议栈,体积无疑是一个重要的衡量指标。如果<1k RAM,毫无疑问uip是首选。

但uip的功能限制也蛮多的,和RTOS配合不是太好(如果要在2K RAM上跑RTOS,估计也够残废了),实时性也比较低(其中关中断用于做数据保护)

但RAM是32K - 64K的系统呢,似乎LwIP和ucip不错。BSD TCIP/IP协议栈就不要想了,RTEMS就是用的BSD TCP/IP协议栈移植,体积是比较庞大的。ecos选择要好些,有LwIP和BSD TCP/IP协议栈的选择。

网上的资料显示,LwIP的体积大约在几十K的RAM和40K左右的ROM,这个和RT-Thread/AT91SAM7X256 0.2.4版本给出的指标是比较一致的,64K SRAM用来跑LwIP,剩余的就不多了(10K左右)。而ucip则绑定到了那个收费的ucos-ii。

RT-Thread 0.3.0版本的协议栈用的依然是LwIP,但做了改进,效果非常明显,而且依然保留了RTOS的特性。RT-Thread选择LwIP是有原因的,首先是它的功能,其次是它的体积。功能上满足大多数嵌入式设备的需求,同时体积也比较小,在优化的情况下,体积更进一步缩小了。

ffxz 发表于 2009-5-25 11:23:05

RT-Thread 0.3.0 + LwIP指标:(无shell,无文件系统的情况,最大32线程优先级)
5K SRAM静态占用,3K RAM动态占用(ping设备时)。

STM32F103VB(128K Flash, 20K SRAM)上跑RT-Thread + LwIP + Web Server没问题。

shaolin 发表于 2009-5-25 12:20:13

这个绝对要顶......

lwy86 发表于 2009-5-25 12:52:59

顶一个。
感谢ffxz帮忙!

PZLPDY 发表于 2009-5-25 18:21:54

ffxz你把以太网模块发给智林更换一下吧

kugel 发表于 2009-5-26 00:07:08

顶,有空搞到我做的板子上跑一炮!

panxiaoku 发表于 2009-5-26 07:53:25

多谢,多谢。。。要顶

PZLPDY 发表于 2009-5-27 13:15:50

ffxz,web server啥时候能搞到ZE上去呀?最近启动一个项目要做WEB应用。
打算直接用你这个系统试试.

ffxz 发表于 2009-5-27 13:22:38

是的,正在筹划这个事,刚好enc28j60也通了。

不过在这之前会把RT-Thread的文档先完善,新的文档将包含lwip相关的一些编程内容。

ffxz 发表于 2009-5-27 13:26:24

goahead webserver,按照它文档的说法,对每个连接是需要8K内存的,所以这个地方也要优化,期望值是2K。

然后还会在目前的DFS上架一层API,让它和goahead webserver去适配。(原来的goahead webserver是在s3c2410上做的,上面包含了完整的newlib库支持)

PZLPDY 发表于 2009-5-27 17:05:51

哦,看样子我只能先玩玩Libhttp了

PZLPDY 发表于 2009-5-27 17:10:43

不过我的产品上会有一片512K*16位的SRAM。每个连接8K那是小case呀。而且连接数量不会很多,就是各个局的领导查看设备的运行状态。能否先搞一个不优化的?

ffxz 发表于 2009-5-27 17:38:50

很快的,如果这几天公司不用加班的话

PZLPDY 发表于 2009-5-28 20:52:47

呵呵,那就期待你的作品

ningmeng7294 发表于 2009-5-28 21:20:46

很好,很强大,谢谢你的无私奉献。喔耶!!

xqingfeng 发表于 2009-5-30 16:06:41

赞一个

anson45 发表于 2009-6-1 00:59:42

ffxz 可以告诉我你的联系方式吗?

tdmi 发表于 2009-6-1 06:59:36

强烈支持

ffxz 发表于 2009-6-1 12:11:44

http://cache.amobbs.com/bbs_upload782111/files_15/ourdev_449633.gif
(原文件名:gmail.gif)


联系方式如上。

ffxz 发表于 2009-6-1 18:39:13

GoAhead WebServer默认情况下,64KSRAM是不够的,现在终于开始一点点往下缩了:
finsh>>list_mem()
total memory: 48264   <-- 总共可用内存
used memory : 20448   <-- 当前使用的内存
maximum allocated memory: 22824<-- 历史记录中使用的最大内存

finsh>>list_thread()
threadpristatus      sp   stack size max used   left tickerror
-------- ---- ------- ---------- ---------- ---------- ---------- ---
echo   0xc8 suspend 0x000000c0 0x00000400 0x00000124 0x00000014 000
twebsrv0x8c suspend 0x00000160 0x00000400 0x000001bc 0x00000012 000
tcpip    0x78 suspend 0x000000b8 0x00000400 0x000000dc 0x00000014 000
tidle    0xff ready   0x00000050 0x00000100 0x00000050 0x00000016 000
tshell   0x14 ready   0x00000228 0x00000800 0x00000334 0x0000005d 000
eth      0x80 suspend 0x00000088 0x00000400 0x000000a0 0x00000014 000

pri 线程优先级
sp 当前线程栈指针位置
stack size 线程栈大小
max used 历史记录中栈使用的最大位置

Kernel + LwIP + Filesystem + GoAhead WebServer
一个端午假期的成果!新版本支持线程栈溢出监测了。

PZLPDY 发表于 2009-6-1 18:49:09

呵呵,啥时候能发布呀?

PZLPDY 发表于 2009-6-1 18:50:48

外部不是还有512K 字节SRAM么。可以充分利用一下哈!

ffxz 发表于 2009-6-1 19:00:41

我试试外部的512K SRAM,上次被那块板子搞怕了,SRAM会自己变的~~

PZLPDY 发表于 2009-6-1 21:03:14

那可能是受屏幕的影响。你调外部SRAM的时候可以考虑把屏幕拿下来,或者在主程序的第一句就初始化屏幕的外部接口。
这个板子的SRAM已经经过了我无数次测验证了,请放心使用。有问题可以直接联系我

PZLPDY 发表于 2009-6-1 21:05:19

使用外部SRAM的时候要在启动代码里做相应的设置

ffxz 发表于 2009-6-2 11:38:21

哦,原来要这样啊。那如果SRAM和LCD一起用的话应该如何设置?我试试了下,即使LCD不初始化,SRAM也不可用。

PZLPDY 发表于 2009-6-2 14:57:34

SRAM要和LCD一起用的话就在main函数的第一句化调用LCD外部接口初始化函数就可以。
SRAM对应的外部接口初始化代码在启动代码里,有一个使用外部SRAM的宏定义DATA_IN_ExtSRAM。把它定义成1如下:
DATA_IN_ExtSRAMEQU1
还要把__initial_sp定义成__initial_sp    EQU 0x20000000 + Stack_Size
更详细的使用外部SRAM的例子请参考ST官方发布的库文件里的例子。
在库文件的STM32F10xFWLib2.0.3\FWLib\examples\FSMC\SRAM_DataMemory文件夹下有详细的英文说明,你可以先跑跑那个例子

ffxz 发表于 2009-6-4 06:50:55

GoAhead WebServer Ready!

这几天就开始考虑发布版本,呵呵,当然希望体积能够再缩小下来,同时也试着做几个ASP,让网页显示和Target联系起来。最终外扩的SRAM没有用起来,打算在优化RTGUI的时候再把外扩的512K SRAM放开吧。

PXJ_520 发表于 2009-6-4 11:57:53

一直都在期待GoAhead WebServer的发布

PZLPDY 发表于 2009-6-4 13:15:08

赞一个!不过ffxz你起得够早啊?
还是压根就没睡,一直再调GoAhead ?
如果真是,我再赞一个。呵呵!精神可嘉呀。
我昨天也在你的系统上移植libhttp了,目前能编译通过了,但是还有几个跟系统时间相关的函数不知道如何实现。主要是MDK的time.h里的函数,不知道咋整,还有文件操作接口不知道如何跟你的文件系统适配起来。对你的文件系统还不熟悉。弄起来比较费劲。
不知道你的文件系统的使用说明出来了没有?

aozima 发表于 2009-6-4 13:35:22

从楼主的发帖时间来看,多数时候是6:30起床白天满负荷上班大概17:00左右下班有时加班
回家后继续研究他的系统 BBS上回帖及其它联系工具的答疑解问 还要沟通协调其它成员的工作
23:30前准时睡觉偶尔过零点...

不得不叹道:"强"

ffxz 发表于 2009-6-4 13:55:35

【30楼】 PZLPDY
目前能够使用标准的文件接口了,把dfs_posix.c编译进去即可。GoAhead WebServer可以先给你一份,和你说的类似,time函数实现我现在返回了一个固定值,正在加RTC设备驱动。

【31楼】 aozima 残剑饮血
你强好不好啊,这你都能摸索出来,不得不佩服。

一般23:00前得准时睡觉的,但早上6:00也必须得起来了,小孩闹得呢,不可能睡的。

PZLPDY 发表于 2009-6-4 17:50:54

那先谢过了。如果我不在发我邮箱吧!tmb1983@163.com
我拿到之后先测测稳定性

ffxz 发表于 2009-6-4 21:34:18

ls,已经发了

今天加班加得比较累~~

ffxz 发表于 2009-7-27 20:59:59

没lpc2478的开发板呢,想从icdev那里弄个,可惜他们没货。

newbier 发表于 2009-7-27 21:45:46

lwip听说不错

ffxz 发表于 2009-7-28 09:29:51

谢谢了!只是对zlg的东西很反感。

oldtom 发表于 2009-7-28 10:08:34

ICDEV的那个2478开发板好像不带以太网的吧?

ffxz 发表于 2009-7-28 14:55:09

对于lpc2478,我们看中的是在上面能够实现更好的RTGUI效果以及动态模块加载的功能。所以基于这个目的,SDRAM是必要的。

当然我们也可以在PXA上实现这些开发工作,不过目前来看PXA上的开发进展缓慢了些。

VERY 发表于 2010-1-13 10:22:20

mark

ffxz 发表于 2010-1-13 11:40:02

这个体积优化已经合并到最新的lwip 1.3.2中(RT-Thread google svn中的版本),争取能够合并到官方版本中。

另外和LwIP相关的几个其他优化会继续下去,主要体现在使用bsd socket的性能,lwip本身的性能上,这个是基于RT-Thread的OS监控工具来完成的,因为在使用监控工具的过程中,发现LwIP在使用RTOS的情况下,某些地方处理得不是太好。

RT-Thread推荐使用bsd socket的方式编写代码,因为bsd socket在网络编程上已经是一个事实的标准,在linux下通用,在windows下也大部分通用。同样遵循bsd socket风格的网络代码,可以非常容易的移植到不同的平台中,这对于代码(自身技术)的积累无疑是非常重要的。所以RT-Thread这边希望bsd socket接口能够做得更完善些,离标准更进一些,性能也不太差。而对于0.4.0版本的RT-Thread,也会试图推出完全POSIX的接口,特别是pthread实现。

moying050 发表于 2010-1-14 20:59:54

我用fsl的mcf52235 32kB的ram用freertos+lwIP发现ram不够了,总共要近50KB的ram才能跑,现在想优化下lwIP,不知道在哪几方面入手,可以适当降低以太网的传输速率,还望牛人们多多点拨啊

qzzz 发表于 2010-1-15 05:40:57

太强了!

shotstar 发表于 2010-1-15 09:12:52

谢谢了 了解了

mushk 发表于 2010-1-15 11:14:23

学习学习

ffxz 发表于 2010-1-15 15:07:35

回复【46楼】moying050
我用fsl的mcf52235 32kB的ram用freertos+lwIP发现ram不够了,总共要近50KB的ram才能跑,现在想优化下lwIP,不知道在哪几方面入手,可以适当降低以太网的传输速率,还望牛人们多多点拨啊
-----------------------------------------------------------------------

比较下RT-Thread在LwIP上做的修改就知道了,目前google svn上的LwIP版本是1.3.2,对比下就知道了。

呵呵,或者用用RT-Thread/ColdFire的版本。

moying050 发表于 2010-1-15 15:09:57

回复【50楼】ffxz
-----------------------------------------------------------------------

我先看看那个代码吧,不能优化再用RT-Thread的版本

顺便问下,RT-thread好吗?跟其他rtos相比

ffxz 发表于 2010-1-15 15:16:23

从RT-Thread开发人员的角度说,好,永远好,^-^ RT-Thread是有ColdFire版本的。

从技术人员的角度说,离Nucleus,ThreadX这些老牌RTOS有一段距离。再从RT-Thread开发人员的角度说,今年,0.4版本这个分支一定要弥补这个距离。

zchong 发表于 2010-1-15 15:27:57

ffxz 豪言万丈!
顶!!!!!!!!!!!

moying050 发表于 2010-1-15 15:32:10

回复【52楼】ffxz
-----------------------------------------------------------------------

支持牛人啊

moying050 发表于 2010-1-15 15:52:22

回复【52楼】ffxz
-----------------------------------------------------------------------

我在http://code.google.com/p/rt-thread/上只看到了0.30的,而且也没看到支持coidfire

问下哪有吗?给个链接吧,谢了哈

zchong 发表于 2010-1-15 15:52:45

回复【52楼】ffxz
从RT-Thread开发人员的角度说,好,永远好,^-^ RT-Thread是有ColdFire版本的。
从技术人员的角度说,离Nucleus,ThreadX这些老牌RTOS有一段距离。再从RT-Thread开发人员的角度说,今年,0.4版本这个分支一定要弥补这个距离。
-----------------------------------------------------------------------

"从技术人员的角度说,离Nucleus,ThreadX这些老牌RTOS有一段距离"这个指的是哪些方面呢?

t2397362 发表于 2010-2-8 17:45:01

马克

moying050 发表于 2010-3-1 11:22:48

比较了下RTT下的lwIP代码和官方的lwIP代码,发现在协议栈实现和内存管理上基本没有改动,看opt.h和lwipopts.h,也没发现很大的特别之处,想问下ffxz,协议栈的优化是怎么实现的,希望能大致指明个方向,现在都没头绪的,谢谢了

xiesx1985 发表于 2010-3-8 09:51:10

真是强人啊

clever0725 发表于 2010-3-8 13:23:43

好东西

luck851 发表于 2010-7-28 17:17:03

mark

eworker 发表于 2010-7-31 09:29:09

回复【58楼】moying050
比较了下rtt下的lwip代码和官方的lwip代码,发现在协议栈实现和内存管理上基本没有改动,看opt.h和lwipopts.h,也没发现很大的特别之处,想问下ffxz,协议栈的优化是怎么实现的,希望能大致指明个方向,现在都没头绪的,谢谢了
----------------------------------------------------------------------

LWIP太耗内存了。只开了UDP,居然要耗掉15K RAM。

ZLG LWIP应用指南\UDP服务器实验V 0.01\Debug\Obj:
    Main.o                104
    Target.o               48
    etharp.o            2 644       16      201
    icmp.o                696
    inet.o               54
    inet_chksum.o         400
    init.o               12
    ip.o                1 028               2
    ip_addr.o            82      4
    lwiplib.o             400       20       72
    mem.o               1 016             4 129
    memp.o                392       24    9 464
    netif.o               230               9
    pbuf.o                982
    raw.o               132               4
    startup_ewarm.o         6      240    2 048
    stats.o                                 192
    stellarisif.o         948               188
    sys_arch.o             30
    udp.o               1 104               4
    -------------------------------------------
    Total:             10 308      304   16 313

richey07 发表于 2010-8-18 17:59:08

mark

sun8406 发表于 2010-11-24 15:52:21

mark

kaivy4812 发表于 2010-12-5 10:03:11

mark

eworker 发表于 2010-12-28 10:49:10

回复【58楼】moying050
比较了下rtt下的lwip代码和官方的lwip代码,发现在协议栈实现和内存管理上基本没有改动,看opt.h和lwipopts.h,也没发现很大的特别之处,想问下ffxz,协议栈的优化是怎么实现的,希望能大致指明个方向,现在都没头绪的,谢谢了
-----------------------------------------------------------------------

同问

ffxz 发表于 2010-12-28 23:01:50

其实这个修改非常微不足道的,实质就是把lwip的内存管理转移到RT-Thread的内存管理上去了。关键点在memp.c

kammari 发表于 2011-3-18 16:44:10

这个必须要mark的

James_King 发表于 2011-5-5 21:30:05

mark

ljt8015 发表于 2011-5-13 15:22:56

强大的优化!
具体优化了些什么?

eworker 发表于 2011-5-13 15:49:30

回复【70楼】ljt8015
-----------------------------------------------------------------------

回复【67楼】ffxz
其实这个修改非常微不足道的,实质就是把lwip的内存管理转移到rt-thread的内存管理上去了。关键点在memp.c

-----------------------------------------------------------------------

看这里

dongfangxuri 发表于 2011-5-18 21:39:35

seaso 发表于 2011-5-19 10:06:45

顶牛人

qt_girl 发表于 2011-5-22 13:49:18

不错!

373518122 发表于 2011-6-11 16:04:02

mark

yulri 发表于 2011-7-15 16:04:06

mark!

ysdaniel 发表于 2011-7-25 11:56:40

回复【楼主位】ffxz
-----------------------------------------------------------------------

mark

zhangdawei 发表于 2011-8-29 17:27:45

mark

scat-01 发表于 2011-8-30 21:37:57

mart

ffxz 发表于 2011-8-30 23:55:31

嗯,上一个RT-Thread + LwIP速度测试不知道大家是否注意到了,这个算是我目前看到的cortex-m3上tcp速度最快的了
接收到了7MB/s,发送到了5.2MB/s

采用的是LPC1768,其他的,例如STM32F107、STM32F207还没做对比实验。可惜LPC1768没有硬件的IP/UDP/TCP checksum,否则应该更快!

yosion1986 发表于 2011-8-31 15:42:08

回复【楼主位】ffxz
-----------------------------------------------------------------------

请问lwip里面那个自带的ppp到底怎么移植啊

qqwuying2 发表于 2011-9-20 09:56:57

这帖子时间可够长的。。。。。。

tank979 发表于 2011-10-27 20:30:09

嘿嘿MARK

makerpace 发表于 2011-11-8 09:22:12

想问一下ffxz大侠,16K SRAM够不够整lwIP,裸机,速度可以降。

zgdqty 发表于 2011-11-8 21:04:24

这个介绍好啊!

aahui 发表于 2011-12-6 09:17:01

不要沉

prozm 发表于 2012-2-1 16:01:29

mark

liutingpeng 发表于 2012-2-1 17:54:43

ffxz大侠,什么时候出书,好买一本研究。

lcyc51 发表于 2012-3-31 10:43:13

mark......谢谢分享

tieyupishao 发表于 2012-4-23 15:56:14

ffxz真是N人啊!!mark学习

kanwei 发表于 2012-5-13 11:30:50

支持~!!

whxiaowang 发表于 2012-5-13 13:34:18

学习。。。。

2006lc 发表于 2012-5-13 19:16:15

谢谢分享

fenglove 发表于 2012-5-30 11:20:17

谢谢分享...

hejiang177 发表于 2012-6-16 18:11:22

这个一定要顶一下,正在用LWIP

healthywolf 发表于 2012-6-23 20:26:33

现在看,还是很激动!正在学习中!

kevin_me 发表于 2012-7-10 19:00:59

mark 以备后用

bitant 发表于 2012-7-17 19:35:54

RT-Thread/LwIP,很期待弄一下。

richards 发表于 2012-7-17 23:16:05

有人有 goahead的 资料么?找了好久都没找到资料啊

njchenmin 发表于 2012-7-21 16:29:47

我也学习一下

eehong 发表于 2012-12-10 23:10:16

ffxz 发表于 2010-12-28 23:01 static/image/common/back.gif
其实这个修改非常微不足道的,实质就是把lwip的内存管理转移到RT-Thread的内存管理上去了。关键点在memp.c ...

Mark一下,回头看看。

ctgutc 发表于 2013-1-5 20:16:56

ffxz 发表于 2010-12-28 23:01 static/image/common/back.gif
其实这个修改非常微不足道的,实质就是把lwip的内存管理转移到RT-Thread的内存管理上去了。关键点在memp.c ...

MARK 此处

qinmeng 发表于 2013-1-7 09:27:07

本帖最后由 qinmeng 于 2013-1-7 09:38 编辑

ffxz 发表于 2010-12-28 23:01 static/image/common/back.gif
其实这个修改非常微不足道的,实质就是把lwip的内存管理转移到RT-Thread的内存管理上去了。关键点在memp.c ...

我只发现lwip的mem.c文件被RT-Thread的mem.c文件替换了,难道RT-Thread还修改了lwip的memp.c文件么?我去好好看下~~

没发现有改动,倒是看到lwip1.4.1跟lwip1.4.0源代码有3、4行的差别
页: [1] 2
查看完整版本: RT-Thread + LwIP,强大的优化