当前位置:  技术问答>linux和unix

burst读操作疑问:

    来源: 互联网  发布时间:2017-03-04

    本文导语:  我们采用omap的GPMC总线通信方式,异步的单个字读写没有问题,但是burst(一次可以读写多个word)模式问题来了 时序上是我在进行读操作的时候,从设备会根据CLK发送16个word 单个word读是: memcpy((BasicAddress[inValue->baseC...

我们采用omap的GPMC总线通信方式,异步的单个字读写没有问题,但是burst(一次可以读写多个word)模式问题来了

时序上是我在进行读操作的时候,从设备会根据CLK发送16个word
单个word读是:
memcpy((BasicAddress[inValue->baseCs]+inValue->Paddress),inValue->value,sizeof(WORD));
或者
*(BasicAddress[inValue->baseCs]+inValue->Paddress)=*inValue->value;

这16个我就没法读了
因为memcpy多个字符相当是多个*a=*b,一个(*a=*b)就是一个读操作,burst一次读16个word,倘若a的类型是(16*16bit),那也就一个读就OK了,
可是Ce最长的类型才32BIT。

不知道有没人知道什么方法可行,我很纠结。

类型定义的最原始地方在哪里,有没有可以把16个word当作一个单位来定义

|
burst 操作对于软件是透明的 你不需要真的一次读写16word 还是保持你原来代码即可
你的软件读一个word,cpu就产生burst 读 ,可以一次性读取多个byte,这16个word都存在cache里,如果你下次访问的是这16个word里的一个,就能直接从cache里读到了。这时候就体现出burst 的优势了。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 数据库开发框架 Burst


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3