【从0到1】GD32F450+LAN8720+LWIP(裸机)移植过程记录

参考资料

(1)《Lwip应用开发实战指南——基于STM32》
(2)《STM32库开发实战指南——基于野火挑战者开发板》
(3)《GD32F4xx_User_Manual_CN_V2.2》
。。。

材料准备

(1)GD32官网下载最新的firmware库文件;
(2)LWIP官网下载最新的lwip-2.1.3及contrib-2.1.0包;
(3)GD32F450开发板+LAN8720网络模块;
。。。

移植过程

一个较为方便的移植过程是将GD32Frimware库中的例程提取出来,和Lwip文件共同构成IAR项目。GD32的底层驱动初始化步骤基本不需要改动,对库函数中和LAN8720匹配的一些地方做一些修改即可。

gd32f4xx_enet.h中修改的点

PHY_TYPE 要对应修改为 LAN8700;
PHY_ADDRESS 的修改看情况,我买的这个模块地址为1(可以看原理图确定,也可以调试看看寄存器读取情况,如果地址错误,读到的值为0xFFFF)。

#ifndef _PHY_H_
#define DP83848                          0
#define LAN8700                          1
#define PHY_TYPE                         LAN8700

#define PHY_ADDRESS                      ((uint16_t)01U)                         /*!< phy address determined by the hardware */

enet_mac_dma_config()函数

这个函数的初始化是需要连接网线的。

LAN8720 调试过程

调试过程主要就是单步运行看程序死在哪里了,一开始LAN8720模块软件复位不过,后来发现是物理地址写的不对,读到的寄存器值为0xFFFF;修改了物理地址以后就发现初始化还是过不了,看了看读到BSR寄存器的值显示网线未连接,连好网线后初始化就顺利通过了;但是PING不通,回头一看发现TX1的引脚连线接错了,改了连线后,PING通了。。。

以上就是LWIP移植及以太网学习过程中遇到的一些非常初级的问题,并做个记录。从0到1的过程是一脸懵逼的,先学习了TCPIP的基本概念,又学习了GD32的以太网模块知识,然后在调试过程中看了LAN8720的手册,了解了寄存器读写的基本内容。多尝试多学习,后续的上层应用是我们的重点,要学习的东西很多,不要怕。

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值