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")
cache设置透传后正常了
你的里面能找到STM32C0的page吗
先确认基本硬件配置没问题,网卡信息、各种地址信息;
另外,那个DMA描述符的MPU配置,把Cacheable permission选择Disable试试,一般这块配置成DEVICE属性.
另外你把lwip用到的内存堆配置成Normal and Nor Cacheable模式,你可以参考ST例程的那些配置。 背影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")
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);
}
```
不好意思。我刚才提到的地址数据问题是我看错了。位数太多看花了。 :)
页:
[1]