我有一个QDMA代码,原本在C64X+的DSP上运行没有问题,现在移植到DM81XX上DSP上,却无法DMA成功。这个代码是通过直接仿问DMA寄存器来实现的,因为代码相对比较多,目前帖出部分如下:
C64X+: #define QDMA_QCHMAP(c) (*(volatile uint32_t *)(0x01C00200+(c)*4))
根据了DSP寄存器映射,做了0x01C00000,
C67X: #define DMA_BASE_ADDR (0x09000000)
#define QDMA_QCHMAP(c) (*(volatile uint32_t *)(DMA_BASE_ADDR + 0x200+(c)*4))
问题如下:
1.我上面这样针对C67X的寄存器地址偏移正不正确?
2.在EDMA PARAM部分,源地址与目标地址的地址填写应该是怎么样的,也就是L1D, L2 RAM, SDRAM在C67X下面的地址是不是要有一个偏移的,还是直接就是用DSP得到的地址填写?
请高手帮忙回答下,或者觉得说不清楚可以直接加我QQ:541816328, 不胜感激。
Andy Yin1:
DM81xx的问题请发到达芬奇的子论坛,谢谢合作。
http://www.deyisupport.com/question_answer/dsp_arm/davinci_digital_media_processors/f/39.aspx