static void MPU_Config( void )
{
MPU_Region_InitTypeDef MPU_InitStruct;
/* 禁止 MPU */
HAL_MPU_Disable();
/* 配置 AXI SRAM 的 MPU 属性为 Write back, Read allocate Write allocate */
//使能MPU
MPU_InitStruct.Enable = MPU_REGION_ENABLE;
//指定MPU保护的内存起始地址,注意要和下面的大小进行对齐
MPU_InitStruct.BaseAddress = 0x24000000;
//配置保护的内存大小
MPU_InitStruct.Size = MPU_REGION_SIZE_512KB;
//配置区域访问权限类型
MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
//在开启Cache下是否使用缓冲
MPU_InitSt ruct.IsBufferable = MPU_ACCESS_BUFFERABLE;
//是否开启Cache
MPU_InitStruct.IsCacheable = MPU_ACCESS_CACHEABLE;
//是否开启共享
MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;
MPU_InitStruct.Number = MPU_REGION_NUMBER0;
//配置缓存的策略
MPU_InitStruct.TypeExtField = M PU_TEX_LEVEL1;
//是否开启子区域
MPU_InitStruct.SubRegionDisable = 0x00;
//指定指令访问状态
MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;
HAL_MPU_ConfigRegion(&MPU_InitStruct);
HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT);
}
版权声明:本文为wzm_c1386666原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。