硬汉嵌入式论坛

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

[MPU] MPU配置跟MDK5的不同优化等级可产生不同的运行效果,也许低优先级可用,高优先级就会死掉

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106840
QQ
发表于 2018-5-25 01:26:55 | 显示全部楼层 |阅读模式
到了H7阶段,因为里面有个随机的Cache,会有很多奇葩问题,别小看这个东西,MPU如果不将其约束好,各种坑人的问题,想都想不到。

比如配置一块RAM为WB模式,在低优化等级下,工作的很好,但是换到高优化等级下,竟然死掉了。所以配置一个合理的MPU配置是很重要的


1.png
2.png
回复

使用道具 举报

0

主题

1

回帖

4

积分

新手上路

积分
4
发表于 2018-6-6 09:32:40 | 显示全部楼层
@eric2013 楼主,我的也死机了,上电运行几秒钟后,就死机了,
代码如下:
        MPU_InitStruct.Enable = MPU_REGION_ENABLE;
        MPU_InitStruct.BaseAddress = 0x60000000;
        MPU_InitStruct.Size = MPU_REGION_SIZE_512MB;
        MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
        MPU_InitStruct.IsBufferable = MPU_ACCESS_NOT_BUFFERABLE;
        MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;
        MPU_InitStruct.IsShareable = MPU_ACCESS_SHAREABLE;
        MPU_InitStruct.Number = MPU_REGION_NUMBER2;
        MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;
        MPU_InitStruct.SubRegionDisable = 0x00;
        MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;

        HAL_MPU_ConfigRegion(&MPU_InitStruct);
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106840
QQ
 楼主| 发表于 2018-6-7 01:39:16 | 显示全部楼层
Alisa_TP3Ed 发表于 2018-6-6 09:32
@eric2013 楼主,我的也死机了,上电运行几秒钟后,就死机了,
代码如下:
        MPU_InitStruct.Enabl ...

这个是不是SDRAM,配置成WT模式就行。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 05:50 , Processed in 0.185888 second(s), 34 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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