• DM6437 C64X+ EDMA 疑惑总结记录


    总结一下DM6437中的EDMA的使用出现的问题,方便以后再开发定位问题。

    1.EDMA Link 和 Chain的区别

    link实现了DMA的自动重加载(非静态模式),需要两个param

    chain是不更新param set表,直接event对应的param。

    2. transfer completioncode(TCC)

    a.OPT中的TCC决定了pending bit的位置,不需要做到和channel的一一对应。故理论上同一个TCC可以对应多个channel

    b.如何使chain方式下,这个TCC决定了下次event触发的channel event id.

    3. Q0,Q1、Q2和TC0、TC1和TC2

    DM6437的EDMA控制器有3个Queue。对应的是Transfer control. 64个channel可以配置到指定的queue中,当然Q0 priority最高,默认64个都配置到Q0上。

    4 EDMA最优的模式:ACNT≤DBS ACNT is power of 2 BIDX=ACNT BCNT≤1023  SM/AM = 0(Increment)

    5.在link 模式下OPT.static =0时。最终传输完成后会link到0xffff,即设置param为一个NULL param

    6,对于A与A-B SNYC模式的event数

    对于A模式,需要BCNT*CCNT个event。即如果外设peripheral的话需要触发出这么多个Event事件

    而对于A-B模式,只需要CCNT个Event,故对于常常二维2D处理时,只需要CCNT =1 就可以满足,故手动一次设置就可以。

    而如果是3D的话,手动的话就需要CCNT次EVENT(考虑到CCNT交小时,可以考虑使用运行OPT.static = 0,并且Intermediate chain(每个TR即2D后启动再Event到自己));3D模式使用的不是很多。

    7. MCBSP和EDMA结合使用时出现只能启动一次transfer?

    因为在完成基本的传输后,最后还会发送一个Event触发了一个Null,会置位ESR,从而阻塞了Q0。故需要清除ESR寄存器。相同通道的DMA才可以再次工作

  • 相关阅读:
    面试官:讲讲redis的过期策略如何实现?
    Java并发-CopyOnWriteArrayList
    Java并发-CopyOnWriteArrayList
    idea万能快捷键,不可不知的17个实用技巧
    Java面试题必备知识之ThreadLocal
    Java面试题必备知识之ThreadLocal
    再谈源码阅读
    再谈源码阅读
    七月伊始 LeetCode算法总结
    ta和夏天一起来了
  • 原文地址:https://www.cnblogs.com/pangblog/p/3339370.html
Copyright © 2020-2023  润新知