打印
[嵌入式linux]

嵌入式LINUX的问题33

[复制链接]
1952|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangxd5429|  楼主 | 2008-7-22 09:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
技术类问题
1.小弟正在使用一种芯片,它以SD存储卡的形式与MCU接口。现在需要向SD存储卡指定扇区写入数据后,从相同的扇区读出数据。数据将发生变化。Linux kernel使用montavista的商用内核。遇到的问题是:向指定扇区写入数据后,从相同扇区读出数据未发生变化。初步定位是高速缓存的原因。即数据被写入高速缓存,然后从高速缓存中读出数据。所以数据真实的变化未反映出来。请教各位高手:如何避开高速缓存,直接对SD卡的扇区操作?谢谢各位高手。

相关帖子

沙发
xinzha| | 2008-7-24 14:10 | 只看该作者

ll

首先我有疑问,MCU是否有高速缓存?如果是有高速缓存的CPU,都有各自的方法指定不使用cache,因为架构不同方法不同,你使用哪种架构需要自己去找。如果实在不知道怎么禁止cache,可以采用GPIO模式写SD卡,别用DMA模式,这样就可以避开cache的影响。
另外一种可能是SD卡内部cache问题,在ATA/ATAPI命令集中有同步cache的命令,具体是啥忘了,好像叫flush cache,可以尝试一下。

使用特权

评论回复
板凳
wangxd5429|  楼主 | 2009-8-24 09:13 | 只看该作者
谢谢xinzha!问题已经解决.

使用特权

评论回复
地板
sinanjj| | 2009-8-24 12:45 | 只看该作者
linux文件系统的构造问题。

你写入的时候并不真正写入。。。。。

使用特权

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

本版积分规则

79

主题

99

帖子

2

粉丝