将lwip1.4.1工程移植至lwip2.1.2记录

2023-05-16

将lwip1.4.1工程移植至lwip2.1.2记录

  • 1. ip_addr结构体
  • 2. etharp.h
  • 3. cc.h与arch.h
  • 4. tcp_impl.h

关于二者文件、功能等差异网上已有很多文章介绍,类似这个文档有简单说了下这两个版本间的一些差异:lwip 1.4.1到lwip2.1.2升级之路

本文要记录在将基于lwip1.4.1版本例程:STM32F4x7_ETH_LwIP_V1.1.1\Project
Standalone\udp_echo_server移植至lwip2.1.2平台过程中遇到的一些问题,例如头文件的包含,结构体的差异,某些函数的实现差异等;

1. ip_addr结构体

1.4.1版本中使用 struct ip_addr定义地址,此结构体在lwip-1.4.1\ src\include\ipv4\lwip\ ip_addr.h定义,如下图;
在这里插入图片描述 在这里插入图片描述
2.1.2版本中需替换为ip_addr_t, 头文件包含#include “lwip/ip_addr.h”

在这里插入图片描述

2. etharp.h

二者位于不同文件下,1.4.1位于lwip-1.4.1\src\include\netif|etharp.h, 2.1.2位于lwip-2.1.2\src\include\lwip\etharp.h主要为函数声明, lwip-2.1.2\src\include\lwip\prot\etharp.h主要为ARP protocol definitions;
在这里插入图片描述

3. cc.h与arch.h

arch.h(lwip-2.1.2\src\include\lwip\arch.h)中u8_t、u32_t等类型定义已在cc.h(STM32F4x7_ETH_LwIP_V1.1.1\Utilities\ Third_Party\lwip-1.4.1\port\STM32F4x7\arch\cc.h)中定义,需定义宏LWIP_NO_STDINT_H以避免arch中重复定义,可在程序中定义
#ifndef LWIP_NO_STDINT_H
#define LWIP_NO_STDINT_H 1
#endif, 或在keil里定义均可;
在这里插入图片描述
在这里插入图片描述

4. tcp_impl.h

2.1.2中删除了此头文件,并将其实现放在了历史文件夹下
lwip-2.1.2\src\include\lwip\priv\tcp_priv.h。
在这里插入图片描述
在2.1.2版本不应再使用此文件,像lwip-1.4.1\src\include\lwip\tcp_impl.h里的TCP_TMR_INTERVAL参数,1.4.1中经常见到像下面这样使用该参数:
在这里插入图片描述

2.1.2中TCP_TMR_INTERVAL参数在lwip-2.1.2\src\core\timeouts.c中定义,tcp_tmr()、etharp_tmr()等函数的周期调用已在sys_check_timeouts()中采用链表的方式实现,用户只需循环调用此函数即可,使用TIMERS需修改lwipopts.h中NO_SYS为1,NO_SYS_NO_TIMERS为0,以定义LWIP_TIMERS宏,用户还应实现u32_t sys_now(void)函数,返回系统时间;关于times想了解更多可以看下这篇文章:LwIP 之四 超时处理/定时器(timeouts.c/h)
在这里插入图片描述
在这里插入图片描述
暂且想起来这么多,后续想起来再补充。。。





