硬汉嵌入式论坛

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

[MPU] 关于MPU的设置bufferable的询问

[复制链接]

16

主题

87

回帖

135

积分

初级会员

积分
135
发表于 2020-2-26 15:27:45 | 显示全部楼层 |阅读模式

主要是关于设备的   BUFFERABLE 属性。

1)例子程序里 FMC这里
  1. /* 配置FMC扩展IO的MPU属性为Device或者Strongly Ordered */
  2.         MPU_InitStruct.Enable           = MPU_REGION_ENABLE;
  3.         MPU_InitStruct.BaseAddress      = 0x60000000;
  4.         MPU_InitStruct.Size             = ARM_MPU_REGION_SIZE_64KB;       
  5.         MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
  6.         MPU_InitStruct.IsBufferable     = <font color="#ff0000">MPU_ACCESS_BUFFERABLE;</font>
  7.         MPU_InitStruct.IsCacheable      = MPU_ACCESS_NOT_CACHEABLE;        /* 不能用MPU_ACCESS_CACHEABLE;会出现2次CS、WE信号 */
  8.         MPU_InitStruct.IsShareable      = MPU_ACCESS_NOT_SHAREABLE;
  9.         MPU_InitStruct.Number           = MPU_REGION_NUMBER1;
  10.         MPU_InitStruct.TypeExtField     = MPU_TEX_LEVEL0;
  11.         MPU_InitStruct.SubRegionDisable = 0x00;
  12.         MPU_InitStruct.DisableExec      = MPU_INSTRUCTION_ACCESS_ENABLE;
复制代码
这个bufferable属性是什么意思呢?
device 和 strongly ordered 这个存储特性区别就是 开不开启BUFFER。


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106840
QQ
发表于 2020-2-26 15:35:57 | 显示全部楼层
主要就是这张图
QQ截图20200226153555.png
回复

使用道具 举报

16

主题

87

回帖

135

积分

初级会员

积分
135
 楼主| 发表于 2020-2-26 15:44:00 | 显示全部楼层

嗯!
是看的这张图。 因为您的代码注释里用的是DEVICE 或 STRONGLY ORDERED.
然后设置成了DEVICE。

什么时候必须用STRONGLY ORDERED不是很清楚。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106840
QQ
发表于 2020-2-26 16:58:24 | 显示全部楼层
gpfrank 发表于 2020-2-26 15:44
嗯!
是看的这张图。 因为您的代码注释里用的是DEVICE 或 STRONGLY ORDERED.
然后设置成了DEVICE。

程序这里,Device或者Strongly order均可。

两个都能用的时候,用Device性能稍微好一丢丢。
回复

使用道具 举报

16

主题

87

回帖

135

积分

初级会员

积分
135
 楼主| 发表于 2020-2-27 10:53:25 | 显示全部楼层
eric2013 发表于 2020-2-26 16:58
程序这里,Device或者Strongly order均可。

两个都能用的时候,用Device性能稍微好一丢丢。

了解! 非常感谢!
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2022-10-8 14:39:56 | 显示全部楼层
eric2013 发表于 2020-2-26 16:58
程序这里,Device或者Strongly order均可。

两个都能用的时候,用Device性能稍微好一丢丢。

我发现如果打开了BUFFERABLE,则SCB_CleanInvalidateDCache_by_Addr会在之后几条指令才真正完成,否则在执行时候就完成了,SCB_CleanInvalidateDCache无影响,不知道为什么.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106840
QQ
发表于 2022-10-9 09:39:21 | 显示全部楼层
treasafetchbtz9 发表于 2022-10-8 14:39
我发现如果打开了BUFFERABLE,则SCB_CleanInvalidateDCache_by_Addr会在之后几条指令才真正完成,否则在执 ...

没太听懂你的意思,什么功能无影响
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 08:16 , Processed in 0.254555 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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