参考资料

(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的手册,了解了寄存器读写的基本内容。多尝试多学习,后续的上层应用是我们的重点,要学习的东西很多,不要怕。

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

  1. AURIX TriCore学习笔记四:LwIP裸机移植

    一目了然 1 准备工作 2 裸机移植LwIP 2.1 LwIP目录创建 2.2 LwIP源文件移植 2.3 LwIP头文件移植 2.4 网口驱动开发 2.4.1 MAC模块驱动 2.4.2 PHY模块 ...

  2. 4G模块 EC20 R2.0 USB Serial/GobiNet/QMI WWAN 驱动移植过程

    4G模块 EC20 R2.0 USB Serial/GobiNet/QMI WWAN 驱动移植过程 一.开发环境 二.确定 EC20 R2.0 的基本信息 三.USB Serial 驱动移植 opti ...

  3. STM32cubeMX将STM32F767+LAN8720+LwIP+FreeRTOS的以太网实现

    通过STM32cubeMX将STM32F767+LAN8720+LwIP+FreeRTOS的以太网实现 本文使用了正点原子的阿波罗开发板,接下来我将粗略的对STM32F767通过STM32cubeMX ...

  4. STM32CubeMX+LAN8720+LWIP+FreeRTOS实现网络通讯

    STM32CubeMX+LAN8720+LWIP+FreeRTOS实现网络通讯 使用STM32CubeMX可以非常方便的将FreeRTOS+LWIP移植到工程中,本文就是介绍如何利用STM32Cube ...

  5. STM32CubeMX+LAN8720+LWIP不带操作系统实现网络通讯

    STM32CubeMX+LAN8720+LWIP不带操作系统实现网络通讯 使用STM32CubeMX可以非常方便的将LWIP移植到工程中,本文就是介绍如何利用STM32CubeMX移植LWIP到STM ...

  6. LWIP裸机环境下实现TCP与UDP通讯(转)

    源: LWIP裸机环境下实现TCP与UDP通讯

  7. LwIP 协议栈移植教程

    一.什么是 LwIP,以及何时使用 LwIP ? 官网地址:lwIP - A Lightweight TCP/IP stack - Summary [Savannah] 按照官网的描述:lwIP is ...

  8. yaffs2裸机移植

    yaffs 文件系统 概述 Yaffs(Yet Another Flash File System)是专门为NAND Flash设计的文件系统,在GPL协议下发布,适用于大容量的存储设备的嵌入式系统, ...

  9. 理解裸机部署过程ironic

    部署物理机跟部署虚拟机的概念在nova来看是一样,都是nova通过创建虚拟机的方式来触发,只是底层nova-scheduler和nova-compute的驱动不一样.虚拟机的底层驱动采用的libvir ...

最新文章

  1. 如何面对自己不喜欢的工作?
  2. DUALBOOT(双启动) 调试
  3. 在VS2010 里面包含进全局的include目录和lib目录
  4. spark on yarn 配置及异常解决
  5. 第14讲:Selenium 的基本使用
  6. php 4位数字不足补零,php实现数字不足补0的方法
  7. Logistic回归——二分类 —— matlab
  8. POCO C++ Libraies介绍及常见用法
  9. linux trac svn,Ubuntu安装Trac SVN的方法及命令
  10. Repository和dao
  11. python读取表格画散点图_python学习笔记-绘制散点图
  12. IP这么火究竟什么才是有价值的IP
  13. mysql操作 begin 命令_MySQL基础操作
  14. ubuntu命令行一键安装谷歌浏览器
  15. 三维von Mises-Fisher分布的均值方差
  16. c++ findpeaks函数_C++实现MATLAB一维数组函数findpeaks()函数求一维离散值极值(波峰波谷)...
  17. Python爬虫的应用:统记词频
  18. 电源的环路补偿、功率级补偿、Vout的波形对应的响应速度-运放环路补偿
  19. MFC禁用编辑框输入法
  20. 2021年5月系统集成项目管理工程师案例分析真题视频讲解(3)

热门文章

  1. Ubuntu下几种常用的文本编辑器
  2. 竞业禁止协议 non-compete agreement
  3. STMCU的IDE的使用
  4. Qt 实现窗口大小变化时动画过渡
  5. 软键盘弹出时popwindow_PopupWindow与软键盘冲突
  6. 在家远程访问公司内网办公系统
  7. SpringBoot+Vue项目漫画之家系统
  8. 数据可视化之公司管理平台
  9. 【报告分享】DTC品牌私域用户运营手册-易观方舟(附下载)
  10. OpenFire源码学习之七:组与花名册