DSP

TL-C6748 EDMA使用笔记

2019-07-13 11:17发布

EDMA3 控制器包含两个主要模块:
• EDMA3 通道控制器: (EDMA3_m_CC0)
• EDMA3 传输控制器: (EDMA3_m_TCn)
对于 EDMA3 控制器而言,EDMA3 通道控制器当做用户接口.EDMA3CC 包括参数 RAM(PaRAM),通道
控制寄存器和中断控制寄存器.EDMA3CC 服务优化从外设引入的软件请求或者事件,以及提交传送请求
(TR)到 EDMA3 传输控制器.
EDMA3 传输控制器主要负责数据转移.EDMA3CC 提交的传输请求包(TRP)包含传输控制器发送一个给定
传输编程的读写命令到源和目的地址的内容. 特性
EDMA3 通道控制器(EDMA3CC)有以下几个特性:
• 完全正交传输描述
– 3 维数据传输
– A 类同步传输:每个事件驱动一维数据传输
– AB 类同步传输:每个事件驱动二维数据传输
– 源地址和目的地址独立索引
– 链路特性允许基于单个事件的三维数据传输
• 灵活传输定义
– 增量式或固定式地址模式
– 连接机制允许参数 RAM 集自动更新,用于乒乓模式,自动重载模式传输.
– 链接允许单事件驱动多个传输
• 中断生成:
– 传输完成
– 错误条件(非法地址,非法模式,超出队列阈值)
• 可视化调试
– 队列水印
– 错误和状态记录以便于调试
– 丢失事件检测
• EDMA3_0_CC0:
– 32 路 DMA 通道
– 8 路 QDMA 通道
– 128 个参数 RAM 条目
– 2 个事件队列
– 4 个影子区域
– 2 个传输控制器(EDMA3_0_TC0 和 EDMA3_0_TC1)
– 5 路中断:
• EDMA3_0_CC0_INT0
• EDMA3_0_CC0_INT1
• EDMA3_0_CC0_INT2
• EDMA3_0_CC0_INT3
• EDMA3_0_CC0_ERRINT
EDMA3 传输控制器(EDMA3TC)有以下几个特点:
• 支持源地址和目的地址独立索引的 2 维数组传送(EDMA3CC 操作三维数据传输)
• 多个传输控制器允许并行传输
• 每个传输控制器相互之间以及与系统中其他主设备之间的优先级可编程.
• 支持增量式和固定式地址模式传输
• 中断支持的错误条件
• 支持多个运行态传输请求
• 可视化调试/状态
• 64 位宽读写端口
• 小端模式
• EDMA3_0_TC0:
FIFIOSIZE = 128 字节
– BUSWIDTH (读/写控制器) = 8 字节(64 位)
– DSTREGDEPTH = 4
– DBS (默认) = 16 字节. 默认突发尺寸(DBS)是可编程的, 可以配置成16、32或者64字节突发尺寸. 详
见系统配置模块章节的片上配置 0 寄存器(CFGCHIP0)去修改默认突发尺寸数值.
– 错误中断: EDMA3_0_TC0_ERRINT
– EDMA3 通道控制器: EDMA3_0_CC0
• EDMA3_0_TC1:
– FIFIOSIZE = 128 字节
– BUSWIDTH (读/写控制器) = 8 byte (64 位 s)
– DSTREGDEPTH = 4
– DBS (默认) = 16 bytes. 默认突发尺寸(DBS)是可编程的, 可以配置成 16、32 或者 64 字节突发尺寸.
详见系统配置模块章节的片上配置 0 寄存器(CFGCHIP0)去修改默认突发尺寸数值.
– 错误中断: EDMA3_0_TC1_ERRINT
– EDMA3 通道控制器: EDMA3_0_CC0
功能模块框图

图 16-5 显示的是 3(CCNT)个帧 4(BCNT)个数列 n(ACNT)个字节的 A 类同步传输.在该例子中,参数 RAM 集
中一共有 12 个事件需要被完成,详见 16.2.3.6 小节参数集更新.

图 16-6 显示的是 3(CCNT)个帧 4(BCNT)个数列 n(ACNT)个字节的 AB 类同步传输.在该例子中,参数 RAM 集
中一共有 3 个事件需要被完成,即一共完成 3 次传输,每次传输 4 个数列.

测试测试: 使用 acount = 1920u    bcount = 1080u ccount = 1u 的数数组进行测试: [C674X_0] edma3Test: trans Acount = 1920 Bcount = 1080 Ccount = 1 TimeCost = 13814373 
NormalDataTransTest:  TimeCost = 1140911265 
说明EDMA 对大数据进行搬移的效率是相当高的