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及各路专家帮忙检视下,指出问题所在,不胜感激!
Ryan BL:
使用如上的代码,将MSMC地址的0x0c000000映射到0x1c000000,期望core和SRIO以及edma等外设均能从0x1c000000访问MSMC重映射空间(配置为非cache方便数据共享)现在在core上使用内存查看,core地址成功映射,但是srio的dio写操作看起来没错,但是数据用内存查看器看没有写入;烦请ti及各路专家帮忙检视下,指出问题所在,不胜感激!
Shine:
回复 Ryan BL:
感谢分享解决方法。
另外,给您一直热心回复帖子帮助其他客户点赞!
Ryan BL:
回复 Shine:
呀, 被表扬啦*—*
感谢,顺祝节日快乐!