飞飞shannon 发表于 2024-3-19 17:23:54

stm32h743 lan8720 cube配置lwip无法ping通

# 1、问题简述

使用正点原子阿波罗的开发板,已经配置了lan8720的复位,其他直接安找网络例程中设置,但是无法ping通,能否帮忙解决一下。

while中就放了一个`MX_LWIP_Process();`,硬件配置如下:

# 2、mpu配置

!(data/attachment/forum/202403/19/172652f0rz6r40vkiknedv.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")

# 3、ETH配置

!(data/attachment/forum/202403/19/172728cq9i21w3596ima5p.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")

# 4、LWIP 设置

## 4-1、常规部分

!(data/attachment/forum/202403/19/172931pq1on81ueg7v8e1a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")

## 4-2、key部分

!(data/attachment/forum/202403/19/173057d7bnuzuduwwprffl.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")

## 4-3、芯片设置

!(data/attachment/forum/202403/19/173143r7e2711nzw1taqjs.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")

飞飞shannon 发表于 2024-3-20 17:03:02

cache设置透传后正常了

背影101 发表于 2024-3-20 09:10:41

你的里面能找到STM32C0的page吗

xmshao 发表于 2024-3-20 09:40:10

先确认基本硬件配置没问题,网卡信息、各种地址信息;
另外,那个DMA描述符的MPU配置,把Cacheable permission选择Disable试试,一般这块配置成DEVICE属性.
另外你把lwip用到的内存堆配置成Normal and Nor Cacheable模式,你可以参考ST例程的那些配置。

飞飞shannon 发表于 2024-3-20 13:55:56

背影101 发表于 2024-3-20 09:10
你的里面能找到STM32C0的page吗


是这些吗?

!(data/attachment/forum/202403/20/135551aa8a81oljo93z78p.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")

飞飞shannon 发表于 2024-3-20 14:31:21

xmshao 发表于 2024-3-20 09:40
先确认基本硬件配置没问题,网卡信息、各种地址信息;
另外,那个DMA描述符的MPU配置,把Cacheable permiss ...

用正点原子自带的代码可以正常通信,硬件是没问题,但不确定硬件配置是否有问题。

现在初始化完成后rj45的绿灯亮橙灯闪,看样子硬件是通了,但是ping不通。

我尝试把mpu改成以下配置方式依然ping不通。最后的代码是正点原子对mpu的配置信息,准备挨个替换一下试试

!(data/attachment/forum/202403/20/140711caritbo62mdomo2a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")



下面是正点原子mpu的配置:

```
//以太网描述符和缓冲区
__attribute__((at(0x30040000))) ETH_DMADescTypeDefDMARxDscrTab;      //以太网Rx DMA描述符
__attribute__((at(0x30040060))) ETH_DMADescTypeDefDMATxDscrTab;      //以太网Tx DMA描述符
__attribute__((at(0x30040200))) uint8_t Rx_Buff;//以太网接收缓冲区

//设置网络所使用的0X30040000的ram内存保护
void NETMPU_Config(void)
{
    MPU_Region_InitTypeDef MPU_InitStruct;

    HAL_MPU_Disable();
    MPU_InitStruct.Enable=MPU_REGION_ENABLE;
    MPU_InitStruct.BaseAddress=0x30040000;
    MPU_InitStruct.Size=MPU_REGION_SIZE_256B;
    MPU_InitStruct.AccessPermission=MPU_REGION_FULL_ACCESS;
    MPU_InitStruct.IsBufferable=MPU_ACCESS_BUFFERABLE;
    MPU_InitStruct.IsCacheable=MPU_ACCESS_NOT_CACHEABLE;
    MPU_InitStruct.IsShareable=MPU_ACCESS_SHAREABLE;
    MPU_InitStruct.Number=MPU_REGION_NUMBER5;
    MPU_InitStruct.TypeExtField=MPU_TEX_LEVEL0;
    MPU_InitStruct.SubRegionDisable=0x00;
    MPU_InitStruct.DisableExec=MPU_INSTRUCTION_ACCESS_ENABLE;
    HAL_MPU_ConfigRegion(&MPU_InitStruct);
    HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT);
}

```

xmshao 发表于 2024-3-20 16:20:10

不好意思。我刚才提到的地址数据问题是我看错了。位数太多看花了。

xmshao 发表于 2024-3-20 16:20:10

:)
页: [1]
查看完整版本: stm32h743 lan8720 cube配置lwip无法ping通