造价通

反馈
取消

热门搜词

造价通

取消 发送 反馈意见

DMA控制器DMA运行模式

2022/07/15111 作者:佚名
导读:DMAC可以在两种模式下运行:无描述符存取模式和描述符存取模式。模式的选取由DCSRx[NODESCFETCH]位决定。同样在同一时间内,不同的通道里可以分别使用这两种模式。通道在转换运行模式之前必须停止数据处理。如果出现错误,则通道停留在停止状态,等待程序处理。 (1)无描述符存取模式 在无描述符存取模式下,DDADRx被保留。程序不可以向DDADRx中写入数据,并且必须加载DSADRx、DTA

DMAC可以在两种模式下运行:无描述符存取模式和描述符存取模式。模式的选取由DCSRx[NODESCFETCH]位决定。同样在同一时间内,不同的通道里可以分别使用这两种模式。通道在转换运行模式之前必须停止数据处理。如果出现错误,则通道停留在停止状态,等待程序处理。

(1)无描述符存取模式

在无描述符存取模式下,DDADRx被保留。程序不可以向DDADRx中写入数据,并且必须加载DSADRx、DTADRx和DCMDx寄存器。当运行位被设置,DMAC立刻运行以传输数据。无描述符存取在数据传输的开始时被执行。

一个典型的无描述符存取操作顺序如下。

1)复位后,通道处于未初始化状态。

2)设置DCSR[RUN]位为0,设置DCSR[NODESCFETCH]位为1。

3)程序将源地址写入DSADR寄存器,将目标地址写入DTADR寄存器,将命令写入DCMD寄存器。

4)向DCSR[RUN]位中写入1,然后无描述符存取被执行。

5)通道等待数据传输请求。

6)通道传输数据,数据量由DCMD[SIZE]和DCMD[LENGTH]较小者决定。

7)在DCMD[LENGTH]被设置为0之前,通道等待下一次数据请求。

8)DDADR[STOP]被设置为1,通道运行终止。

(2) 有描述符存取模式

在有描述符存取模式下,DMAC的寄存器用内存中的DMA描述符数据填充。多个DMA描述符可以被链成一个链表。这就允许DMA通道在一系列不连续的地址上进行数据传输。一个典型的有描述符存取模式的操作步骤如下。

1)复位后,通道处于未初始化状态。

2)程序将描述符地址(16字节对齐)写入DDADR寄存器。

3)程序向DCSR[RUN]中写入1。

4)DMAC从DDADR标记的地址中读取4字长的描述符,其中各字加载情况如下:

· Word [0] -> DDADRx寄存器;

· Word [1] -> DSADRx寄存器;

· Word [2] -> DTADRx寄存器;

· Word [3] -> DCMDx寄存器。

5)通道等待数据传输请求。

6)通道传输数据,数据量由DCMD[SIZE]和DCMD[LENGTH]较小者决定。

7)在DCMD[LENGTH]被设置为0之前,通道等待下一次数据请求。

8)DDADR[STOP]被设置为1,通道运行终止,否则继续运行 。

*文章为作者独立观点,不代表造价通立场,除来源是“造价通”外。
关注微信公众号造价通(zjtcn_Largedata),获取建设行业第一手资讯

热门推荐

相关阅读