《第十四讲直接存储器访问DMAEDMA》由会员分享,可在线阅读,更多相关《第十四讲直接存储器访问DMAEDMA(28页珍藏版)》请在金锄头文库上搜索。
1、第十四讲 直接存储器访问DMA/EDMA第十四讲 DMA/EDMA1BIT / TI内容简介DMAEDMA特点、机制如何运用第十四讲 DMA/EDMA2BIT / TI概述直接存储器访问From:To:外部存储器片内数据存储器片内数据存储器片内程序存储器外部存储器传输的实现:传输的实现:CPUDMA第十四讲 DMA/EDMA3BIT / TI概述直接存储器访问为了建立任何一种方式的传输,我们需要为了建立任何一种方式的传输,我们需要:第十四讲 DMA/EDMA4BIT / TI概述 C6000 DMA第十四讲 DMA/EDMA5BIT / TI概述 C6000 DMA特点后台操作,吞吐率高四个通
2、道,一个辅助通道单通道分割(split-channel)操作支持多帧(frame)传输方式多种地址产生方式32位地址范围,支持8-/16-/32-bit字长传输支持自动初始化可以设定同步事件控制传输过程第十四讲 DMA/EDMA6BIT / TI概述控制寄存器DMA通道0/1/2/3:源地址寄存器(32-bit)目的地址寄存器(32-bit)主控寄存器副控寄存器传输计数寄存器(16-bit/16-bit)DMA全局地址寄存器A/B/C/DDMA全局计数重装载寄存器A/BDMA全局索引寄存器A/BDMA辅助控制第十四讲 DMA/EDMA7BIT / TI传输启动程序启动向主控制寄存器START域
3、写入00b,停止当前通道设定源地址设定目的地址设定传输个数设置其他的有关模式,向START域写入01b,启动传输自动初始化方式启动多次传输,只需设置一次第十四讲 DMA/EDMA8BIT / TI传输例子(参数)我们需要知道那些参数?第十四讲 DMA/EDMA9BIT / TI传输例子(参数)源地址:A_D_SRC目的地址:DMEM_DST传输计数值:200h源地址的方向:Inc/Dec/None目的地址的方向:Inc/Dec/None中断CPU:Yes/No同步:Yes/No同步事件A/D(RDY)利用:INT4/5/6/7第十四讲 DMA/EDMA10BIT / TI传输同步读同步写同步帧
4、同步第十四讲 DMA/EDMA11BIT / TI传输地址产生32-bit 地址寄存器地址的基本调整递增/递减/固定不变索引值调整16-bit 索引值帧索引和数据单元索引第十四讲 DMA/EDMA12BIT / TI传输几种用法一帧传输个数65536多帧模式传输的数据最多可达65536*65536*4=16GB利用帧索引代替重载地址例子:每帧从固定的外部地址移动10 bytes,在目的处彼此相距一个字节排列设置SRC DIR=00b(源固定)DST DIR=11b(目的用索引调整)ELEMENT INDEX=10b(以步幅2递增)FRAME INDEX= -(92)= -18 =FFEEh第十
5、四讲 DMA/EDMA13BIT / TI传输几种用法数据整序第十四讲 DMA/EDMA14BIT / TI传输分裂通道&辅助通道分裂通道模式使得一个通道可以提供双向的数据流传输收发利用同一个计数器需要利用DMA global address register作为分裂地址控制辅助通道HPI主机口专用第十四讲 DMA/EDMA15BIT / TI后处理状态与中断第十四讲 DMA/EDMA16BIT / TIEDMA概述扩展的直接存储器访问,是C6211/C6711的独有特征EDMA控制器基于RAM结构增强之处提供了16个通道由事件触发相应通道的传输通道优先级设置更加灵活可以实现数据传输的链接独特
6、的快速DMA(QDMA)第十四讲 DMA/EDMA17BIT / TIEDMA 框图第十四讲 DMA/EDMA18BIT / TIEDMA 传输类型数据单元(element)的传输帧(frame)的传输阵列(array)的传输块(block)的传输2-维(2-D)的传输非2-维(non 2-D)的传输第十四讲 DMA/EDMA19BIT / TIEDMA 结构16组通道传输参数69组重加载参数空闲区第十四讲 DMA/EDMA20BIT / TIEDMA 事件控制16个通道,每个通道都有一个事件与之关联,由这些事件触发相应通道的传输由有关的控制寄存器完成对事件的不同处理ER/EER/ECR/ES
7、R/PQSR/CIPR/CIER/CCER事件编码器第十四讲 DMA/EDMA21BIT / TIEDMA 参数RAM参数RAM(Parameter RAM,PaRAM)的容量为2K byte,其中存放EDMA的传输参数,以控制不同的传输行为。另外,参数入口还可以被彼此链接起来,以实现某些复杂数据流的处理第十四讲 DMA/EDMA22BIT / TIEDMA 传输链类似于DMA中的自动初始化更灵活,参数可变便于实现某些复杂的数据传输的应用要求传输链多种参数的EDMA传输过程相连接链的长度没有限制在传输链中,一次传输的结束会导致自动从参数RAM中装载下一次事件应用的传输参数第十四讲 DMA/ED
8、MA23BIT / TIEDMA 传输链参数重加载16-bit的链接地址和LINK位控制链接链中的参数都是对应同一个事件触发的传输过程参数一般互不相同第十四讲 DMA/EDMA24BIT / TIEDMA 中断通道传输结束可以产生中断EDMA_INT16个通道,一个中断谁来触发EDMA_INT该通道需要使能TINT设置传输结束代码(TCC ,transfer complete code)控制器根据TCC值设置CIPR对应的位看CIER中对应的位是否已经被使能TCC的值与通道编号不需要一一对应多个EDMA通道允许具有相同的TCC值拥有同一个中断服务程序第十四讲 DMA/EDMA25BIT / T
9、IEDMA 通道连接多个EDMA通道的传输过程相互链接某一个外设/外部器件产生的事件,将多个EDMA通道传输链接起来利用四个特殊的传输结束代码TCC=8/9/10/11,实现通道(事件)连接只有通道811支持这种链接第一个通道结束会产生所选通道的触发事件设置:第一个通道的TCINT必须设为1设置TCC和CCER通道链接使能寄存器第十四讲 DMA/EDMA26BIT / TIEDMA QDMAQDMA是C6211/C6711中搬移数据的最有效率的一种手段之一由两组(2*5)存储器映射的寄存器来进行控制第二组是第一组的“伪映射”(pseudo-mapping)第一组接受用户的设置第二组进行实际的申请递交不支持被事件链接,但是仍然支持通道的完成中断,以及产生EDMA链接事件QDMA5个周期(or 1个周期) QDMA36个周期第十四讲 DMA/EDMA27BIT / TI实验题目:使用channel0,实现数组间元素数据的传输要求:数据的初始化在main函数完成DMA数据传输子函数是线性汇编程序具体参见实验计划书第十四讲 DMA/EDMA28BIT / TI