硬汉嵌入式论坛

 找回密码
 立即注册
查看: 254|回复: 4
收起左侧

[以太网] CubeMX配置了MPU但无法ping通

[复制链接]

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2025-4-2 18:15:02 | 显示全部楼层 |阅读模式
本帖最后由 vleygnix 于 2025-4-2 18:17 编辑

MPU的配置



ETH的配置

LwIP静态IP,io口最快,其他默认,使用FreeRTOS v2,栈足够大,不使用DTCM

通过map文件注意到还有某些网络相关文件落在了D1域,所以把D1域配置成直写
(本来想把D1域也改成Device的,但是D1域 level 0 + no cache 会死在HardFault_Handler,不知道为什么)

现在的问题是只要在上面关闭DCache就能ping成功,开启就不行,求解


b37cffba6f9a5aea85bd56b40439e67.png
f3e05249988edd3da7aee05e78ce730.png
回复

使用道具 举报

0

主题

15

回帖

15

积分

新手上路

积分
15
发表于 2025-4-3 09:57:12 | 显示全部楼层
MPU设置 把你的 30040000改成 30000000 , size改成512KB , TEX改为Level1 ,Bufferable改为disable ,试一下,应该好使,但是性能不是最好的
回复

使用道具 举报

7

主题

33

回帖

54

积分

初级会员

积分
54
发表于 2025-4-3 15:57:08 | 显示全部楼层
ETH只能在D2吧
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2025-4-5 16:43:42 | 显示全部楼层
经过评论区大哥的指点,确实通了
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2025-4-5 16:59:36 | 显示全部楼层
经过评论区大佬的建议,确实通了

首先不要学我乱配D1域的MPU,不懂的不管他最好

经过试验,以太网的MPU配置可以从(0x30000000 -
0x30040000)开始都行,TEX = 1,C = B = 0;
但是大小必须是512KB,小一点都不行,可以大

(明明从0x30000000开始的话用512KB可以,但是从0x30040000开始用256KB就是不行,离了大谱)


鉴于H7的0x30048000 - 0x37FFFFFF都是保留,所以配大一点应该也没关系




如果实在不行,可以试试关闭DCache或者往ethernetif.c文件里面塞满SCB_CleanInvalidateDCache();也可以,就是有点麻烦和抽象
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-25 21:38 , Processed in 0.457873 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表