页次: 1
官方SDK里UART走DMA的例子基本没有,全靠自己啃。你先确认内核开了DMA支持(`CONFIG_DMA_SUN4I`),设备树里给UART节点加`dmas`和`dma-names`属性,指向对应的DMA通道和请求号。驱动层面主要是申请DMA slave通道、配置源/目的地址(UART数据寄存器)、设置数据宽度和burst大小,注意F1C100s的burst最大是4。收发逻辑就是:接收可以配循环DMA,满了进中断处理;发送则启动一次传输,等回调再发下一批。坑网有老哥调通过SPI DMA,思路可以借鉴,但串口的DRQ类型和FIFO trigger level得自己对着手册算。
页次: 1