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

请问STM32H7 在设置MPU时 为什么将SRAM1地址开始的512K(SRAM1-3)设置为Strongly ordered memory会死

[复制链接]
传说中的路过 提问时间:2024-3-6 14:32 / 已解决

微信截图_20240306143020.png

MPU配置截图

这样配置会进入hardfault,这么配置的原因是这段里某些地址我用做了ETH和LWIP的缓存 标识符啥的

不知道这么配置为什么就会进入Hardfault,但是如果我把MPU Cacheable Permission打开后,就是正常的

不知道各位大佬有没有遇到过

微信截图_20240306143020.png
收藏 评论7 发布时间:2024-3-6 14:32

举报

7个回答
传说中的路过 最优答案 回答时间:2024-3-7 10:02:03

xmshao 发表于 2024-3-6 17:10
你就先这样配置测试下吧,配置成device:</p>
<p>

发生问题是因为发生了未对齐访问 也就是我读取到SCB->CFSR寄存器为0x01000000,我正在寻找是哪里出现了未对齐访问

在M7 TRM的手册里有这样的说明 device 和strongly-ordered 是不能未对齐的,normal是可以的,所以我配置成normal类型是可以用的,device和strongly-ordered类型会硬错误

微信截图_20240307095826.jpg

xmshao 回答时间:2024-3-6 17:10:08
你就先这样配置测试下吧,配置成device:


Cacheable=Disable;
Bufferable=enable;
shareability =disable;
xmshao 回答时间:2024-3-6 16:25:08
这里做些分析,给些参考:


如果你想把某块区间配置为strongly ordered属性,意味着这块区域是共享的。


就你现有配置,此时那个shareable属性怎么设置不关注了。


然后你调整Cacheable permission又OK了,假定其它配置如你贴图所示,这时


这块存储空间变成不共享了。 难道说是因为共享访问导致的异常?


不过可以肯定,这块区域的Cacheable属性是可以开、关的。


感觉你是担心因为Cache导致一致性问题,这个地方配置成device属性比较合适。


比如你这样配置试试:


TEX=0;
Cacheable=Disable;
Bufferable=enable;


至于shareability配置,你根据需要来,需要共享就enable,不需要就disable.
传说中的路过 回答时间:2024-3-6 16:21:32

是因为SRAM1-3的地址空间不可以设置为Strongly ordered类型吗

传说中的路过 回答时间:2024-3-6 17:35:28

xmshao 发表于 2024-3-6 17:10
你就先这样配置测试下吧,配置成device:</p>
<p>

不太行 不过TEX=1 C=0 B=0 S=0或者TEX=0 C=1 B=0 S=0 都是OK的 是不是SRAM本身必须要用Normal,而不能用device或者Strongly ordered类型啊

xmshao 回答时间:2024-3-8 09:50:07

传说中的路过 发表于 2024-3-7 10:02</p>
<p>发生问题是因为发生了未对齐访问 也就是我读取到SCB-&gt;CFSR寄存器为0x01000000,我正在寻找是哪里出现 ...

[md]en.谢谢反馈!

strongly ordered是有这个限制。不过 非对齐访问导致出错 是可以看到相关提示的。

还有就是你这个地方不建议配置为strongly order,太浪费性能了。

Simon.Tao 回答时间:2024-6-12 09:45:39
内存不够需要外扩 LY的SPI PSRAM,联系陶13764140309

所属标签

相似问题

官网相关资源

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