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

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
收藏 评论8 发布时间:2024-3-19 17:23

举报

8个回答
飞飞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
lilingzhi198710 回答时间:2024-10-11 13:22:39

飞飞shannon 发表于 2024-3-20 17:03
cache设置透传后正常了

你好,请问cache设置透传如何设置

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版