0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

芯片GD32与以太网芯片的坑

撞上电子 2024-01-16 08:00 次阅读

参考例程是基于GD32F450的,在移植过程中遇到一些容易忽略的地方,导致程序卡在gd32fxx_enet.c中enet_phy_config的位置。将GD32F450上的代码全部移植到GD32F470平台后,一直卡在卡在gd32fxx_enet.c中enet_phy_config,经过排查发现GD32的官方库文件也需要修改,分别为gd32f4xx_enet.h和gd32f4xx_enet.c。
需要修改的地方如下:
1,如下添加宏定义:

#ifndef _PHY_H_#define DP83848 0#define LAN8700 1#define SR8201F 2#define PHY_TYPE SR8201F
#define PHY_ADDRESS ((uint16_t)0x3U) /*!< phy address determined by the hardware */

2,在头文件88行位置添加如下内容:

#if(PHY_TYPE == LAN8700) #define PHY_SR 31U /*!< tranceiver status register */#define PHY_SPEED_STATUS ((uint16_t)0x0004) /*!< configured information of speed: 10Mbit/s */#define PHY_DUPLEX_STATUS ((uint16_t)0x0010) /*!< configured information of duplex: full-duplex */#elif(PHY_TYPE == DP83848)#define PHY_SR 16U /*!< tranceiver status register */#define PHY_SPEED_STATUS ((uint16_t)0x0002) /*!< configured information of speed: 10Mbit/s */#define PHY_DUPLEX_STATUS ((uint16_t)0x0004) /*!< configured information of duplex: full-duplex */#elif(PHY_TYPE == SR8201F)#define PHY_SR PHY_REG_BCR /*!< tranceiver status register */#define PHY_SPEED_STATUS ((uint16_t)0x2000) /*!< configured information of speed: 10Mbit/s */#define PHY_DUPLEX_STATUS ((uint16_t)0x0100) /*!< configured information of duplex: full-duplex */#endif /* PHY_TYPE */

3,修改函数ErrStatus enet_init,修改内容如下图所示
4f1bd230-b402-11ee-aa22-92fbcf53809c.png

4,修改static void enet_default_init,修改内容如下图所示:
4f28dfe8-b402-11ee-aa22-92fbcf53809c.png

修改以上内容后,程序可以正确运行:
4f364a52-b402-11ee-aa22-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    447

    文章

    47808

    浏览量

    409183
  • GD32
    +关注

    关注

    7

    文章

    333

    浏览量

    23748
  • 以太网芯片
    +关注

    关注

    0

    文章

    14

    浏览量

    3255
收藏 人收藏

    评论

    相关推荐

    GD32 MCU移植

    gd32是一款国产单片机。该芯片在很多方面和STM32有异曲同工之处。资料不是很多! GD32在外设方面、和STM32没有多大区别。 只是需要注意资源的引脚分配。虽然和STM32使用方式一样、但是也存在
    发表于 03-23 13:40

    GD32换STM32芯片

    你是个成熟的工程师了,要学会偷偷用GD32换室友的STM32芯片
    发表于 08-05 07:20

    如何将STM32移植到GD32芯片

    GD32芯片内部flash同STM32有哪些区别?如何将STM32移植到GD32芯片上?
    发表于 09-23 09:31

    GD32芯片包添加步骤有哪些

    **GD32芯片包添加步骤**GD32开发环境可以有多个选择,常见的开发编译环境有:Keil4,keil5,IAR。本教程针对keil5如何添加GD32系列mcu
    发表于 11-22 08:30

    总结一下GD32F13x移植踩过的

    GD32F13x移植问题由于STM32交期太长,产品需要更换芯片。国产芯片有数家可选,GD32、MM32、AT32等等。当前我使用的是GD32
    发表于 02-11 07:54

    如何对以太网PHY芯片的rmii pin脚进行配置

    如何对以太网PHY芯片的时钟进行配置?如何对以太网PHY芯片的gmac进行配置?如何对以太网PHY芯片
    发表于 02-21 06:54

    GD32替换STM32?这些你别踩...

    的供电范围比STM32相对要窄一点。内核电压:GD32内核电压是1.2V,STM32内核电压是1.8V。GD的内核电压比STM32的内核电压要低,所以GD芯片在运行的时候运行功耗更低
    发表于 03-31 10:51

    GD32F系列单片机开发总结(二):GD32芯片包添加步骤

    **GD32芯片包添加步骤**GD32开发环境可以有多个选择,常见的开发编译环境有:Keil4,keil5,IAR。本教程针对keil5如何添加GD32系列mcu
    发表于 11-13 17:21 32次下载
    <b class='flag-5'>GD</b>32F系列单片机开发总结(二):<b class='flag-5'>GD32</b><b class='flag-5'>芯片</b>包添加步骤

    GD32芯片MCU ISP下载工具

    GD32芯片MCU ISP 下载工具
    发表于 10-08 14:53 15次下载

    STM32系列国产替代GD32芯片选型手册

    STM32系列国产替代GD32芯片选型手册
    发表于 05-22 16:39 9次下载

    GD32芯片怎么样?GD32芯片运行速度慢的原因

    GD32芯片是一种基于ARM Cortex-M3内核的微控制器(MCU),是中国长江存储器有限责任公司(GigaDevice)推出的产品系列。与NXP LPC、STMicroelectronics
    发表于 08-07 18:25 2178次阅读

    GD32和AT32哪个好?

    GD32和AT32哪个好? GD32和AT32是两种不同的微控制器型号,它们都是国内开发的芯片GD32系列由国内芯片制造商GigaDevi
    的头像 发表于 08-16 11:32 1441次阅读

    GD32与W5100的区别

    GD32与W5100的区别; 我需要1300字的文章 近年来,随着互联网的快速发展,越来越多的设备需要具备联网能力。在这个过程中,微控制器、以太网芯片等设备的应用越来越广泛。其中,GD32
    的头像 发表于 08-16 11:32 477次阅读

    GD32与W5500的区别

    GD32与W5500的区别 GD32和W5500是两款不同的产品,分别属于不同领域的芯片GD32是一款32位微处理器,而W5500则是一款完整的
    的头像 发表于 08-16 11:33 677次阅读

    gd32的全系列芯片有哪些?

    gd32的全系列芯片有哪些?  近年来,在嵌入式市场不断发展的背景下,越来越多的芯片公司开始进入嵌入式领域,并推出了一系列嵌入式芯片产品。而国产芯片
    的头像 发表于 08-16 11:33 2124次阅读