This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于omapl138上面跑LINUX ARM、SYSBIOS DSP双核时都使用EDMA遇到的问题



上午发了一个差不多的帖子,tony哥让我查查寄存器,但是这个寄存器很多,是没有办法的办法,现在有以下几点不明,请tony哥和其他工程师师傅们一起指点:

1. 当前的OMAPL138的LINUX内核中是预留的一部分EDMA给DSP的,在board-da850-evm.c的da850_edma_rsv这个数组实现的,假设一种情况,DSP端要使用MCASP的TX通道的channel,而且使用的是4个slot循环,分别为128个程序员维护的通道的40-44,DSP端怎么配置我是明白的,但是在linux端要怎么保留这些资源的,da850_edma_rsv数组里面有channel和slot的这两个参数,深入看了一下代码,我理解为channel就是edma的一个cc控制器的32个通道,slot就是128个手动维护的PAR,不知道对不对?

2. 前人也留下类似的帖子,但是没有任何回复,帖子如下:www.deyisupport.com/.../50016.aspx

我想知道TI有没有提供此类的历程,比如linux3.3内核里面board-da850-evm.c的代码里面da850_edma_rsv数组给DSP端留下了几个channel和slot的资源,对应的在DSP端该如何初始化,才有不影响ARM端的EDMA也能让DSP端的也能跑,尝试过不调用EDMAInit();函数,只挂接不DSP自己的CC_INIT1中断向量表,然后配置对应通道的EDMA,结果DSP跑不起来;

3.接第二点的相同场景,ARM使用SPI flash EDMA, 在DSP端调用了EDMAInit();函数之后配置其他通道的EDMA,结果DSP跑起来了,ARM这边的SPI flash EDMA挂了,linux内核没挂,就是写文件和保存文件时卡住了。

结尾:花大量的时间和精力去研究EDMA的每一个寄存器肯定可以解决这个问题,但是发这个帖子的目的就是请Tony哥或者其他的工程师师傅们能不能提供一些这方面的资料,可以减少开发时间,可以把更多的精力放在开发应用程序当中。