WCH沁恒单片机
直播中

挽你何用

10年用户 971经验值
擅长:电源/新能源 MEMS/传感技术
私信 关注
[问答]

求助,求用CH579移植成功LWIP的教程

有没有大佬用CH579移植成功LWIP呀,跑裸机或freeRTOS,求demo
  

回帖(1)

李研

2022-10-12 11:11:51

1. 创建一个CH579的最简单工程。

2. 复制一份lwip-2.12的压缩包,解压

3. 工程创建以下文件夹

4. 下面开始添加文件。Lwip/api文件夹下添加lwip-2.12的api文件。

5. Lwip/core文件夹下面添加lwip-2.12/scr/core/ipv4文件夹下面的所有内容+core文件夹下面的所有C文件。

6. Lwip/netif文件夹下面添加lwip-2.12/scr/netif下的部分源文件。

7. 添加头文件,编译。此时会报错说没有lwipopts.h。

8. 通过搜索发现,这个文件并不在协议栈的scr文件夹下面,我们把这个文件复制出来,放在自己创建的arch文件夹下面。并在工程中添加arch的路径。



9. 再次编译,报错没有arch/cc.h这个头文件。

10 .我们从其它工程复制过来,放在arch文件夹下面。在头文件这边包含arch的上级文件夹路径。点击编译。显示一些定义问题,因为我这边cc.h和arch.h里面一些定义冲突了,只需要注释掉一种一个即可。


11.点击编译,显示没有arch/bpstruct.h头文件。正常添加即可。添加sys_arch.c文件。然开lwippopts.h,这个是lwip的配置文件。我们将LWIP_IPV6写0,关闭ipv6。此时再编译就是正常的。

12.添加579底层MAC相关的配置文件,编译。


13.其实是缺少ethernetif.c导致的。我们从F4的工程中复制过来,进行修改即可。
后面编译显示以下错误,这个是内存溢出,只需要把lwippopts.h里面一些设置修改小写即可。

14.最后加上写的相关调用网卡接收函数和处理LwIP中定时事件即可。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分