大家好,我最近在使用i.MX6Q做一个数据采集的应用,数据采集用的一片FPGA。FPGA和i.MX6Q之间使用的是WEIM接口。环境是linux-kernel 3.0.35
在我的驱动程序中,我按照rm.pdf中的说明对WEIM进行了配置,并通过void *eim_mem = ioremap_nocache(WEIM_CS0_BASE_ADDR, LENTH);将WEIM的外部存储区与映射到了内核空间,并且在内核空间通过memcpy的方式,实现了ARM和FPGA的通信。
现在我想使用SDMA来将(WEIM)FPGA中的数据搬运到内存(DDR)中,
首先,根据imx-test中的mxc_sdma_mem_test.c,实现了利用SDMA将数据从一块儿内存(wbuf)搬运到另一块儿内存(rbuf);
之后,我,将rbuf替换成eim_mem,然后运行,程序没有错误,但是通过波形没有看到EIM接口有任何数据输出。
后来,我有分别用 phys_to_virt(WEIM_CS0_BASE_ADDR)、virt_to_bus(eim_mem)替换rbuf,均看不到任何波形
我也试过在dma_map_sg后,将rbuf对应的sg的dma_address直接设置为WEIM_CS0_BASE_ADDR,结果是一样的,没有任何输出。
请问,我还需要做哪些工作可以实现我的目的,或者哪里有例子程序?多谢!!!!!
这个问题解决了么,现在项目也停留在了这个SDMA问题上,急需帮助!!!!!!!!!!!!!!1 |