如题,请问Mirror area of external address space xSPI0和External address space xSPI0在读写访问上有什么区别?
我尝试使用如图所示代码进行验证,发现对Mirror area of external address space xSPI0区域进行写操作后,从Mirror area of external address space xSPI0读出来的数据不对,但是从External address space xSPI0读出来的就是对的。
请问使用的是哪款RZ?mirror区域一般可以访问与真实内存区域相同的物理内存,但是有的真实地址区域不支持cache,mirror则支持,如果开启了cache功能,那么mirror区域无法直接读取物理地址数据,请检查配置是否开启cache:
您好,使用的RZN2L,配置如下,也有尝试修改BSP_CFG_EL1_MPU_REGION04_SH为BSP_NON_SHAREABLE或BSP_INNER_SHAREABLE,现象一样
/* Region04 : Mirror area of external address space */ #define BSP_CFG_EL1_MPU_REGION04_BASE (0x40000000) #define BSP_CFG_EL1_MPU_REGION04_LIMIT (0x5FFFFFFF) #define BSP_CFG_EL1_MPU_REGION04_SH (BSP_OUTER_SHAREABLE) #define BSP_CFG_EL1_MPU_REGION04_AP (BSP_EL1RW_EL0RW) #define BSP_CFG_EL1_MPU_REGION04_XN (BSP_EXECUTE_ENABLE) #define BSP_CFG_EL1_MPU_REGION04_ATTRINDEX (BSP_ATTRINDEX3) #define BSP_CFG_EL1_MPU_REGION04_ENABLE (BSP_REGION_ENABLE)
/* Region05 : External address space */ #define BSP_CFG_EL1_MPU_REGION05_BASE (0x60000000) #define BSP_CFG_EL1_MPU_REGION05_LIMIT (0x7FFFFFFF) #define BSP_CFG_EL1_MPU_REGION05_SH (BSP_NON_SHAREABLE) #define BSP_CFG_EL1_MPU_REGION05_AP (BSP_EL1RW_EL0RW) #define BSP_CFG_EL1_MPU_REGION05_XN (BSP_EXECUTE_ENABLE) #define BSP_CFG_EL1_MPU_REGION05_ATTRINDEX (BSP_ATTRINDEX1) #define BSP_CFG_EL1_MPU_REGION05_ENABLE (BSP_REGION_ENABLE)