资源预览内容
第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
第9页 / 共23页
第10页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第七章 增强直接存储器访问(EDMA)从 到 外部存储器 片内数据存储器 片内数据存储器 片内程序存储器外部存储器 传输的实现: 由CPU控制实现数据传输,效率低 DMA直接存储器访问,效率高,不需CPU干预DMA 数据传输EDMA的特点pC621x/C671x/C64x特有pEDMA控制器基于RAM结构p比DMA的增强之处如下:提供了16个通道由事件触发相应通道的传输通道优先级可设置支持不同结构数据的传输链接独特的快速DMA(QDMA)EDMA控制器的结构p 参数RAM(PaRAM),设置通道入口和重新加载的参数p 事件和中断处理寄存器,使能或屏蔽事件、使能触发的类型、清除或处理中 断p 传输完成检测,检测是否完成数据传输,并提交新的传输或产生CPU中断传输完成检测参数RAM事件和中断处理寄存器EDMA传输中的术语p数据单元(element)的传输:单个数据单元从源地址向目的 地址传输p帧(frame):1组数据单元组成1帧,帧中的数据单元可以连 续存放,也可以间隔存放,帧一般用于1维传输p阵列(array): 1组连续的数据单元组成1个阵列,阵列一般 用于2维传输p块(block):多个帧或多个阵列的数据组成1个数据块p1维传输:多个数据帧组成1个1维数据传输p2维传输:多个数据阵列组成1个2维数据传输,第1维是阵 列中的数据单元,第2维是阵列的个数。EDMA传输方式数据单元帧单元同步1维传输(FS=0) 帧同步1维传输 (FS=1)EDMA传输方式阵列块阵列同步2维传输(FS=0) 块同步2维传输(FS=1)同步事件p每个通道都与一个事件关联,由这些事件触发相应通道的 传输,不能由多个事件触发p事件寄存器(ER)负责捕获所有的事件,事件使能寄存器 (EER)控制每一个事件的使能/禁止p由事件信号的上升沿触发EDMA控制器p如果有多个事件同时发生,则由事件编码器进行排序EDMA通道与同步事件的对应关系EDMA的参数RAMp容量为2KB,总共可以存放85组EDMA传输控制参数,其 内容包括三部分: 16组EDMA通道入口参数,每组6个字 用于重加载/链接的传输参数组,每组6个字 空余“草稿区”,8个字节p一旦事件发生器捕捉到某个事件,控制寄存器将从参数 RAM的16组入口参数中读取事件对应的控制参数,送往地址 发生器,发起传输EDMA参数存储结构选项参数(Options Parameter)选项参数寄存器字段控制意义FS帧同步使能TCC传输结 束代码TCINT传输结 束中断使能2DD/2DS目的/源传输维 数 DUM/SUM目的/源地址更新模式ESIZE数据单元的字长PRIEDMA事件的优先级数据单 元字长传输结束码连接使能EDMA参数存储结构p 源地址(SRC)/目标地址(DST):32位,EDMA访问的起始源地址和目标地址 ,以字节为单位,通过OPT中的SUM/ DUM位设定对SRC/DST地址的修改方式 。p 数据单元计数(ELECNT):存放1帧或1个阵列中的数据单元个数,有效范围 165535。p 帧/阵列计数(FRMCNT):存放的是1-D数据传输中的帧计数,或是2-D数据 传输中的阵列计数,最大值为65536。p 数据单元/帧/阵列索引(Element/Frame/Array Index):作为地址修改的索引 值。数据单元索引只能应用于1-D传输,作为下一数据单元的地址偏移值(2-D传 输不允许数据单元间隔存放)。帧/阵列索引用于控制下一帧/阵列的地址索引值 。p 数据计数的重加载(Element Count Reload):用于在每帧最后一个数据元素 传输之后,重新加载传输计数值。这一参数只应用于1-D传输中。p 连接地址(Link Address):当设定可选参数中LINK=1时,可以由连接地址确 定下一个EDMA事件采用参数的装载/重装载地址,从而将多组EDMA传输参数 形成EDMA传输链。EDMA的启动两种方式启动EDMA:pCPU启动EDMA/非同步的EDMA,CPU通过写事件置 位寄存器(ESR),强制触发对应事件,启动1个EDMA通 道p由事件触发的EDMA,事件锁存器一旦捕获到一个触 发事件,并且事件本身已被使能,那么该事件将启动传 输操作多组EDMA传输参数的连接 (linking)将不同的EDMA传输参数连接起来,组成一个参数链, 为同一个通道服务类似链表结构多个EDMA通道的链接(chaining)p由一个EDMA通道的传输结束触发另一个EDMA通道 的传输p不同于EDMA连接(linking),EDMA连接是利用多组参 数依次重加载某一个EDMA通道参数p触发由当前通道的传输结束码对应的EDMA通道的传 输EDMA中断p所有16个通道共用一个中断信号EDMA_INT,p利用CIPR寄存器来判断发生了哪个事件p通道的传输结束代码TCC值与CIPR位一一对应,不同的 通道可以有相同的TCC,所以不同的通道可以产生完全相同 的中断,处理相同的服务程序。EDMA中断传输结束代码在TCC参数字段设置,允许的范围是0000b1111b,直接 与CIPR寄存器的低16 bit各个bit位对应。例如,TCC=1100b时,在传输结 束后,CIPR12位被置1,此时如果CIER12=1,就会向CPU发出中断申请 。 快速DMA(QDMA)p几乎支持EDMA的所有传输模式,不支持参数连接p两组寄存器,第二组是第一组的“伪映射”,每组包含5个寄 存器,是C671x DSP搬移数据最有效的手段QDMA的选项参数寄存器字段控制意义FS帧同步使能TCC传输结 束代码TCINT传输结 束中断使能2DD/2DS目的/源传输维 数 DUM/SUM目的/源地址更新模式ESIZE数据单元的字长PRIEDMA事件的优先级QDMA传输要求采用帧同步(1- D)或块同步(2-D),1次搬移1帧 (1-D)或1块(2-D)数据,因此选 项参数寄存器中的FS字段无意 义。 源地址参数的更新帧 同 步传输类 型 (2DS:2DD)源地址刷新模式(SUM)00011011FS=000固定ESIZE 递增1个数据单元ESIZE 递减1个数据单元ELEIDX或FRMIDX (ELECNT=1时) 帧中每个单元ELEIDX;当ELECNT=1时,最 后1个单元FRMIDX01固定+(ELECNTESIZE) 在前一帧的起始地址上前进ELECNTESIZE个数 据单元(ELECNTESIZE) 在前一帧的起始地址上后退 ELECNTESIZE个数据单元保留10固定+FRMIDX 在1帧的第1个数据单元地址上+FRMIDX;1帧中 数据按升序存放+FRMIDX 在1帧的第1个数据单元地址上 +FRMIDX;1帧中数据按降序存放保留11固定+FRMIDX 在1帧的第1个数据单元地址上+FRMIDX;1帧中 数据按升序存放+FRMIDX 在1帧的第1个数据单元地址上 +FRMIDX;1帧中数据按降序存放保留FS=100固定+(ELECNTESIZE) 在前一帧的第1个数据单元地址上前进ELECNT个 数据单元(ELECNTESIZE) 在前一帧的第1个数据单元地址上后退 ELECNT个数据单元+FRMIDX 在1帧的第1个数据单元地址上+FRMIDX;1帧 中的数据是间隔ELEIDX存放01固定无无无10固定无无无11固定无无无目的地址参数的更新帧 同 步传输类 型 (2DS:2DD)目的地址刷新模式(DUM)00011011FS=000固定+ESIZE 递增1个数据单元ESIZE 递减1个数据单元ELEIDX或FRMIDX (ELECNT=1时) 帧中每个单元ELEIDX;当ELECNT=1时,最后1个 单元FRMIDX01固定+FRMIDX 在1帧的第1个数据单元地址上 +FRMIDX;1帧中数据按升序存放+FRMIDX 在1帧的第1个数据单元地址上+FRMIDX;1帧 中数据按降序存放保留10固定+(ELECNTESIZE) 在前一帧的起始地址上前进 ELECNTESIZE个数据单元(ELECNTESIZE) 在前一帧的起始地址上后退ELECNTESIZE个 数据单元保留11固定+FRMIDX 在1帧的第1个数据单元地址上 +FRMIDX;1帧中数据按升序存放+FRMIDX 在1帧的第1个数据单元地址上+FRMIDX;1帧 中数据按降序存放保留FS=100固定+(ELECNTESIZE) 在前一帧的第1个数据单元地址上前 进ELECNT个数据单元(ELECNTESIZE) 在前一帧的第1个数据单元地址上后退ELECNT 个数据单元+FRMIDX 在1帧的第1个数据单元地址上+FRMIDX;1帧中的数 据是间隔ELEIDX存放01固定无无无10固定无无无11固定无无无快速DMA(QDMA)一个典型的QDMA操作如下:QDMA_SRC = SRC_ADDRESS;/设置源地址QDMA_DST = DST_ADDRESS; /设置目标地址QDMA_CNT = NUM; /设置阵列的帧计数QDMA_IDX = 0x00000000; /不采用索引QDMA_S_OPT = 0x21B80001; /设定帧同步,1维源,2 维目/ 标,启动传输示例:0702
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号