(免费)嵌入式TCP/IP堆栈的经验?

Dan*_*Dan 33 embedded networking tcp rtos firmware

有没有人对以下任何嵌入式TCP/IP堆栈有特别好(或坏)的经验?

我的需求是一个坚固,易于端口的堆栈.代码大小并不十分重要,性能相对重要,但易用性和移植非常重要.

系统可能会使用尚未确定的RTOS,但根据我的经验,大多数堆栈可以在有或没有RTOS的情况下使用.该平台很可能是ARM变体(很可能是ARM7或CM3).

不太关心将堆栈连接到以太网驱动程序,因此这不是选择中的重中之重.

我对从Linux,RTEMS等操作系统中提取堆栈并不十分感兴趣.

我也对Interniche,Micrium等商业产品不感兴趣......

堆栈不需要各种各样的铃声和口哨,不需要IPv6,我不需要任何东西(Web服务器,FTP服务器等).事实上,我可能会只使用UDP,虽然我可以设想一些优先使用TCP的方案.

我错过的其他筹码经验当然也非常有趣.

感谢您的时间和意见.

Tim*_*Tim 17

我广泛使用了uIP和lwIP.

uIP的

  • 很棒,如果你只想要一些基本的东西,如引导程序
  • 占地面积小.
  • 使用轮询所以我们从来没有超过3kbit :-(
  • 没有DHCP'开箱即用'
  • UDP支持不佳

LWIP的

  • 完全中断驱动速度更快(~x10)
  • 包括带故障转移AutoIP的DHCP
  • UDP与多播
  • 还有更多

编辑:
我们从来没有使用RTOS,因为从来没有需要.


uke*_*ded 11

lwIP为+1.

几年前我们在一个项目上成功地使用了它,发现它通常非常可靠.我们发现并修复了我们提交回项目的一些问题(通常是TCP代码中的极端情况),尽管该项目已经发生了很大变化,但我们通常没有发现它缺少任何功能.

正如您怀疑它可以使用或不使用RTOS.使用RTOS在我们的系统上运行大约花了一周时间,其中包括我们为支持不寻常的DSP编译器而必须进行的更改.由于您可能在ARM上使用GCC,因此您可以避免任何这种努力.

它确实包含了比你需要的更多的功能,但如果你的需求在几年内改变了,那么你最好开始使用更大的堆栈.


Cra*_*een 8

LWIP的

我使用3G调制解调器开展了一个项目,我们需要在PPP之上使用UDP/IP堆栈(无TCP).我们缩小到uIP和lwIP.我们最终选择了lwIP,因为它已经有了PPP(uIP没有),而且我们有足够的RAM来备用.

我们的特定项目没有使用RTOS,没有RTOS就可以使用lwIP.

我没有直接参与移植lwIP代码,尽管我使用调制解调器驱动程序与它连接.我的印象是,对于具有以前TCP/IP经验的工程师来说,移植需要花费几周时间才能完成所有工作.lwIP代码已被很多人攻击,因此有一些粗糙的边缘(例如某人扔在某个地方的某个单独的malloc())但经过一些调整后它对我们有用.我们使用独立验证套件对其进行了测试.

总之,它对我们的UDP/IP和PPP需求"适当地起作用"(但我无法评论其TCP功能).