使用0x0c000000时,不想使用cache功能,所以想使用地址映射功能,将0x0c000000,映射到其他地址空间。代码如下:
MPAX_Config MPAX_cfg_table[]=
{
//{0x0C000000, 0x050000000>>4, 64*1024, MP_SR|MP_SW|MP_SX|MP_UR|MP_UW|MP_UX},/*MSMC_RAM, RWX*/
{0x0c000000, 0x00cf00000>>4, 64*1024, MP_SR|MP_SW|MP_SX|MP_UR|MP_UW|MP_UX},/*MSMC_RAM, RWX*/
};
KeyStone_XMC_MPAX_setup(MPAX_cfg_table, 0,
sizeof(MPAX_cfg_table)/sizeof(MPAX_Config));
KeyStone_SMS_MPAX_setup(
//KeyStone_SES_MPAX_setup(
MPAX_cfg_table,//MPAX_Config MPAX_cfg[],
1,//Uint32 firstSeg,
sizeof(MPAX_cfg_table)/sizeof(MPAX_Config),//Uint32 numSegs,
0//Uint32 PrivID
);
但是映射没有成功。
Thomas Yang1:
你好,请问你映射不成功的具体现象是什么呢?
你是想映射到哪个地址,期待的属性是什么样的呢?
user1212849:
回复 Thomas Yang1:
假设,将0x0c000000的地址映射到0x50000000,那么对0x0c000000的空间进行写0x12345678,那么我的理解是在空间0x50000000,看到该空间的值为0x12345678。目前,DDR映射成功,现象是:将0x90000000空间映射到0x81000000,则对0x90000000写操作,在0x810000000空间看到0x90000000空间的值。
user1212849:
回复 Thomas Yang1:
我映射的目的是去掉多个核访问空间空间时,去掉cache一致性的操作。
user1212849:
回复 user1212849:
假设,将0x0c000000的地址映射到0x50000000,那么对0x0c000000的空间进行写0x12345678,那么我的理解是在空间0x50000000,看到该空间的值为0x12345678。目前,DDR映射成功,现象是:将0x90000000空间映射到0x810000000,则对0x90000000写操作,在0x810000000空间看到0x90000000空间的值。
user1212849:
回复 Thomas Yang1:
目前我的测试结果是:可以将起始地址为0x9000-0000的空间映射到起始地址为0x8-1000-0000的空间,不能将起始地址为0x0c00-0000的空间映射到起始地址为0x5000-0000的空间。