void
Xmc_map(
uint8_t priorityIndex,
uint32_t pa4K,
uint32_t va4k,
uint8_t pow2Size,
uint8_t premission
){
uint32_t H = CSL_FMK(XMC_XMPAXH_BADDR, va4k)
| CSL_FMK(XMC_XMPAXH_SEGSZ, pow2Size);
uint32_t L = CSL_FMK(XMC_XMPAXL_RADDR, pa4K)
| CSL_FMK(XMC_XMPAXL_PERM, premission);
hXmc->XMPAX[priorityIndex].XMPAXH = H;
hXmc->XMPAX[priorityIndex].XMPAXL = L;
//MAP MSMC, this is only used for MSMC remap right now.
if (premission & MPAX_EXT) {
int master = DNUM;
CSL_MSMC_unlockSES(DNUM);
hMsmc->SES_MPAX_PER_PRIVID[master].SES[7-priorityIndex].MPAXH = H;
hMsmc->SES_MPAX_PER_PRIVID[master].SES[7-priorityIndex].MPAXL = L;
CSL_MSMC_lockSES(DNUM);
if (DNUM == 0) {//map other peripheral masters.
for (short master = 8; master < 16; master++) {
CSL_MSMC_unlockSES(DNUM);
hMsmc->SES_MPAX_PER_PRIVID[master].SES[7-priorityIndex].MPAXH = H;
hMsmc->SES_MPAX_PER_PRIVID[master].SES[7-priorityIndex].MPAXL = L;
CSL_MSMC_lockSES(DNUM);
}
}
}
}
使用如上的代码,将MSMC地址的0x0c000000映射到0x1c000000,期望core和SRIO以及edma等外设均能从0x1c000000访问MSMC重映射空间(配置为非cache方便数据共享)
现在在core上使用内存查看,core地址成功映射,但是srio的dio写操作看起来没错,但是数据用内存查看器看没有写入;
烦请ti及各路专家帮忙检视下,指出问题所在,不胜感激!