首先,发送和接收配置完都是可以工作的,只是现在对时间要求比较高,想问个问题。
简要代码如下:
desc->callback = dma_tx_callback;
desc->callback_param = sport;
dmaengine_submit(desc);
dma_async_issue_pending(chan);
经过上述的配置,指定callback函数,激活挂起队列,大部分的帧(每次近6-7个Byte一帧)发出去都能立马调用dma_tx_callback,但是偶尔会出现发送完大概要等2-3个Byte的时间,才调用callback, 因为现在我调完callback要立马做一件事,对时序要求较高。
现在是不清楚为什么偶尔会出现一帧发送完,不能立马调用callback的原因,是DMA阻塞,在等待呢?还是其他原因,我查看了下dma_chan->chan_id发送接收分别是0和1,不知道是否有人碰到过此类问题? |