四款主流的轻量级嵌入式网络协议栈

740f2d92f159ebdf83bffd4f399f67e7.gif

正文


大家好,我是bug菌~

明天又周五了,相信今天的心情应该是不错的~

在嵌入式开发软件中网络协议栈实在是太重要了,可以说现在凡是被称为智能的设备,几乎都需要具备联网的功能。

然而让自己手上的平台具有联网的功能,基本上都会要选择一款软件网络协议栈,当然啦用硬件协议栈也挺多的,不多相对来说功能比较容易受限。

而软件协议栈徒手写的话,可以说对于大部分普通开发者而言是不太现实的。毕竟成熟的开源的网络协议栈挺多的,重复造轮子其实意义并不大。

那么今天bug菌跟大家简单介绍一下四款嵌入式中应用比较广泛的网络协议栈。

1

LWIP

30b0a8162ae3ffbdb1ad3040a8c64e2d.png

扫描二维码关注公众号,回复: 17166478 查看本文章

lwIP 是一个非常流行的开源 TCP/IP 协议栈,最初是在瑞典计算机科学研究所的计算机和网络架构实验室联合开发,它专门为嵌入式系统设计,具有低内存占用和高效率的特点。

lwIP是TCP/IP协议的一个小型独立实现,重点是减少RAM的使用,同时仍然具有全规模的TCP。这使得lwIP适用于具有数十千字节空闲RAM和大约40千字节代码ROM空间的嵌入式系统。

同时其具有TCP、UDP、IP、ICMP、ARP、DNS、SNMP、DHCP等协议的支持,并且易于移植到各种操作系统和处理器体系结构上。目前在非常多的物联网模块或者嵌入式操作系统重都有广泛的应用。

2

uIP

uIP协议栈是专为8/16位的嵌入式微处理器设计的小型TCP/IP协议栈。

去掉了TCP/IP一些不常用的功能,采用BSD授权,遵循RFC标准,完全由C语言编写。

它以库函数的形式提供给嵌入式 Internet 应用开发人员,并采用了一种基于事件驱动的程序模型(说白了就是不断地去轮询),并且还不使用动态内存,都是共用同一个缓存区,基本上不存在数据的copy,从而大大减少了代码容量和 RAM 的占用量,在单片机中Flash和RAM都占用比较小。

可以说,在51单片机上运行也很丝滑。

3

FreeRTOS-Plus-TCP

适用于 FreeRTOS 的开源、可扩展和线程安全 TCP/IP 堆栈。

它提供了一个熟悉的基于标准 Berkeley 套接字的接口, 简单易用,便于快速学习。 高级用户还可以使用替代回调接口。

功能和RAM占用空间完全可扩展,使FreeRTOS-Plus-TCP 既适用于较小的低吞吐量微控制器, 也适用于较大的高吞吐量 微处理器。

ad3e1037984f5b9e05f37ba6169fb72d.png

4

RL_TCP net

RL-TCPnet 组件来自于 RL-ARM 库,而RL-RAM又是Keil MDK自来的实时运行库,RL-TCPnet 是一个TCP/IP 协议协议栈。该堆栈旨在减少内存使用量和代码大小。这使得它适用于资源有限的嵌入式系统设备。

RL-TCPnet 库是ARM7、ARM9、Cortex-M3等软件架构的底层思实现软件。

用户应用程序使用标准 C 结构编写,并且使用 ARM 编译器编译,并且其中已经集成了web服务器、SMTP发客户端、SNMP Agent、DNS解析等高层应用,且稳定性还是挺不错的。

最后

      好了,今天就跟大家分享这么多了,如果你觉得有所收获,一定记得点个~

bug菌唯一、永久、免费分享嵌入式技术知识平台~

推荐专辑  点击蓝色字体即可跳转

☞  MCU进阶专辑 1bd507b87539bf1c3baab5f25e4ed060.gif

☞  嵌入式C语言进阶专辑 5cdc0e54f419f7db6c39e5128114bee2.gif

☞  “bug说”专辑 79af00ac531d8ea784518edd2d98753c.gif

☞ 专辑|Linux应用程序编程大全

☞ 专辑|学点网络知识

☞ 专辑|手撕C语言

☞ 专辑|手撕C++语言

☞ 专辑|经验分享

☞ 专辑|电能控制技术

☞ 专辑 | 从单片机到Linux

c0a80ba759e705c892a0dc926ea4281d.gif

猜你喜欢

转载自blog.csdn.net/qq_33471732/article/details/135007474