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

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

    关注

    453

    文章

    50300

    浏览量

    421383
  • GD32
    +关注

    关注

    7

    文章

    403

    浏览量

    24142
  • 以太网芯片
    +关注

    关注

    0

    文章

    14

    浏览量

    3345
收藏 人收藏

    评论

    相关推荐

    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

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

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

    以太网芯片相关资料下载

    以太网芯片相关资料下载。
    发表于 03-10 15:15 7次下载

    GD32芯片MCU ISP下载工具

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

    Wiznet以太网芯片设计指南

    电子发烧友网站提供《Wiznet以太网芯片设计指南.zip》资料免费下载
    发表于 02-02 14:33 10次下载
    Wiznet<b class='flag-5'>以太网</b><b class='flag-5'>芯片</b>设计指南

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

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

    以太网物理层芯片的作用

    1、以太网物理层(PHY)芯片 以太网物理层(PHY)芯片以太网传输的物理接口收发器。应用于通信、汽车电子、消费电子、工控等众多领域。
    的头像 发表于 07-18 11:19 4359次阅读

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

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

    GD32和AT32哪个好?

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

    GD32与W5500的区别

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

    gd32的全系列芯片有哪些?

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

    以太网交换芯片是什么 以太网交换芯片的作用有哪些

    以太网交换芯片是一种专门设计用于处理以太网数据包的集成电路,它是网络交换机的核心组件。这种芯片负责在网络中转发数据包,确保数据能够从源端口传输到目的端口。
    的头像 发表于 03-21 16:14 1726次阅读

    以太网交换芯片公司有哪些

    以太网交换芯片公司有哪些?
    的头像 发表于 03-22 16:49 1778次阅读