本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将lwip1.4.1工程移植至lwip2.1.2记录 的相关文章

  • 3DTiles】关于GeometricError几何度量误差

    在 3DTiles 的官方文档中详细介绍了关于几何度量误差 Geometric Error 的一些理念和内涵 xff0c 概括来说可以翻译为如下定义 xff1a 几何度量误差 xff0c Geometric Error xff0c 简称 G
  • glPixelStorei 详解 包括像素传输

    3 glPixelStore 像glPixelStorei GL PACK ALIGNMENT 1 这样的调用 xff0c 通常会用于像素传输 PACK UNPACK 的场合 尤其是导入纹理 glTexImage2D 的时候 xff1a C
  • ESLint 简介

    ESLint简介 ESLint是一个用来识别 ECMAScript 并且按照规则给出报告的代码检测工具 xff0c 使用它可以避免低级错误和统一代码的风格 如果每次在代码提交之前都进行一次eslint代码检查 xff0c 就不会因为某个字段
  • IOS VasSonic 粗略见解

    因为项目需求需要在本地缓存html页面 xff0c 优化用户体验 了解到VasSonic 百度了下源码解析但是没有发现IOS的所以只有自己慢慢摸索了 一 类的简单关系 1 SonicEngine 引擎类 代理为 UIWebViewContr
  • axios的详细讲解

    一 axios的特性 axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端 xff0c 简单的理解就是ajax的封装 特性 xff1a 从浏览器中创建 XMLHttpRequests从 node js 创建
  • 无人机飞控算法-姿态估计-欧拉角-旋转矩阵-四元数

    无人机飞控算法 姿态估计 此系列记录了我理解的卡尔曼滤波从0到1的过程 xff0c 从姿态估计到位置估计 xff0c 我们从核心点一个个出发 xff0c 并结合实际模块的应用来一一揭开卡尔曼滤波的神秘面纱 提示 xff1a 在系列文章中 x
  • BMP格式详解

    介绍 数字图像在外存储器设备中的存储形式是图像文件 xff0c 图像必须按照某个已知的 公认的数据存储顺序和结构进行存储 xff0c 才能使不同的程序对图像文件顺利进行打开或存盘操作 xff0c 实现数据共享 图像数据在文件中的存储顺序和结
  • WinHex使用方法详解

    WinHex是由X Ways软件技术公司 xff08 官方网站http www x ways net xff09 开发的一款专业的磁盘编辑工具 xff0c 该工具文如其名 xff0c 是在Windows下运行的十六进制 xff08 hex
  • three.js流动线

    效果 xff1a 先看最基本的 function initThree el options options 61 options const t 61 this appInstance 61 this const width 61 el o
  • OpenGL之FBO(Frame Buffer Object)和多次离屏渲染

    第一次听到离屏渲染的时候觉得很高级 xff0c 遥不可及 xff0c 直到后来做高斯模糊的时候 xff0c 需要通过两次处理来节省性能 xff0c 一直玩一次渲染处理的我这时候才认识FBO xff0c 继而明白了离屏渲染 xff0c 今天抽
  • Android驱动(一)硬件访问服务学习之(四)Android应用程序APP编写

    硬件平台 xff1a tiny4412系统 xff1a Android 5 0 2编译器 xff1a arm linux gcc 4 5 1 xff08 一 xff09 Android通过JNI访问硬件 http blog csdn net
  • gl_FragCoord 的含义

    gl FragCoord 表示当前片元着色器处理的候选片元窗口相对坐标信息 xff0c 是一个 vec4 类型的变量 x y z 1 w xff0c 其中 x y 是当前片元的窗口坐标 xff0c OpenGL 默认以窗口左下角为原点 xf
  • RoboMaster机甲大师——视觉组——计算平台的选型与感想(主流几款)

    RoboMaster机甲大师 视觉组 计算平台 xff08 工控机 xff09 的选型与感想 xff08 主流几款 xff09 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介 xff1
  • 如何在Linux命令行下发送和接收UDP数据包

    众所周知 在传输层有两个常用的协议 TCP 和 UDP 本文介绍在 Linux 命令行下 如何使用 nc 命令发送或接收 UDP 数据包 这些命令的用法对调试 UDP 通信程序将有所帮助 1 问题的提出 编写了一个使用 raw socket
  • 抽丝剥茧聊Kotlin协程之聊聊Job和SupervisorJob的区别

    1 前言 随着协程的普及 xff0c 协程知识越来越被面试官青睐 首先 xff0c 协程的面试题一般都很简洁 xff0c 一两句简单的话就能把问题描述清楚 xff0c 其次于面试官而言 xff0c 协程框架中精妙的数据结构与算法可以很好的考
  • Android 手机运行 JoyCon Droid 并且使用 Amiibo

    PS 整个过程耗时耗力 xff0c 经常会断开连接 xff0c 有些不想搞那么麻烦的人就不要搞了 xff0c 以免遭受刺激啊 xff0c 哈哈 前提 如果想使用并刷Amiibo xff0c 必须同时满足以下几个条件 xff1a 1 蓝牙版本
  • STM32F10X系列通用OTA bootloader移植与使用指南

    基于STM32F10X系列通用OTA bootloader原理 移植与使用全指南 写在前面这几天我都做了什么呢 xff1f 有什么感受 xff1f 开始移植 写在前面 从2020 1 26到2020 1 30这5天 xff0c 我的较多研究
  • FreeRTOS笔记——链表数据结构

    FreeRTOS链表实现 0 概述1 关键结构体1 1 链表基础知识1 2 链表数据结构1 3 链表操作 0 概述 部分内容参考野火的FreeRTOS相关开发资料 xff0c 在此做一个学习记录总结 1 关键结构体 FreeRTOS源码实现
  • pyqt5 状态栏(statusBar)永久显示

    在主界面加了一个状态栏 xff0c 作为简易操作说明 xff0c 但是点击菜单栏时 xff0c 不管是否选中菜单栏下的选项 xff0c 状态栏都会消失 网上给了很多关于永久显示状态栏的方法 xff1a self status 61 self
  • 树莓派4B部署Intel Realsense T265相机

    硬件 xff1a 树莓派4B 8G内存 系统 xff1a Ubuntu 20 最初我是参照这篇博客树莓派上部署英特尔深度相机IntelRealsense T265 xff08 他人8月7日刚写的 xff09 我树莓派上librealsens

