stm32的mpu配置

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版权协议,转载请附上原文出处链接和本声明。