关于DMA(三)

发布时间 2023-06-19 23:11:27作者: 可达达鸭

1. DMA 中断

  • 半传输中断;
  • 传输完成;
  • 传输错误;
  • FIFO下溢或上溢;
  • 直接模式错误:外设到存储器的直接模式下,如果存储器没有获得总线使用权,导致外设传输的数据并没有送到存储器中,此时拉高中断标志位。

2. DMA 传输状态

  • 外设到存储器
    • 外设首先发起请求,送入DMAC的仲裁模块,决定哪个外设可以进行数据传输。
    • 外设地址计算。
    • DMA接收到数据,并将数据送入FIFO中(直接模式下没有FIFO)。
    • 存储器端口的访问可以由FIFO达到阈值后触发(突发传输,使用FIFO模式)或DMA拿到数据之后立即触发(使用直接模式)。
    • 存储器端口仲裁,决定向哪个存储器写入数据。
    • 存储器地址计算。
    • 向存储器写入数据。
  • 存储器到外设
    • 存储器端口仲裁,决定从哪个存储器读出数据。
    • 存储器地址计算。
    • 从存储器中取出数据存在FIFO中,以保证DMA获得总线使用权后可以立即进行数据传输。
    • 外设端口仲裁。
    • 外设地址计算。
    • 向外设地址写入数据。