阅读:2773回复:1
2440 WinCE5.0 显存DMA操作问题
请教一个问题 在2440 + CE5.0 下 我用DMA把内存中一段数据传输到外设,没有任何问题,但是我用DMA把显存中的数据传输到外设就有问题,好像DMA不能读写显存,有谁知道是怎么回事。
代码: g_pDMAregs->DISRC3 = (UINT32)(0x30100000);// + g_ptDisplayPos.x * 2); g_pDMAregs->DISRCC3 = (0x00 << 1) | (0x0 << 0); g_pDMAregs->DIDST3 = 0x28400000; g_pDMAregs->DIDSTC3 = (0x00 << 2) | (0x00 < 1) | (0x01 << 0); g_pDMAregs->DCON3 = (0x01 << 31) | (0x01 << 30) | (0x01 << 29) | (0x00 < 28) | (0x01 << 27) |\ (0x00 << 23) | (0x00 << 22) | (0x01 << 20) | (320); g_pDMAregs->DMASKTRIG3 = (0x01 << 1) | (0x01 << 0); 0x30100000 是我显存物理地址, 0x28400000 是我外设物理地址。 我把0x30100000修改成内存其它地址也工作正常, 就是显存区域不能工作 在ADS下面工作正常,在WinCE下面操作就有问题。 |
|
沙发#
发布于:2008-08-29 16:13
在wince下面,你把物理地址转换成虚拟地址,然后操作虚拟地址试试.
|
|