|
|
请教下,h7 的 nand 配置mpu保护区域大小时为 2GB时会出现系统错误 ?
大小配置为 512MB 时,工作正常,貌似是小雨 <= 512MB 大小的都可以,
请问这个是怎么个情况 ??
配置如下:
MPU_InitStruct.Enable = MPU_REGION_ENABLE; //使能该保护区域
MPU_InitStruct.BaseAddress = 0x80000000; //设置基址
MPU_InitStruct.Size = MPU_REGION_SIZE_512MB; //设置保护区域大小, 这个大小不能够超过 1GB ,否则会出现 系统错误 就是这个地方 ???????????????????
MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS; //设置访问权限
MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE; //允许缓冲
MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE; //禁止cache, 不能用MPU_ACCESS_CACHEABLE;会出现2次CS、WE信号
MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE; //禁止共用
MPU_InitStruct.Number = MPU_REGION_NUMBER5; //设置保护区域
MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0; //设置类型扩展域为level1
MPU_InitStruct.SubRegionDisable = 0x00; //禁止子区域
MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE; //允许指令访问(允许读取指令)
HAL_MPU_ConfigRegion(&MPU_InitStruct);
|
|