是否有人对以下嵌入式TCP / IP协议栈有特别好的(或坏的)体验?
我需要一个坚实的easy-to-port堆栈。代码大小并不是非常重要,性能是相对重要的,但是易用性和移植性非常重要。
该系统可能会使用RTOS,这还没有决定,但在我的经验中,大多数堆栈可以使用或不使用RTOS。最有可能的是,该平台将是ARM变体(很可能是ARM7或CM3 )。
不要太担心将堆栈连接到以太网驱动程序,所以在选择中这不是一个很大的优先级。
我对从操作系统(如Linux、RTEMS等)中提取堆栈不是很感兴趣,
我也不感兴趣的商业产品,如Interniche,Micrium等.
栈不需要各种花哨,不需要IPv6,我也不需要任何东西(网络服务器,FTP服务器等等)。事实上,我可能只使用UDP,尽管我可以设想一些TCP更可取的场景。
当然,我所错过的其他堆栈的经验也非常有趣。
感谢您的时间和投入。
发布于 2009-07-29 12:30:50
我已经广泛地使用了uIP和lwIP。
uIP
lwIP
编辑:
我们从来没有在RTOS中使用过,因为从来没有必要。
发布于 2009-07-22 18:23:01
+1表示lwIP。
几年前,我们在一个项目中成功地使用了这个方法,发现它通常是非常可靠的。我们发现并修复了一些问题(通常是TCP代码中的角落案例),这些问题都是我们提交给项目的,尽管从那时起项目已经进行了相当多的工作,但我们通常并不认为它缺乏任何特性。
正如您所怀疑的,它将与RTOS一起工作,也可以不使用RTOS。用RTOS在我们的系统上运行大约需要一个星期,其中包括我们必须做的更改,以支持一个不寻常的DSP编译器。因为你可能是在使用GCC的手臂,你可以避免任何这种努力。
它确实包含了比您所需要的更多的特性,但是如果您的需求在几年后发生了变化,那么您最好从一个更实质性的堆栈开始。
发布于 2009-07-22 00:34:46
lwIP
我在一个带有3G调制解调器的项目上工作,在这个项目中,我们需要一个基于PPP的UDP/IP堆栈(没有TCP)。我们缩小到uIP和lwIP。我们最终选择了lwIP,因为它已经有购买力平价(uIP没有),而且我们有足够的内存。
我们的特定项目不使用实时操作系统,没有实时操作系统也可以使用lwIP。
我并没有直接参与lwIP代码的移植,尽管我使用调制解调器驱动程序来与它进行接口。我的印象是,对于我们之前有TCP/IP经验的工程师来说,移植需要几周的时间才能顺利进行。lwIP代码已经被许多人黑了,因此有一些粗糙的边缘(例如,有人在某个地方添加了一个单独的malloc() ),但是经过一些调整后,它对我们有效。我们用一个独立的验证套件测试了它。
总之,它为我们的UDP/IP和PPP需求提供了“适当的功能”(但我不能评论它的TCP功能)。
https://stackoverflow.com/questions/1160362
复制相似问题