LPC1853 DMA

DMA
        可实现内存到内存、内存到外设、外设到内存的数据传输,传输过程由DMA控制器完成,无需
    处理器干预。内存指的是单片机上的ram或者rom空间,外设指的是soc上的串口控制器、定时器
    等功能模块。在对ram操作时ram对应的地址自动增加,外设地址一般是控制器的一个读或者写的
    寄存器地址。内存到内存传输模式数据传输过程,选择好通道并正常配置后,通道优先级为最高
    状态时,DMA控制器将自动将数据从源地址拷贝到目的地址,操作完成后通道将关闭。每次传输
    完成后DMA通道将自动关闭,下次使用时需要从新选择以及配置通道。

DMA 相关术语

DMA request signals
    外设使用请求信号indicate是否有数据需要进行传输。SREQ、BREQ、LBREQ、LSREQ.

DMA response signals
     用于indicate a complete packet has been transferred。
     CLR:DMA主机告诉从机已经收到 request signal。
     TC: DMA主机告诉从机已经完成数据发送。

DMA Enable Channel Register
      指示通道是否已经使能,传输完成后使能位自动清零。

DMA Software Burst Request register
      软件触发 Burst Request,也可由外设主动触发请求,两种请求不能同时使用。

DMA Channel registers
      SRCADDR DESTADDR LLI CONTROL CONFIG,执行scatter/gather DMA,前四个寄存器自动更新。

 

DMA 操作示例

使用nxp官方驱动库。

    /* Initialize GPDMA controller */
    Chip_GPDMA_Init(LPC_GPDMA);

    /* Get DMA channel */
    dmaCh = Chip_GPDMA_GetFreeChannel(LPC_GPDMA, GPDMA_CONN_MAT0_0);

    /* Setup DMA transfer */ //每次transfer完成后,下次传输还需要调用transfer接口
    Chip_GPDMA_Transfer(LPC_GPDMA, dmaCh,
                      (uint32_t) &source[0], (uint32_t) &dest[0],/*GPDMA_CONN_MAT0_0, //*///源地址以及目的地址设置
                      GPDMA_TRANSFERTYPE_M2M_CONTROLLER_DMA, //内存到内存传输
                      sizeof(source));//发送数据长度。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值