首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
lwip专题
ZYNQ LWIP (RAW API) UDP函数学习
1 RAW API接口 RAW API是基于回调函数实现的API接口,它是很底层的API接口,这需要开发者对LwIP有较深的了解才能很好使用它,RAW API的核心就是对控制块的处理,因为对于报文数据的处理、注册回调函数等都是需要开发者自己去实现,都是比较麻烦的,但是有一个优点,那就是处理数据效率高。 2 RAW API的UDP函数说明 udp_new()–新建控制块 在使用UDP协议进行通
阅读更多...
TQZC706开发板教程:LWIP自环测试
本例程基于ZC706开发板实现LWIP自环通讯测试。使用开发板的网口与电脑或路由器等设备连接,使开发板与电脑在同一局域网内,使用telnet工具连接开发板,进行LWIP自环测试。 LWIP自环测试工程在Hello World项目上进行修改,vivado项目不需要有修改直接打开vitis,如下图所示点击pla...-->Board...-->Mod...-->勾选lw
阅读更多...
【ZYNQ MPSoC开发】lwIP TCP发送用于数据缓存的软件FIFO设计
设计背景 任务是在ZYNQ的PS上使用裸机运行lwIP协议栈使用TCP把PL端通过AXI DMA传来的将近100K采样率的ADC数据发送出去,但由于数据带宽很大,有853.3mbps,所以在每一次AXI DMA简单传输结束后,lwIP未必有足够的发送buffer立即把数据发送走,如果是发送完再进行下一次简单传输的思路,则会很大地限制了整个系统的带宽,一个简单的思路是每次传输完成后判
阅读更多...
《嵌入式 - Lwip开发指南》第3章 移植LWIP(无系统)
开发环境: Keil:V5.30 开发板:STM32 Nucleo-F746ZG开发板 LWIP:V2.1.2 PHY芯片:LAN8742A 3.1 STM32CudeMX配置工程 由于STM32CudeMX内集成LWIP(TCP/IP协议栈),不需要我们进行复杂的移植,只需简单的配置。 1.选择时钟源 在前文已经讲过了,这里使用MCO,所以HSE选择BYPASS旁路,也就是ST-Li
阅读更多...
《嵌入式 - Lwip开发指南》第2章 LWIP开发环境简介
开发环境: Keil:V5.30 开发板:STM32 Nucleo-F746ZG开发板 LWIP:V2.1.2 PHY芯片:LAN8742A 在LWIP 教程中 PHY 层使用的是LAN8742A芯片,相当于物理层, STM32F746自带的 MAC 层相当于数据链路层,而 LWIP 提供的就是网络层、传输层的功能,应用层是需要用户自己根据应用需求去实现的。 本文将介绍整个网络开发环境所需的环
阅读更多...
TQRFSOC开发板47DR LWIP自环测试
本例程基于RFSOC 47DR开发板实现LWIP自环通讯测试。使用开发板的网口与电脑或路由器等设备连接,使开发板与电脑在同一局域网内,使用telnet工具连接开发板,进行LWIP自环测试。 LWIP自环测试工程在Hello World项目上进行修改,首先打开vivado,修改设计文件中的ZYNQ核的配置。LWIP除了用到网口还需要用到定时器,双击ZYNQ核-->添加
阅读更多...
stm32f103zet6 DM9000 UCOSII LWIP 快速集成modus tcp
之前使用stm32f103rbt6芯片完成了集成 freemodbus modbus rtu参照:点击打开链接 现使用stm32f103zet6 DM9000 UCOSII LWIP 集成modus tcp,类似于集成modbus rtu 首先参照原子官方提供的战舰V3 UCOSII+LWIP试验 为基础模板 第二:添加modbus 、 port的C文件和H文件,参照 点击打开链接 第三
阅读更多...
LWIP相关知识
五、 Lwip协议栈移植过程 1、将LwIP源码添加到工程中,只需要将LwIP源码中的src文件文件夹添加进去即可。 2、移植头文件:想LwIP跑起来,还需一些头文件的支持,分别是lwipopts.h、cc.h、pref.h等。 3、移植网卡驱动:ethernetif.c文件就是存放这些底层驱动函数的,LwIP的contrib包中就包含这个文件的模板,我们需要在这个基础上修改。对底层驱动进行编写
阅读更多...
基于FRDM-MCXN947的LwIP通信与外设控制(MCUXpresso+LwIP+TSI)
目录 项目介绍硬件介绍项目设计开发环境总体流程图功能实现LED控制、按键读取温度传感器测量与读取触摸按键读取LwIP通信编译配置 功能展示项目总结 👉 【Funpack3-3】 👉 Github: EmbeddedCamerata/FRDM-MCXN947_lwip_peripherals_control 项目介绍 基于 NXP FRDM-MCXN947 开发板,通
阅读更多...
lwip 如何处理 post 的分两个 TCP 发送的报文
LwIP HTTP POST 的 header body 分两次 TCP 发送时,总是回 RST,ACK 正常应该是 FIN,ACK HTTP POST 分两次 TCP 发送,失败: HTTP POST 一次 TCP 发送,成功: 原因是 lwip 因为 tcp pcb 的 rcv_wnd 不等于 TCP_WND,不知道如何解解决? 目前临时的解决方法是在发送阶段,强制把 tcp pcb 的
阅读更多...
LWIP程序OPT.h头文件的各种定义
SYS_LIGHTWEIGHT_PROT 平台锁,保护关键区域内缓存的分配与释放 NO_SYS --- 是否带操作系统, =1时带,=0时,不带 MEMCPY(dst,src,len) --- 内存拷贝 若你希望自己写拷贝函数则可替换 SMEMCPY(dst,src,len) ---内存拷贝若你希望自己写拷贝函数则可替换 MEM_LIBC_MALLOC --- 内
阅读更多...
LWIP之HTTP
硬件平台:STM32F107VCT6+DP83848(F103要使用以太网,要通过SPI接口去控制ENC28J60,速度慢;F107将MAC层集中进芯片,外围电路只需一个PHY控制器,速度快) LWIP例程下载地址:http://www.st.com/web/en/catalog/tools/PF257862 UIP:https://github.com/adamdunkels/uip 从S
阅读更多...
踩坑LWIP实现GPRS联网
LWIP实现GPRS联网过程中,总是会连不上移动公司的服务器,后来发现这是协议实现与工程实现的一个差别导致的。从PPP连接数据流中可以发现,服务器也向GPRS终端申请IP地址,在被GPRS终端拒绝之后,服务器坚持要求,最后GPRS终端同意服务器使用0x0000的IP地址。这是因为根据PPP协议的规定,PPP链路的双方都必须知道对端IP。但是由于服务器端的IP为0,这会导致LWIP报错。这种情况的出
阅读更多...
GD32F470+lwip 丢包问题分析及解决
最近在用GD32和管理机之间用TCP协议开发一个功能,功能都没问题,后面跑大量发包时候的连续测试时,总是会出现偶发性的,大概几分钟到数十分钟的一次丢包。尽管在应用层做了超时机制,一旦超时就会重新建立socket链接并重新发包,但是这样做太丑陋了,而且断开重连延时太大了,还是想彻底搞清楚这个个问题。所以先抓包吧。 管理机使用TCP dump抓包,要加-v选项,不然后面无法从通信流程
阅读更多...
LWIP_TCP 协议
目录 1 TCP 协议简介 1.1 TCP 协议简介 1.2 TCP 的建立连接 1.3 TCP 终止连接 1.4 TCP 报文结构 1.5 lwIP 的 TCP 报文首部数据结构 1.6 lwIP 的 TCP 连接状态图 1 TCP 协议简介 1.1 TCP 协议简介 TCP(Transmission Control Protocol 传输控制
阅读更多...
STM32F4_HAL_LWIP_RAM接口UDP实验
目录 RAW 的 UDP 接口简介 RAW 的 UDP 实验 硬件设计 例程功能 软件设计 UDP 配置步骤 软件设计流程图 RAW 的 UDP 接口简介 UDP 协议的 RAW 的 API 功能函数,我们使用这些函数来完成 UDP 的数据发送和接收功能。 (1) udp_new 函数 此函数用来创建一个 UDP 控制块,这个控制块用来描述 IP
阅读更多...
28-ESP32-S3 lwIP 轻量级 TCP/IP 协议栈
ESP32-S3 lwIP 介绍 ESP32-S3 是一款集成了Wi-Fi 和蓝牙功能的微控制器。它的设计初衷是为了方便嵌入式系统的开发。不过你可能会好奇,ESP32-S3 怎么实现与外部网络的通信呢?这里就要提到一个开源的 TCP/IP 协议栈,它叫做lwIP(轻量级 IP)。 通过使用 lwIP 库,ESP32-S3 可以轻松实现与外部网络的交互。它能发送和接收数据包,并处理网络连接等操
阅读更多...
lwip netbuf_ref: invalid buf“
netbuf_ref 申请空间失败 报错 lwip netbuf_ref: invalid buf" 解决办法就是lwipopt.h文件中定义宏 原来opt.h文件的定义是 #define MEMP_NUM_NETBUF 2 修改后 #define MEMP_NUM_NETBUF 6
阅读更多...
探索者STM32F407ZGT6+LWIP+LAN8720A_FREERTOS CubxMx配置教程
1. cubumx创建STM32F407ZGT6工程 2. 配置时钟 配置外部时钟 ## 配置程序下载口和hal库时基 3. 配置ETH外设和复位脚 配置stm32 外设 配置网卡芯片数据 4. 配置lwip 5. 打开freeRtos 打开就行不需要配置其
阅读更多...
LWIP+TCP客户端
一、TCP API函数 其中tcp_poll()函数的第三个参数表示隔几秒调用一次这个周期性函数 二、修改服务器的IP 三、TCP客户端编程思路 申请套接字绑定服务器IP和端口号等待客户端连接 进入连接回调函数在连接回调函数中 配置一些回调函数,如接收回调函数,周期回调函数等等(类似于QT里面的信号与槽机制,等待一个信号的来临,然后执行对应的函数)在接收回调函数里面将 接收
阅读更多...
使用LwIP实现TCP Client通信(基于STM32F407)
目录 概述 1 功能介绍 1.1 代码框架 2.2 搭建系统 2 TCP Client功能实现 2.1 代码实现 2.2 具体代码 3 功能测试 3.1 测试功能描述 3.2 运行代码 测试代码下载地址: stm32-f407-dm9161-LwIP-tcp-client资源-CSDN文库 概述 本文主要介绍使用STM32F407和LwIP实现基于TCP/IP 协议
阅读更多...
LwIP移植心得
LwIP终于能跑了,总结下: 平台是LPC2136+ENC28J60,32K的RAM,软件是uCOS-II 2.51+LwIP 1.1.1。 感觉主要解决两个问题: 操作系统仿真层的移植。这个基于uCOS-II的代码太多了。COPY下就行! 1,设备驱动的移植.驱动的移植主要就是完成ethernetif.c的工作。作者已经给好了驱动的接口。 struct netif { str
阅读更多...
【STM32F407+CUBEMX+FreeRTOS+lwIP之UDP记录】
STM32F407+CUBEMX+FreeRTOS+lwIP之UDP记录 基本信息cubemx配置GPIONVICRCCSYSETHFREERTOSlwIP UDP(SOCKET)效果 UDP广播(SOCKET)效果 UDP组播(SOCKET)cubemx注意以下ethernetif.c效果 可参考正点原子和野火的手册 基本信息 正点原子F407探索者开发板 cubemx v6.
阅读更多...
【STM32F407+CUBEMX+FreeRTOS+lwIP netconn UDP TCP记录】
STM32F407+CUBEMX+FreeRTOS+lwIP netconn UDP TCP记录 注意UDPUDP1UDP2 TCPTCP clientTCP server图片 注意 1、超时 #include “lwipopts.h” #define LWIP_SO_RCVTIMEO 1 2、先保证能ping通 3、关于工程创建可参考 【
阅读更多...
LwIP代码收发报流程分析(2)数据包的接收
LwIP代码收发报流程分析(2)数据包的接收 上一篇博客,LwIP代码收发报流程分析(1)数据包的发送 我们一起分析了 LwIP 是如何将 ICMP echo 也就是 Ping 报文发送出去的过程,在这篇博客中我们将一起分析 LwIP 是如何接收网络数据包的,为后面我们将其移植到 CH32 MCU 上做做预习。 这次还是选 LwIP 官方代码中的 ping 例程作为代码分析的对象,代码位置在
阅读更多...
LWIP开启ARP之后进入硬件错误中断
遇到个很奇怪的问题,如下图只要开启ARP之后,就会进入硬件错误中断,关掉就好了。 而无法开启ARP,就不能ping 通,所以必须要解决这个问题。 最终debug发现死在memcpy函数位置 这样原因就很好分析了, 共4个拷贝操作,其中2个目标地址都不是4字节对齐的,猜测是该原因导致的。 进一步定位和尝试后,发现是H7内核的MPU配置有问题,改成TEX=1,C=0,B=0之后就
阅读更多...