TI中文支持网
TI专业的中文技术问题搜集分享网站

C6678 多路QDMA请求问题

我自己写的多核同时使用QDMA的程序能正常运行,但迁移到我的另一个工程中又出现问题。现象是我必须在提交QDMA请求后不断轮询检查中断信息,判断QDMA是否完成,再往后运行,否则,若是先运行一会我自己的程序则检查不到QDMA完成的标识,一直卡死在那里。而我的程序没有相关的系统调用,访问的是存放在共享上的数据与QDMA搬运的数据没有重叠,请问这是由什么导致的

Andy Yin1:

多个QDMA channel是独立的,可以在任意core上并行运行。按照你的说法运行例程是ok,说明功能是没问题,并且先运行例程在运行你的程序也是ok,check一下是否与PLL及DDR的配置有关,在你的代码中有初始化PLL及DDR没有。

ming wang6:

回复 Andy Yin1:

您好,这个问题已经解决,是由于我的粗心,我使用的参数从0开始,而DMA的参数设置应该从1开始,我按照例程之后继续分配,导致运行例程后能正常运行。

现在遇到了新的问题,我自己写的多核同时使用QDMA的程序能正常运行,但迁移到我的另一个工程中又出现问题。现象是我必须在提交QDMA请求后不断轮询检查中断信息,判断QDMA是否完成,再往后运行,否则,若是先运行一会我自己的程序则检查不到QDMA完成的标识,一直卡死在那里。而我的程序没有相关的系统调用,访问的是存放在共享上的数据与QDMA搬运的数据没有重叠,请问这是由什么导致的,另外您说的PLL与DDR配置是什么。

Andy Yin1:

回复 ming wang6:

QDMA这种数据搬移问题一般跟配置有关,建议在配置完启动前,先查看QDMA相关的配置是否正确,然后启动QDMA,再查看cnt等配置是否有更新。

赞(0)
未经允许不得转载:TI中文支持网 » C6678 多路QDMA请求问题
分享到: 更多 (0)