lrqblack 发表于 2022-5-20 08:57:47

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

就是希望能有那种开局一个lwip源代码和keil,不借助第三方封装好的移植功能,能从无到有讲清楚移植的每一步究竟是为什么的教程,不要那种复制粘贴然后读一遍代码的那种,真的谢谢了!{:19:}

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

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

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

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

eric2013 发表于 2022-5-20 09:30:49

其实就是复制粘贴,复制粘贴都不能完成的协议栈,都是比较麻烦,难用的协议栈。

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

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

lrqblack 发表于 2022-5-20 10:02:03

eric2013 发表于 2022-5-20 09:30
其实就是复制粘贴,复制粘贴都不能完成的协议栈,都是比较麻烦,难用的协议栈。

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

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

liapunov 发表于 2022-7-14 10:51:34

移植LWIP其实很简单,找到LWIP的源码,然后1、根据你自己的情况配置好lwipopts.h这个文件。2、照着模板把ethernetif.c/h以及lwip.c/h两个文件做一个简单少量的修改,改动的内容非常少,主要是调用网口驱动的一点接口。3、实现实际网口的驱动,供第2部的调用。就over了。
页: [1]
查看完整版本: 兄弟们,有比较好的LWIP手动移植教程推荐啊?用开发工具配置踩到坑了。