最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【经验与教训】实现代码的时候,一定知道要buffer是否缓存,即是否是cachable

经验和教训 crifan 1776浏览 0评论

在调试LBA 的USB Promer的时候,重新定义了新的buffer的变量,结果不小心,把变量放在了

#pragma arm section zidata = "promer_non_cachable_data"
之外,所以,新的buffer的地址,就是cachable,可以缓存的了,

结果就是,用此buffer存放底层文件系统读出来的文件数据,其用的DMA方式传输的,

导致读出来的数据,在函数返回时候,不能完全同步,也就是说,数据只有部分是正确的,

buffer里面的其他数据,都是没有及时flush的,都是错误的,

因此,接下来的操作,就全错了。。。

以后,一定要注意,数据是否允许缓存这个事情。。。

转载请注明:在路上 » 【经验与教训】实现代码的时候,一定知道要buffer是否缓存,即是否是cachable

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
79 queries in 0.172 seconds, using 21.93MB memory