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