OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4405|回复: 2

MPU内存保护中打开MPU_InitStruct.IsCacheable = MPU_ACCESS_CACHEABLE,后SDRAM就不能正常的写数据,谁能帮我解惑下

[复制链接]

10

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2016-12-31
在线时间
32 小时
发表于 2017-2-15 13:45:47 | 显示全部楼层 |阅读模式
1金钱
static void MPU_Config(void)
{
  MPU_Region_InitTypeDef MPU_InitStruct;

  /* Disable the MPU */
  HAL_MPU_Disable();

  /* Configure the MPU attributes as WB for SDRAM */
  MPU_InitStruct.Enable = MPU_REGION_ENABLE;
  MPU_InitStruct.BaseAddress = 0xC0000000;
  MPU_InitStruct.Size = MPU_REGION_SIZE_32MB;
  MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
  MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE;
  MPU_InitStruct.IsCacheable = MPU_ACCESS_CACHEABLE;
  MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;
  MPU_InitStruct.Number = MPU_REGION_NUMBER0;
  MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;
  MPU_InitStruct.SubRegionDisable = 0x00;
  MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;

  HAL_MPU_ConfigRegion(&MPU_InitStruct);

  /* Enable the MPU */
  HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT);
}将  MPU_InitStruct.IsCacheable = MPU_ACCESS_CACHEABLE;改成
  MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;后
sdram就可以正常的写书数据了,谁能帮小弟弟我解释下

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2016-12-31
在线时间
32 小时
 楼主| 发表于 2017-2-15 13:45:48 | 显示全部楼层
浪人望断了天涯 发表于 2017-2-15 13:53
有没有那位道友遇到过同样的情况

看来道友们都很忙啊
回复

使用道具 举报

10

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2016-12-31
在线时间
32 小时
 楼主| 发表于 2017-2-15 13:53:57 | 显示全部楼层
有没有那位道友遇到过同样的情况
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 16:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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