Chinaunix首页 | 论坛 | 博客
  • 博客访问: 20814
  • 博文数量: 3
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 32
  • 用 户 组: 普通用户
  • 注册时间: 2014-10-21 09:54
个人简介

笑得潇洒

文章分类

全部博文(3)

文章存档

2014年(3)

我的朋友

分类: 其他平台

2014-10-23 20:26:57

        上篇文章主要是通过EMIF接口进行FPGA的配置,这篇文章是通过EDMA3从EMIF接口把FPGA里大量数据读出来,由于本人用的EMIF接口是异步的,所以用EDMA接口从FPGA读数据比较慢,3k数据大概240us左右,速度瓶颈由EMIF接口导致。
        
        目的:EDMA3通过EMIF接口快速读取FPGA里数据

        EDMA3(The enhanced direct memory access )的作用主要是在CPU不参与的情况下,进行数据的快速搬运。
        C6748的EDMA3由EDMA3 channel controller和EDMA3 transfer controller两部分组成。
                    EDMA3 channel controller 是用户接口,配置都在这里,相当于领导者。
                    EDMA3 transfer controller是真正的执行者。

        C6748的模块框图如下:
                          
        关于EDMA3的详细描述请看C6748的datasheet (505页)。下面我提几点比较重要的
        关于EDMA3的具体名词不明白的可以百度一下,网上这方面说的已很多!!!!!
        C6748的EDMA3的传输类型:支持一维与二维传输。(通过chaining可以实现三维传输)。
        C6748的EDMA3支持chaining与linking。
        而且也拥有128个paramSet。
    
        其实dma传送数据的原理:
                    dma就是不在cpu参与下把一块地址中的数据搬运到另一块地址中。
        本人认为,把dma用起来就是先把dma的各参数设置好,然后设置条件启动dma传送数据,接下来就是等待dma事件以及dma完成中断。
所以DMA的配置主要包括两方面:dma参数的设置、dma触发条件的设置以及dma完成后的处理。

       C6748的EDMA3虽然比一般dma较复杂,但是也不过是这三方面的设置。

        C6748的EDMA3的参数配置:其实就是paramSet的配置
            
   
            具体描述请看C6748datasheet(511页)
            主要就是配置源地址、目的地址、一维偏移地址、二维偏移地址以及一维与二维的计数等。
            
              C6748的EDMA3支持的dma触发传输有三种:
                    1>事件触发
                    2>手动触发
                    3>chaining触发
            
               C6748的EDMA3完成后的设置:主要是设置清中断以及更新paramSet参数等

                以上paramSet的设置、触发EDMA3传输的设置以及EDMA3传输完成后的处理,这三方面进行合理的配置可以完成很多复杂的传输,发挥你的想象力以及创造力吧。

                  裸机跑的程序配顺序如下:
                        
                
                
                  本文属于本人个人看法,有不对的地方,望指正!  欢迎转载,转载请注明出处!

 
阅读(6554) | 评论(0) | 转发(0) |
0

上一篇:C6748的EMIF接口

下一篇:C6748的Upp接口

给主人留下些什么吧!~~