[应用相关] mpu s bit 的功能

[复制链接]
 楼主| powerantone 发表于 2022-9-13 09:29 | 显示全部楼层 |阅读模式
我在用stm32h743时,在调由cubemx生成的MPU_Config()时
看到有这条
MPU_InitStruct.IsShareable = MPU_ACCESS_SHAREABLE;
我不理解设置shareable属性的功能是什么?
上下文的语句如下:
void MPU_Config(void)
{
  MPU_Region_InitTypeDef MPU_InitStruct = {0};

  /* Disables the MPU */
  HAL_MPU_Disable();
  /** Initializes and configures the Region and the memory to be protected
  */
  MPU_InitStruct.Enable = MPU_REGION_ENABLE;
  MPU_InitStruct.Number = MPU_REGION_NUMBER0;
  MPU_InitStruct.BaseAddress = 0x20020000;
  MPU_InitStruct.Size = MPU_REGION_SIZE_16KB;
  MPU_InitStruct.SubRegionDisable = 0x0;
  MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;
  MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
  MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;
  MPU_InitStruct.IsShareable = MPU_ACCESS_SHAREABLE;
  MPU_InitStruct.IsCacheable = MPU_ACCESS_CACHEABLE;
  MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE;

  HAL_MPU_ConfigRegion(&MPU_InitStruct);
  /* Enables the MPU */
  HAL_MPU_Enable(MPU_HFNMI_PRIVDEF);

}

查ARM®v7-M ArchitectureReference Manual
使用mpu和catch 时,看到:MPU Region Attribute and Size Register, MPU_RASR
160038id8i59iagoc6z1uc.jpg

我要问的时,在normal memory 时,s bit 设为shareable 或Not shareable 所代表的意思,是catch对这个region的访问被禁用了吗?还是什么结果?
V853 发表于 2022-9-13 13:34 | 显示全部楼层
可以试一下把s bit设置成Not shareable,看看访问region是否正常。
Bowclad 发表于 2022-9-13 20:04 | 显示全部楼层
sbit设置成Not shareable
您需要登录后才可以回帖 登录 | 注册

本版积分规则

676

主题

3894

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部