打印
[ARM9、LPC]

请将关于LPC1788的DMA方式

[复制链接]
4841|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
alecsoo|  楼主 | 2013-11-10 18:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大虾,这两天调试的时候碰到关于LPC1788的DMA问题,想请教一下:
我使用LPC1788,外扩了2片32M的SDRAm
另外将一块FPGA挂载在总线上了,并配置成16位的宽度
配置为:
    LPC_EMC->StaticConfig1   = 0x00000081;  // 16λ¿í¶È
    LPC_EMC->StaticWaitWen1  = 0x3;
    LPC_EMC->StaticWaitOen1  = 0x3;
    LPC_EMC->StaticWaitRd1   = 0x8;
    LPC_EMC->StaticWaitPage1 = 0xf;
    LPC_EMC->StaticWaitWr1   = 0x8;
    LPC_EMC->StaticWaitTurn1 = 0xf;
现在我需要往FPGA传送大批量的数据,目前是使用直接赋值:
        data_prt1 = (INT32U *)PT_DATA_BUFF1_START_ADDR;   //sdram的地址
        for(i=0; i<400; i++)
        {
                temp_data = *(data_prt1++);
                *((INT32U *)(FPGA_BASE_ADDR)) = temp_data;    //FPGA的地址  外部静态存储器
        }
我想问的是:如果采用DMA方式能提升数据写入FPGA的速度么??
传送这400个字的时间消耗,应该只和静态存储器的时序配置有关系吧,与是否使用DMA应该无关吧??

相关帖子

沙发
huangxz| | 2013-11-10 19:30 | 只看该作者
我觉得DMA跟直接赋值的速度应用差不多,
不过DMA需要仲裁器控制,所以是很快,但是究竟花多少时间不是确定的,所以要有一定的冗余才可以。
传送的时间消耗不仅跟字节数有关,还跟cpu总线的忙碌程度有关,跟总线时序的配置有关。

使用特权

评论回复
板凳
alecsoo|  楼主 | 2013-11-10 20:18 | 只看该作者
huangxz 发表于 2013-11-10 19:30
我觉得DMA跟直接赋值的速度应用差不多,
不过DMA需要仲裁器控制,所以是很快,但是究竟花多少时间不是确定的 ...

我的软件在设计的时候考虑了总线的占用,所以在赋值的时候仅仅是写入FPGA
也就是说,就算是使用了DMA,也不能提升写入的速度,只是能在传输的时候释放出CPU
而且如果释放的CPU也要占用总线的话,写入FPGA的时间必将延长
这样的话,类似于我这样的应用,使用DMA与不使用DMA效果是一样的,对么??

使用特权

评论回复
地板
huangxz| | 2013-11-10 21:59 | 只看该作者
alecsoo 发表于 2013-11-10 20:18
我的软件在设计的时候考虑了总线的占用,所以在赋值的时候仅仅是写入FPGA
也就是说,就算是使用了DMA,也 ...

DMA的应用主要是解决软件干预的问题,速度方面应该不会有很大的提升。
这是个人认为,没有经过官方的确认。呵呵

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我是后辈,笨鸟一只,虽不擅飞翔,却愿跟随,慢些迟些,终将展翅!

5

主题

29

帖子

1

粉丝