1. DMA 中断
- 半传输中断;
- 传输完成;
- 传输错误;
- FIFO下溢或上溢;
- 直接模式错误:外设到存储器的直接模式下,如果存储器没有获得总线使用权,导致外设传输的数据并没有送到存储器中,此时拉高中断标志位。
2. DMA 传输状态
- 外设到存储器
- 外设首先发起请求,送入DMAC的仲裁模块,决定哪个外设可以进行数据传输。
- 外设地址计算。
- DMA接收到数据,并将数据送入FIFO中(直接模式下没有FIFO)。
- 存储器端口的访问可以由FIFO达到阈值后触发(突发传输,使用FIFO模式)或DMA拿到数据之后立即触发(使用直接模式)。
- 存储器端口仲裁,决定向哪个存储器写入数据。
- 存储器地址计算。
- 向存储器写入数据。
- 存储器到外设
- 存储器端口仲裁,决定从哪个存储器读出数据。
- 存储器地址计算。
- 从存储器中取出数据存在FIFO中,以保证DMA获得总线使用权后可以立即进行数据传输。
- 外设端口仲裁。
- 外设地址计算。
- 向外设地址写入数据。