硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1057|回复: 3
收起左侧

[LwIP] 兄弟们,有比较好的LWIP手动移植教程推荐啊?用开发工具配置踩到坑了。

[复制链接]

3

主题

3

回帖

12

积分

新手上路

积分
12
发表于 2022-5-20 08:57:47 | 显示全部楼层 |阅读模式
就是希望能有那种开局一个lwip源代码和keil,不借助第三方封装好的移植功能,能从无到有讲清楚移植的每一步究竟是为什么的教程,不要那种复制粘贴然后读一遍代码的那种,真的谢谢了!

很多朋友可能觉得用第三方CMSIS或者CubeMX配置出来LWIP没什么不妥的,但我是真实吃到了教训,以下分享一下我的真实经历和感想。

就在昨天,我手贱CubeMX更新了6.5版本,突然发现之前的F407以太网配置方法失效了,配置选项和生成的代码和之前有很大不同,不仅看不懂了,还ping不通,花了一天才堪堪调通,灰头土脸退回6.4版本。
所以我才发觉,这种用各种封装进行配置LWIP的教程都是有隐患的,说难听点就是我并不会配置LWIP,这种能力是暂时的,是第三方赏我的,并不是我真正拥有的。
这类配置方法会随着版本更新和环境变化而失效,所以我不奢望能拥有深入到内核源代码的知识,我只想知道在“开局一个源代码+开发环境”的情况下,我需要“写”哪些程序,这些程序是什么功能的?
知道原理之后,维护也方便,也不会受到版本限制了,甚至不在STM32平台上也能配置了。
举个最简单的例子,我学会了SPI和IIC原理,就算不用CubeMX,我也能轻松的用库函数甚至是寄存器来实现功能,不仅如此,我还能在其他的单片机上实现这些功能。

野火的教程确实是手动移植,一到移植环节就开始大批量复制粘贴,然后开始朗读代码,给我看麻了。

以上都是有感而发,各位兄弟们也分享一下课程和感想吧,给点建议也行哇

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2022-5-20 09:30:49 | 显示全部楼层
其实就是复制粘贴,复制粘贴都不能完成的协议栈,都是比较麻烦,难用的协议栈。

以CMSIS方案为例,其实什么都没有配置,仅仅是帮忙把文件添加了进来,什么都还需要自己修改。还没有达到MDK RTE添加TCPnet那么方便的程度。

对于楼主来说,楼主做个这样的工作是最好的,比如你用CubeMX或者CMSIS移植成功,你照葫芦画瓢手动移植个这样的工程是否可以成功,移植一次就什么都明白了。
回复

使用道具 举报

3

主题

3

回帖

12

积分

新手上路

积分
12
 楼主| 发表于 2022-5-20 10:02:03 | 显示全部楼层
eric2013 发表于 2022-5-20 09:30
其实就是复制粘贴,复制粘贴都不能完成的协议栈,都是比较麻烦,难用的协议栈。

以CMSIS方案为例,其实 ...

我赞同,其实用户主要需要考虑的简单来说应该是软件(lwiP)和硬件(开发板)之间的连接吧,就是这个连接软硬件的部分,各种第三方能写出五花八门的程序。我觉得确实必须参考第三方程序,自己从无到有写出一份属于自己的程序来,这样的话以后的移植、维护和功能增加就再也不愁了。
其实我已经在尝试了,但总是移植不通,网络这类复杂的东西,出错都不好找问题,debug也看不出端倪,就得自己一点一点去试错,莫名其妙的问题经常搞得自己失去理智。。。
回复

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

积分
6
发表于 2022-7-14 10:51:34 | 显示全部楼层
移植LWIP其实很简单,找到LWIP的源码,然后1、根据你自己的情况配置好lwipopts.h这个文件。2、照着模板把ethernetif.c/h以及lwip.c/h两个文件做一个简单少量的修改,改动的内容非常少,主要是调用网口驱动的一点接口。3、实现实际网口的驱动,供第2部的调用。就over了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 06:40 , Processed in 0.177480 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表