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.

omap2-mcspi里面关于DMA的使用问题!急!



我直接采用的spi-omap2-mcspi驱动,然后按照例程里面spidev_test.c里面的例子做spi通信测试

在收发数据的数量比较少的时候,没问题

但是数据量较大的时候,就卡住了

后来不断的查,发现如下代码:

    if (m->is_dma_mapped || t->len >= DMA_MIN_BYTES)
               count = omap2_mcspi_txrx_dma(spi, t);
    else
               count = omap2_mcspi_txrx_pio(spi, t);

宏定义里面DMA_MIN_BYTES = 160,也就是说小于160个字节的时候,用 omap2_mcspi_txrx_pio(spi, t)传输数据是没有问题的,

但是当大于160字节的时候,用omap2_mcspi_txrx_dma(spi, t)就有问题了

继续追踪到omap2_mcspi_txrx_dma(spi, t)里面后发现,

程序卡在wait_for_completion(&mcspi_dma->dma_rx_completion)这里了

也就是一直处于等待状态,这个问题该如何解决呢?

另外,关于DMA的驱动,相关实现文件都在什么地方呢?找了好久都没有找到