代码可以参考以下链接:https://gitee.com/maji19971221/lwip-routine

Lwip可以在以下链接下载:http://download.savannah.gnu.org/releases/lwip/

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中定时事件即可。

最新文章

  1. PIC32MZ tutorial -- Output Compare
  2. 【USACO1.1】Broken Necklace
  3. Linux中Matlab保存多个数据到同一个文件当中
  4. 洛谷P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib
  5. JS触发ASP.NET服务器端控件的方法
  6. Hadoop学习记录(4)|MapReduce原理|API操作使用
  7. CSS3新增Hsl、Hsla、Rgba色彩模式以及透明属性(转)
  8. [Ext JS 4] 布局之实战一 - 中间区块不会自动伸展 (tab)
  9. HDU 4336 Card Collector(动态规划-概率DP)
  10. Linux知识积累(5) 关机shutdown和重启reboot
  11. python实现博客自动刷点击脚本
  12. ASI与AFN网络请求的的比较
  13. SQL 收缩日志
  14. saltstack主机管理项目:编写插件基类-获取主机列表-提取yaml配置文件(四)
  15. JGUI源码:Accordion兼容IE8实现(3)
  16. TCPlayer web切换播放问题
  17. MidoNet 安装(Kilo RDO)(最老版)
  18. ef entity转json引起的Self referencing loop
  19. 洛谷 P1015 回文数
  20. 【LOJ】#2492. 「BJOI2018」二进制

热门文章

  1. PHP全栈开发(八):CSS Ⅱ 创建
  2. 【JavaWeb】学习笔记——Ajax、Axios
  3. Sql Server 数据库分页存储过程书写
  4. k8s集群正常kubectl用不了
  5. 转载:Python 实现百度翻译
  6. 一台虚拟机,基于docker搭建大数据HDP集群
  7. Django系列---开发一
  8. 【题解】CF45I TCMCF+++
  9. Go语言核心36讲44
  10. php变量规范命名用了记得消除,保证唯一性