你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32h743 lan8720 cube配置lwip无法ping通

[复制链接]
飞飞shannon 提问时间:2024-3-19 17:23 / 已解决

1、问题简述

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

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

2、mpu配置

image.png

3、ETH配置

image.png

4、LWIP 设置

4-1、常规部分

image.png

4-2、key部分

image.png

4-3、芯片设置

image.png

image.png
收藏 评论7 发布时间:2024-3-19 17:23

举报

7个回答
飞飞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吗

是这些吗?

image.png

image.png
飞飞shannon 回答时间:2024-3-20 14:31:21

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

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

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

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

image.png

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

//以太网描述符和缓冲区
__attribute__((at(0x30040000))) ETH_DMADescTypeDef  DMARxDscrTab[ETH_RX_DESC_CNT];      //以太网Rx DMA描述符
__attribute__((at(0x30040060))) ETH_DMADescTypeDef  DMATxDscrTab[ETH_TX_DESC_CNT];      //以太网Tx DMA描述符
__attribute__((at(0x30040200))) uint8_t Rx_Buff[ETH_RX_DESC_CNT][ETH_MAX_PACKET_SIZE];  //以太网接收缓冲区

//设置网络所使用的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
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版