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

STM32F4内存保护MPU

[复制链接]
huahuahnu 提问时间:2022-9-6 14:24 / 未解决
看了编程手册关于MPU的使用仍然一头雾水,还是不知道如何配置MPU中的tex,C,B,S位
  1.   MPU_InitStruct.IsBufferable = MPU_ACCESS_NOT_BUFFERABLE;
  2.   MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;
  3.   MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;
  4.   MPU_InitStruct.Number = RAM_REGION_NUMBER;
  5.   MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;
复制代码
有什么资料是结合实际应用理解这几个关键位配置的?
1 收藏 评论2 发布时间:2022-9-6 14:24

举报

2个回答
xmshao 回答时间:2022-9-7 13:07:12
虽然说你这里只提及几个字母,其实涉及东西很多。这里跟你聊聊,供你参考。


本质上讲,类似资料都来自于ARM公司,如果可能,尽量到ARM网站搜索相关资料。


这里推荐下载ARM V7-M架构参考手册,里面有较为详细的介绍。其中有个表格
B3-13 有罗列 TEX/C/B的配置与相关存储属性的对应关系。


比方 TEX=000,C=0,B=0, Device memory type, sharable.


这里C 对应是否可以使用Cache,B是否支持Bufferabe,这个bufferable不太好理解,
ARM手册上也没做太多介绍。可以简单地大致理解为是否支持写操作时仍然运行代码。


若要深入理解它,可能需要阅读相关AXI协议、甚至指令系统。


一把来讲,strongly ordered Memory 不支持Cache,不支持bufferable, 默认共享。


Device memory 不支持Cache,但可以支持bufferable, 共享特性可配置。


Normal memory 支持Cacheable,bufferable,Sharable,均可配置。


ST公司提供的F7 H7系列的cube库文件里有不少例程可以参考,看看别人对于不同的
存储区,尤其外扩存储区怎么做存储类型的界定和属性配置的,去体会体会,找找感觉。


ST在这方面的资料,除了你提到的编程手册外,还有两个应用笔记AN4838 AN4839可以阅读。
huahuahnu 回答时间:2022-9-23 16:53:09
xmshao 发表于 2022-9-7 13:07
虽然说你这里只提及几个字母,其实涉及东西很多。这里跟你聊聊,供你参考。

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