随机推荐

  • Phpstorm2018 永久激活

    原文地址 1 安装phpstorm xff0c 安装包请自行官网下载 http www jetbrains com phpstorm download 2 下载JetbrainsCrack jar文件 xff0c 存放至你的phpstorm
  • VMware + fedora25下安装QT5.8

    失业了 xff0c 搞单片机太久忘了这个linux xff0c 但为了重新找工作没办法重新学习 xff0c xff1a xff08 这几天手提上安装VMware和Fedora25 xff0c 把QT5 8安装了 xff0c 过程曲折 xff
  • Reproducible Research in Computational Science

    Reproducible Research in Computational Science http www csee wvu edu xinl source html It doesn 39 t matter how beautiful
  • 无人机学习所遇问题动态记录

    问题一 QGC显示 xff1a Detected 0 radio channels To operate PX4 you need at least 5 channels 原因 xff1a RC插错位置 解决方案 xff1a SBUS对应的
  • 四轮全向轮是不是比麦轮的控制难度大?

    经过一番搜索 xff0c 就发现一个做四轮全向小车的大佬 xff0c 其他都是四轮麦轮 xff0c 做四轮小车是麦轮比较好 xff1f 优点有哪些呢 xff1f
  • NoValidHost: No valid host was found. : NoValidHost_Remote: No valid host was found.

    openstack的queens版本创建实例的时候实例状态ERROE 查看日志以下错误 2019 12 10 11 32 25 436 4805 WARNING nova scheduler utils req d3743b51 2f00
  • 解决Windows下Pixhawk(PX4)编译提示没有cmake的问题

    多谢楼下的提示 xff0c 原来是64位系统下环境变量中包含 xff08 x86 xff09 的问题 xff0c 所以下面的解决方法也是错的 xff0c 看看就好了 以前安装cmake的时候还会注意一下安装选项 xff0c 后来就潜意识认为
  • 嵌入式linux串口通信自发自收测试程序

    串口自收自发程序主函数 include 34 uart api h 34 int main int fd char buff BUFFER SIZE char buff2 61 34 Hello NUAA2440 n 34 int nrea
  • js删除对象的属性及封装方法

    javascript中可以通过delete删除对象的属性 xff1a 使用方法如下 xff1a span class hljs keyword style font family none border 0px background tra
  • XML 转sql

    XML 转 sql 思路一 用字符匹配 找到的例子 xff1a https github com hhyo mybatis mapper2sql https github com inanutshellus mybatis xml inte
  • 【无标题】

    学习目标 xff1a 分布式事务 学习内容 xff1a 1 CAP BASE 基本内容和实现 2 TCC SAGA 消息一致性 实现的最终一致性 3 CMQ https cloud tencent com developer article
  • dev 调试

    问题集锦 xff1a 1 dev的代码自动补全功能 xff08 vs的智能提示功能 xff09 的快捷键 2 调试时 xff0c 二维字符数组的样子 如图很是怪异 xff1a 3 这篇博文可以供以后出现问题后参考 xff0c 其主要改变的是
  • c语言scanf接收字符的问题

    scanf xff08 c xff0c amp c xff09 xff1b 与scanf xff08 c xff0c amp c xff09 xff1b 看上去差别很小实际上第二个仅仅多了一个空格 却差别很大 尤其是scanf接收的数据之前
  • 浮点错误

    转载部分 xff1a 浮点错误 您的程序运行时发生浮点错误 xff0c 比如遇到了除以 0 的情况 所以发生浮点错误应该考虑程序中 xff1a 是否可能出现了一个数除以0的情况 是否可能出现了一个数取余0的情况 是否发生了数据溢出而导致的除
  • 猿辅导2017 笔试题

    题目描述 小明认为某些数字不吉利 xff0c 付账时会尽可能少的多付一些钱 xff0c 使得价格中不包含这些不吉利数字 xff0c 并且不出现0 例如 xff0c 不吉利数字为1 xff0c 4 xff0c 7 xff0c 8 xff0c
  • 数据挖掘期末考试

    1理解概念 1 1数据挖掘 1 2关联规则 1 3数据预处理 1 4置信度 1 5聚类 1 6KNN 1 7SVM 2 分类器设计的三个过程 3 分类时常将样本怎样划分 xff1f 4 评估分类器性能的常用指标 5 数据挖掘常用技术有哪些
  • npm超时

    有时使用npm下载很慢出现超时 xff0c 可以尝试使用cnpm xff0c 国内镜像 安装 npm install cnpm g registry 61 https registry npm taobao org 测试是否成功 cnpm
  • 机试第一节

    问题 xff1a 1 6中的n的阶乘太大时发生溢出怎么处理 分割线 1 双精度浮点类型的定义 xff1a double 输出 lf 单精度浮点类型的定义 xff1a float 输出 xff1a f 2鸡兔同笼问题 xff0c 判断所给样例
  • Python小技巧之——巧用with语句实现异常处理

    Python的异常处理语句try except大家都很熟悉了 xff0c 例如 xff1a try 1 0 except Exception as ex print ex integer division or modulo by zero
  • 将lwip1.4.1工程移植至lwip2.1.2记录

    将lwip1 4 1工程移植至lwip2 1 2记录 1 ip addr结构体2 etharp h3 cc h与arch h4 tcp impl h 关于二者文件 功能等差异网上已有很多文章介绍 xff0c 类似这个文档有简单说了下这两个版