EDMA3浅析

  1. EDMA3概述
    基于C66x的内核处理器主要具有两种DMA传输:IDMA、EDMA3。
    IDMA:只提供核内部(L1P、L1D、L2、CFG)的数据移动服务。
    EDMA3:实现器件上两个存储器映射的从终端(Slave Endpoint)之间的数据传输(如DDR3、MSM SRAM、L2)。
    EDMA3控制器由用户设定,服务于器件上两个存储器映射的从终端之间的数据传输;服务于软件驱动的页传输(例如,在外部存储器和内部存储器之间),执行分解或子帧取出多种数据结构,服务事件驱动的外围设备并减轻器件CPU数据传输任务。
  2. EDMA3浅析
    2.1 EDMA3构成
    C6678处理器中,IDMA具有两个通道,EDMA具有三个通道控制器(CC0、CC1、CC2)和10个传输控制器(CC0TC0、CC0TC1,CC1TC0、CC1TC1、CC1TC2、CC1TC3,CC2TC0、CC2TC1、CC2TC2、CC2TC3)。
    如图2-1所示,CC0有16个DMA通道,8个QDMA通道,16个中断通道,2个事件队列,2个传输控制TC;CC1有64个DMA通道,8个QDMA通道,64个中断通道,4个事件队列,4个传输控制TC;CC2有64个DMA通道,8个QDMA通道,64个中断通道,4个事件队列,4个传输控制TC。 在这里插入图片描述
    图2-1 EDMA3 CC资源图
    每个TC的资源情况如图2-2所示。
    在这里插入图片描述
    图2-2 EDMA3 TC资源图

2.2 功能用法
CC0被优化用于内部MSMC(Multicore Shared Memory Controller)和DDR3子系统之间的数据传输,CC1、CC2被用作系统外围设备和在系统存储器间移动数据等其他传输。
每个CC有两种通道类型:DMA通道和QDMA通道。每个通道与一个给定的事件队列、传输控制器相关,并与一个给定的PaRAM参数集相关。
DMA通道和QDMA通道的主要区别在于传输是如何被系统触发的。
DMA通道传输必需一个触发事件。QDMA通道传输只需设定好触发字即可自动触发。
每个事件队列深度是16,同一时刻最多支持16个传输事件。
每个DMA、QDMA通道分配到的事件队列是可编程的。
如果在不同的通道上,事件同时被检测,事件队列会基于一个固定优先级仲裁机制仲裁。DMA通道具有比QDMA通道更高的优先级。最小编号的通道最有最高优先级。
每个事件在事件队列中按照FIFO顺序被处理。
DMA、QDMA的channel可以统一一起连续编号,TI就是如此处理的。
Global Region和Shadow Region的区别:当使用Global Region配置EDMA时,所有内核都会响应;当使用Shadow Region时,通过DRAE/DRAEH(对于DMA)和QRAE/QRAEH(对于QDMA)寄存器将不想触发的事件屏蔽,这样即使系统中的事件触发了,Shadow Region中对应的事件也不会触发。当使用global region配置EDMA时,所有的core都会响应,这样就存在某些core不想使用的event也会被触发,如果使用shadow region,通过DRE/DREH将不想触发的event屏蔽,这样即便系统中对应的event触发了,shadow region中的event也不会触发。

  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]中的代码片段展示了在DSP6678上使用EDMA进行数据传输的部分代码。在这段代码中,首先打开指定的QDMA通道,并将其映射到指定的参数入口。然后获取参数入口句柄,并使用paramSetup信息配置参数入口。最后,使能指定的通道进行数据传输。 引用\[2\]中提到了Parameter RAM(PaRAM),它用于维护通道和重载参数集的参数设置条目。需要将PaRAM写入所需通道和链接参数集的传输上下文。 引用\[3\]中提到了在使用EDMA进行数据传输时可能遇到的缓存一致性问题。由于EDMA是独立于CPU的功能模块,CPU并不知道EDMA在搬运数据。因此,可能会出现缓存中的数据与DDR中的数据不一致的情况。为了解决这个问题,可以使用Cache_Invalid函数将DDR对应的Cache置为无效,或者使用Cache回写函数将Cache中的数据回写到DDR中,以保持DDR和Cache的一致性。 综上所述,DSP6678上的EDMA是一种用于数据传输的功能模块。通过配置参数和映射通道,可以实现高效的数据传输。在使用EDMA时,需要注意缓存一致性问题,以确保数据的正确性。 #### 引用[.reference_title] - *1* [C6678学习-EDMA](https://blog.csdn.net/g360250466/article/details/130473874)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [DSP篇--C6678功能调试系列之EDMA3调试](https://blog.csdn.net/nanke_yh/article/details/128156123)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [TMS320C6678 EDMA传输配置](https://blog.csdn.net/HSU0911/article/details/117984837)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值