TI C64x DSP: EDMA原理与实例解析
需积分: 31 83 浏览量
更新于2024-09-12
1
收藏 28KB DOC 举报
"TI C6000平台的C64x内核中,EDMA(Enhanced Direct Memory Access,增强型直接存储器访问)是一种高效的数据传输机制,用于减轻CPU负担,实现数据的异步和同步传输。本文将对C64x DSP中的EDMA进行实例解析和总结。"
(1)EDMA概述
在C64x内核中,EDMA数据传输主要分为两种方式:
1. CPU发起的非同步EDMA传输:当CPU设置ESR(Event Status Register,事件状态寄存器)的相应位为1时,触发一个EDMA事件,该事件对应的通道参数被送到地址硬件执行,这种方式下,实时数据传输不需要预先配置EER(Event Enable Register,事件使能寄存器)。
2. 事件触发的同步EDMA传输:CPU通过设置EER来响应外设事件。只有当EER的相应位被置1时,ER(Event Register,事件寄存器)中的事件才会传递给事件编码器,并启动关联的传输参数,送往地址硬件。这种方式常用于EDMA链式传输,需要结合EER和CCER(Channel Control Enable Register,通道控制使能寄存器)使用。
(2)EDMA数据传输类型
数据传输分为一维(1D)和二维(2D)两种类型,根据OPT.2DS和OPT.DDS通道参数,共有四种组合方式:
1. 1D数据传输:
1D数据由"块-帧-元素"组成。每个块包含多帧,每帧又由多个元素构成。元素可以在同一地址、连续地址或具有特定偏移量的地址上。帧间的地址偏移由FRMIDX通道参数定义,而元素间的偏移由ELEIDX通道参数指定。ELECNT参数指定了每帧内的元素数量,当一帧数据传输完成后,ELERLD会重新加载下一帧的ELECNT。FRMCNT参数定义了块中的帧数。
1D数据传输的同步方式有两种:当OPT.FS=0时,为元素同步,每次事件触发传输一个元素;当OPT.FS=1时,为帧同步,每次事件触发传输一帧数据。
(3)1D数据传输的同步机制
- 元素同步:每个同步事件传输一个元素,ELECNT递减1。当ELECNT等于1时,表明是帧的最后一个元素,这时EDMA不仅传输这个元素,还会执行后续操作,如更新帧计数等。
- 帧同步:每次事件触发传输一帧数据,ELECNT不直接参与计数,而是由FRMCNT和ELERLD控制帧的切换。
TI C6000平台的C64x内核中的EDMA机制提供了一种灵活且高效的内存访问方式,能够适应多种数据传输需求,无论是CPU直接触发还是由外部事件触发,都能确保数据传输的精确和高效。了解并熟练运用EDMA,对于优化C64x DSP系统性能至关重要。
2022-09-19 上传
118 浏览量
122 浏览量
2022-07-14 上传
点击了解资源详情
brian_wsn
- 粉丝: 2
最新资源
- 流浪汉环境性能比较:Virtualbox vs Parallels
- WatchMe项目使用TypeScript进行开发的介绍
- Nali:全面支持IPv4/IPv6离线查询IP地理及CDN信息工具
- 利用pdfjs-2.2.228-dist实现零插件PDF在线预览技术
- MATLAB与jEdit集成:实用工具包发布
- Vagrant、Ansible和Docker搭建Django应用环境
- 使用Delphi更改计算机名称的详细教程
- TrueNAS CORE中iocage-homeassistant插件的高级安装方法
- rack程序:命令行工具高效处理天气雷达数据
- VS2017下实现C# TCP一对多通信程序源码
- MATLAB项目管理器:快速切换与路径管理
- LightDM GTK+ Greeter设置编辑器的Python图形界面介绍
- 掌握CSS技巧,提升网页设计美感
- 一维RCWA算法在matlab中的实现与应用
- Hot Reload插件:提升Flutter开发效率的Vim工具
- 全面掌握Dubbo:Java面试题及详细答案解析