| cache开了,mpu也设置了,难道是cache和mpu的问题?
 
 实际上我也怀疑过cache和mpu,到目前为止我都还没有搞清楚cache和mpu的原理和用法,只是照搬例子代码,修改为已用。
 
 会不会是cache和mpu的问题?cache和mpu之前的F1系列的单片机没有,到了这种高级点的单片机带cache和mpu的感觉坑好多,总感觉奇奇怪怪的。
  
 代码如下:
 void CPU_CACHE_Enable(void)
 {
 /* Enable I-Cache */
 SCB_EnableICache();
 
 /* Enable D-Cache */
 SCB_EnableDCache();
 }
 
 void MPU_Config(void)
 {
 MPU_Region_InitTypeDef MPU_InitStruct;
 
 /* Disable the MPU */
 HAL_MPU_Disable();
 
 /* Configure the MPU attributes as WT for SRAM */
 MPU_InitStruct.Enable = MPU_REGION_ENABLE;
 MPU_InitStruct.BaseAddress = 0x60000000;
 MPU_InitStruct.Size = MPU_REGION_SIZE_256MB;
 MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
 MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE;
 MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_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);
 }
 
 |