ZC·Shou
深入研究,分享最纯粹的技术干货
展开
-
LwIP 之十 详解 TCP RAW 编程、示例、API 源码、数据流
LwIP 使用一个 struct tcp_pcb 结构来封装一个 TCP 通信实例,一个 tcp_pcb 处理一个 TCP 通信。struct tcp_pcb 封装了通信所需要所有参数,而对于数据包,则通过回调函数的形式传递给用户(由于通信涉及链接,因此涉及的回调比较多 tcp_recv_fn recv;、tcp_connected_fn connected;、tcp_poll_fn poll; 等)原创 2024-05-27 08:30:00 · 936 阅读 · 1 评论 -
LwIP 之九 详解 UDP RAW 编程、示例、API 源码、数据流
在 LwIP 中,UDP RAW 编程被设计为以 struct udp_pcb 为核心的各种 API。我们通过 LWIP_UDP == 1 就可以启用 /src/core/udp.c 中的相关代码实现,对外的各 API 位于 /src/include/lwip/udp.h 中。原创 2024-05-13 08:00:00 · 587 阅读 · 0 评论 -
LwIP 之八 详解 IP RAW 编程、示例、API 源码、数据流
在 LwIP 中,IP RAW 编程被设计为以 struct raw_pcb 为核心的各种 API。我们通过 LWIP_RAW == 1 就可以启用 /src/core/raw.c 中的相关代码实现,对外的各 API 位于 /src/include/lwip/raw.h 中。每一个 raw_pcb 都可定制一个特定协议类型的 IP 数据包,如 ICMP 包、TCP 包、UDP 包等。原创 2024-04-13 08:00:47 · 833 阅读 · 0 评论 -
LwIP 之七 详解 PBUF 结构、通信数据流、性能优化
数据包的复制在协议栈中是非常耗时的一个操作。LwIP 协议栈内部使用 pbuf 这种数据结构来对数据进行传递,灵活的 pbuf 结构体使得数据在不同网络层之间传递时可以减少内存的开销,避免频繁的内存复制,增加数据在不同层之间传递的速度。原创 2023-05-30 10:44:27 · 6084 阅读 · 2 评论 -
LwIP 之六 详解内存池(memp.c/h)动态内存管理策略
对于嵌入式开发来说,内存管理及使用是至关重要的,内存的使用多少、内存泄漏等时刻需要注意!合理的内存管理策略将从根本上决定内存分配和回收效率,最终决定系统的整体性能。LwIP 就提供了 动态内存堆管理(heap)和 动态内存池管理(pool)两种简单却又高效的动态内存管理机制。原创 2018-08-01 17:49:28 · 9416 阅读 · 4 评论 -
LwIP 之五 详解内存堆(mem.c/h)动态内存管理策略
对于嵌入式开发来说,内存管理及使用是至关重要的,内存的使用多少、内存泄漏等时刻需要注意!合理的内存管理策略将从根本上决定内存分配和回收效率,最终决定系统的整体性能。LwIP为了能够灵活的使用内存,为使用者提供两种简单却又高效的动态内存管理机制:动态内存堆管理(heap)、动态内存池管理(pool)。这两中内存管理策略的实现分别对应着源码文件mem.c/h和memp.c/h。原创 2018-05-13 11:24:56 · 12466 阅读 · 10 评论 -
LwIP 之四 超时处理(timeouts.c/h)、定时器( timers.c/h)
在LwIP中很多时候都要用到超时处理,超时处理的实现是 TCP/IP 协议栈中一个重要部分。LwIP 为每个与外界网络连接的任务都有设定了 timeout 属性,即等待超时时间。超时处理的相关代码实现在 `timeouts.c/h` 中。原创 2018-05-10 19:33:55 · 13677 阅读 · 10 评论 -
LwIP 之三 详解 sys_arch 操作系统隔离层的实现
LwIP 为了适应不同的操作系统,在代码中没有使用和某一个操作系统相关的系统调用和数据结构。而是在LwIP和操作系统之间增加了一个操作系统封装层。操作系统封装层为操作系统服务(定时,进程同步,消息传递)提供了一个统一的接口。原创 2018-05-04 18:46:21 · 8132 阅读 · 1 评论 -
LwIP 之二 网络接口 netif(netif.c、ethernetif.c、slipif.c)、多网口处理
LwIP 使用 struct netif 来描述一个硬件网络接口。netif 是 LwIP 抽象出来的各网络接口,协议栈可以使用多个不同的接口,而 ./src/netif/ethernet.c、./src/netif/slipif.c 就提供了netif 访问硬件的各接口。原创 2018-05-04 14:10:24 · 15110 阅读 · 1 评论 -
LwIP 之一 详解源码目录文件、及移植过程、版本变更
LwIP 是 TCP/IP 协议套件的一个小型独立实现。LwIP TCP/IP 实现的重点是减少 RAM 使用同时仍然有一个完整的 TCP。 这使得 lwIP 适合使用在具有数 10k 字节的可用 RAM 和空间大约 40k 字节的代码 ROM 的嵌入式系统中。原创 2018-02-02 08:55:09 · 14948 阅读 · 10 评论