扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
3.2 读写DMAC的高层接口函数
(1)使能/禁止一个特定的DMA通道
Single Channel Mask Register中的bit[2]为0表示使能一个DMA通道,为1表示禁止一个DMA通道;而该寄存器中的bit[1:0]则用于表示使能或禁止哪一个DMA通道。
函数enable_dma()实现使能某个特定的DMA通道,传输dmanr指定DMA通道号,其取值范围是0~DMA_MAX_CHANNELS-1。如下:
|
宏dma_outb和dma_inb实际上就是outb(或outb_p)和inb函数。注意,当dmanr取值大于3时,对应的是Master DMAC上的DMA通道0~3,因此在写DMA2_MASK_REG之前,要将dmanr与值3进行与操作,以得到它在master DMAC上的局部通道编号。
函数disable_dma()禁止一个特定的DMA通道,其源码如下:
|
为禁止某个DMA通道,Single Channel Mask Register中的bit[2]应被置为1。
(2)清除Flip-Flop寄存器
函数Clear_dma_ff()实现对slave/Master DMAC的Flip-Flop寄存器进行清零操作。如下:
|
(3)设置某个特定DMA通道的工作模式
函数set_dma_mode()实现设置一个特定DMA通道的工作模式。如下
|
DMAC 的Mode Register中的bit[1:0]指定对该DMAC上的哪一个DMA通道进行模式设置。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者