相关文章

ZYNQ LWIP实验

0、说明 xilinx vitis创建demo工程的时候,自带了lwip案例。已经被xilinx支持的很好,最多根据使用的phy不同,增加对自己phy的支持。 移植工作已经被xilinx做好了。 1、创建vivado工程 仅仅以PS端网卡为力,在vivado中增加对enet的使…

LwIP的ARP协议实现(5)

LwIP的ARP协议实现系列文章 LwIP中的ARP实现(1)之 ARP缓存表的数据结构 LwIP中的ARP实现(2)之 ARP缓存表的超时处理 LwIP中的ARP实现(3)之 发送ARP请求包 LwIP中的ARP实现(4)之 ARP…

【lwIP(第三章)】内存管理

目录 一、内存管理简介二、lwIP内存堆和内存池应用三、lwIP内存堆简介1. First Fit算法2. lwIP内存堆原理解析2.1 mem_init程序解析2.2 mem_malloc程序解析2.3 mem_free程序解析 四、lwIP内存池简介1. 实现lwIP内存池的文件2. lwIP内存池函数2.1 memp_init()2.2 memp_malloc()2…

LwIP中的ARP协议实现(1)

LwIP的ARP协议实现系列文章 LwIP中的ARP实现(1)之 ARP缓存表的数据结构 LwIP中的ARP实现(2)之 ARP缓存表的超时处理 LwIP中的ARP实现(3)之 发送ARP请求包 LwIP中的ARP实现(4)之 ARP…

LWIP热插拔功能实现

0 工具准备 1.lwip 1.4.1 2.RTOS(本文使用rt-thread)1 使能连接变化回调功能 打开lwipopts.h,将宏定义LWIP_NETIF_LINK_CALLBACK的值设为1,如下: #define LWIP_NETIF_LINK_CALLBACK 1这个宏定义被使能后会将…

学会Zynq(10)lwIP简介

从本篇开始,将花大量篇幅介绍Zynq在裸机环境下以太网的使用。裸机时最方便的就是使用SDK已经集成了的lwIP 1.4.1库,我们将先了解lwIP的相关知识,然后再以实例的方式学习TCP、UDP的程序设计方法。 研究背景 在过去几年里,将计算机…

学会Zynq(13)lwIP官方应用程序示例

XAPP1026中记录一些lwIP的应用程序示例和性能测试情况,不过提供的示例工程都是在几个Xilinx的官方板子中跑的。可能很多学生没有机会碰到这些板子。。。另外这份应用笔记使用的SDK 2014.3版本也比较老,那个版本lwip还没有直接集成到SDK中。本文将这份笔记…

学会Zynq(12)lwIP 1.4.1库的配置与使用

lwIP概述 lwIP是一个用于嵌入式系统的开源TCP/IP协议集,是一套可以独立运行的栈,无需依赖操作系统,但也可以与操作系统同时使用。lwIP提供了两套API(术语为A05PI),供用户选择: RAW API&#x…

【lwIP(第一章)】lwIP入门

lwIP是一个小型开源的TCP/IP协议栈(阉割的TCP/IP协议) lwIP适用于:云台接入、无线网关、远程模块、工控控制器、嵌入式NAT无线路由器、网络摄像头……… 目录 一、TCP/IP协议栈1. TCP/IP协议栈结构体2. TCP/IP协议栈的数据封装与解封装 二、l…

《嵌入式 - Lwip开发指南》第3章 移植LWIP(无系统)

开发环境: Keil:V5.30 开发板:STM32 Nucleo-F746ZG开发板 LWIP:V2.1.2 PHY芯片:LAN8742A 3.1 STM32CudeMX配置工程 由于STM32CudeMX内集成LWIP(TCP/IP协议栈),不需要我们进行复杂的…

《嵌入式 - Lwip开发指南》第2章 LWIP开发环境简介

开发环境: Keil:V5.30 开发板:STM32 Nucleo-F746ZG开发板 LWIP:V2.1.2 PHY芯片:LAN8742A 在LWIP 教程中 PHY 层使用的是LAN8742A芯片,相当于物理层, STM32F746自带的 MAC 层相当于数据链路层,而…

lwIP更新记02:网络接口标志(一个标志只做一件事)

从 lwIP-2.0.0 开始,网络接口 netif 的 up 标志修改为管理标志,up标志不再具有以前的 IP4 地址有效 含义。 什么是网络接口 netif ? 网络接口 属于链路层范畴,它旨在对具体网络硬件、软件进行统一封装,并为协议栈上层&…

STM32入门开发: LWIP网络协议栈移植(网卡采用DM9000)

一、环境介绍 MCU: STM32F103ZET6 代码开发工具: Keil5 TCP/IP协议栈: LWIP 网卡: DM9000 本篇文章主要讲解如何在STM32F103工程里添加移植LWIP协议,最终完成TCP服务器、TCP客户端的通信测试。 网卡采用的是DM9000,工程代码中,采用STM32…

lwIP更新记08:TCP 回调函数中调用 tcp_abort 终于安全了

从 lwIP-1.4.0 开始,tcp 回调函数中调用 tcp_abort 函数终于安全了。 在此之前,如果从 tcp 回调函数中调用 tcp_abort,则会访问未分配的内存。 应用程序关闭连接,正常情况下是调用 tcp_close 函数,经过 4 次握手安全的…

lwIP更新记06:申请 TCP 控制块(tcp_alloc)

从 lwIP-2.0.0 开始,申请 tcp_pcb 控制块的逻辑发生了变化。 每个 tcp 连接都必须有一个 PCB 控制块 ,使用函数 tcp_new() 申请 PCB 控制块。tcp_new 函数代码如下所示: /*** Creates a new TCP protocol control block but doesnt place it…

《嵌入式 - Lwip开发指南》第5章 LWIP测速

最近有个网友在询问关于LWIP的速度,本文就LWIP网速做个简单测试。为了对比,本文将使用无系统和有系统两种环境。 5.1网络测速工具介绍 不过在测速之前,需要介绍下测速的工具,这里有两个软件:iPerf与jperf。 iPerf 是…

lwIP 细节之一:TCP 最大链接数

lwIP 协议栈为每个 TCP 连接分配不同的 TCP_PCB 控制块。然而 lwIP 能分配的 TCP_PCB 控制块最大数目是编程人员指定的。这是因为嵌入式硬件 RAM 都很少,而每个 TCP_PCB 都要占用 RAM,具体数目根据配置的不同而不同,我这边的典型配置每个 TCP…

lwIP 操作系统模拟层

注1:除非特别说明,以下内容针对 lwIP 2.0.0 及以上版本。 注2:操作系统使用 FreeRTOS contrib 2.1.0 给出了一个 lwIP 的操作系统模拟层,使用的操作系统为 FreeRTOS。模拟层位于:\contrib-2_1_0\ports\freertos 。 宏…

lwIP 细节之七:ARP 相关知识

ARP 表项的最大存活时间与宏 ARP_MAXAGE 相关,默认为 240 x 5000ms 20 分钟。当 ARP 表项还有最后一分钟(由宏 ARP_AGE_REREQUEST_USED 控制)存活时间时,lwIP 重发 ARP 请求。发出 ARP 请求后,最多等待 5 x ARP_TMR_I…

lwIP更新记01:全局互斥锁替代消息机制

从 lwIP-2.0.0 开始,在 opt.h 中多了一个宏开关 LWIP_TCPIP_CORE_LOCKING,默认使能。这个宏用于启用 内核锁定 功能,使用 全局互斥锁 实现。在之前,lwIP 使用 消息机制 解决 lwIP 内核线程安全问题。消息机制易于实现,…