DMAEDMAVideoPort学习笔记-12014-3-11ByLzp上网扫盲读几篇.docVIP

DMAEDMAVideoPort学习笔记-12014-3-11ByLzp上网扫盲读几篇.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DMAEDMAVideoPort学习笔记-12014-3-11ByLzp上网扫盲读几篇.doc

DMA EDMA VideoPort学习笔记-1 2014-3-11 By Lzp 上网扫盲:读几篇有关DMA的中文文章。 《C64X的EDMA》 两种发起传输方式 CPU发起的EMDA数据传输(非同步方式) 事件触发方式EDMA数据传输(同步方式) EDMA每个通道是和特定的系统事件绑定的 EDMA有两种类型的数据传输:1D和2D的,初步了解一些参数寄存器: ELEIDX通道参数:同帧地址偏移(元素索引) FRMIDX通道参数:两帧间地址偏移(帧索引) FS:=0 元素同步传,=1帧同步传输 ELECNT:帧数据元素个数 ELERLD:传完一帧后重载个数(ELERLD—ELECNT) FRMCNT:块中--帧个数 PRAM: LINK: 有这么几个控制位:SUM/DUM、2DS、2DD、FS帧同步 注意:对齐方式(源目的地址) 通道参数为6WORD EDMA中断 64个通道只产生一种中断:EDMA_INT OPT.TCINT OPT.TCC CIPR OPT.CIER QDMA:QDMA数据传输总是帧同步的 块---帧---元素 事件寄存器ER, (包括ERL和ERH)用于捕获对应于64个EDMA通道的事件 Parameter RAM: PRAM表大小为2KB 每个通道24字节,64个通道共64*24=1536字节; 临时用的(我暂时这么想):24*21=504字节; 还剩8个字节2048-1536-504=8,暂认为闲置 每个通道用的24字节分配:装前面说的参数。 EDMA Chaining?传输: Chaining传输的含义是当一个EDMA通道传输完成时,触发另一个EDMA通道的传输 (Chaining链) 至此,入点门道了。 网上《C64X讲座》: Link:一个通道下次传输;Chain:另一个通道下次传输 通道—事件表: 每通道24字节:分6个32位寄存器 1、 PRI:优先级设置,根据需要来具体设置,一般选择中优先级传输 ESIZE:单元数据大小;此处的理解是,假如数据线是16位,则采用16位,即每一个单元是16位,总之:ESIZE*ELECNT是每一个帧的总的数据传输大小。 2DS:即一维或者二维的传输选择,一般我们都只用一维传输;选择0; SUM:即源地址的更新模式,如果只是将固定源地址的数据传输,则2DS=0;假如是从 存储器传输数据,一般是采用源地址递增的模式; DUM:即目的地址的更新模式,一般采用的是目的地址递增或者递减的数据传输,如是 固定的地址的话,每一个传输的数据将覆盖上一次传输的数据; TINCT:设置传输完成中断,即传输完成之后产生中断信号,执行相应的中断程序。 TCC和TCCM:联合形成了传输完成代码,传输完成代码指定了相应的中断通道,即执 行响应的中断程序。 LINK:即传输完成之后是否采用连锁传输,即加载指定通道的PaRAM; FS:帧同步:FS=0时单元或者阵列同步,即每一次触发通道传输时传输一个单元(ESIZE 指定了大小)的数据,FS=1帧同步,一般我们采用这种传输方式,即每一次触发通道传输时传输一帧的数据,每一个帧的数据的大小由ELECNT指定; 2、 SRC:源地址; 3、 FRMCNT:总的帧计数,通常为0;当只传输1帧时,也为0; 4、ELECNT:前面已经有讲述; 5、DST:目的地址; 6、FRMIDX:每一个帧与下一个帧的间隔,如果是连续地址,第一个帧的大小是32bit,第 一个帧紧跟在第一个帧地址后面,则 FRMIDX为4; 补充:帧索引+帧中最后的单元地址上=下一帧的起始地址; 7、 ELEIDX:每一个单元与下一个单元的间隔,如果是连续的单元存储,一个单元为 32bit,第二个单元紧跟在第一个单元后面,则ELEIDX为4;单元索引+最后的单元地址=下一帧的起始地址; 8、ELERLD没有试验过:一般我都设置为0; 下面对使用到的常用的几个主要EDMA的API函数进行总结: EDMA_Config:用于定义一个结构体,保存EDMA的配置信息,用这个函数可以配EDMA事件参数,即PaRAM的参数; EDMA_Handle:配置一个手柄即使能一个通道,该通道与相应的事件链接,通常与 EDMA_OPEN联合使用。 例如:当我使用外部中断7触发EDMA传输时: EDMA_Handle 手柄名=EDMA_open(EDMA_CHA_GPINT7,EDMA_OPEN_ENABLE; EDMA_enableChannel:在启动这个通道传输之前,要利用这个函数讲该通道使能; EDMA_config:将EDMA通道和相应的事件关联起来,此时,当配置的事件发生时,

文档评论(0)

wendang_1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档