yaffs基础第二篇——yaffs中缓冲机制

最近一直在研究yaffs,准备写个专题系列,当然现在的整理有点零散,而且一些我理解的想法不一定正确,现在先以笔记的形式把我的理解过程记录下来,之后会整理成一个更系统的关于yaffs的专题。

 

2009 04 10
yaffs的缓存机制
由于nandflash是有一定的读写次数的,所以在对一个文件进行操作的时候往往是先通过缓冲进行,对最后一次性写入nandflash,这有效的减少了用户对nandflash的频繁操作,延长了nandflash的寿命。


下面大致说一下yaffs的缓存机制:

1.首先在yaffs_mount的时候会对yaffs_dev这个结构体进行注册,和缓冲部分相关的有:
dev->nShortOpCaches//这个变量决定了有多少个缓冲,因为缓冲会大量的占用堆栈的空间,所以在yaffs不建议缓冲的数量很大,即使你填一个很大的数,系统也不会超过YAFFS_MAX_SHORT_OP_CACHES的总数。
yaffs_ChunkCache *srCache;//缓冲区的首地址,dev->srCache = YMALLOC( dev->nShortOpCaches * sizeof(yaffs_ChunkCache));
下面介绍一下缓冲区这个结构体的组成:
typedef struct
{
 struct yaffs_ObjectStruct *object;//一个缓冲区对应一个文件
 int chunkId;
 int lastUse; //通过lastUse来
 int dirty; //标志了这一个缓冲区是否被使用 
 int nBytes; 
 __u8 data[YAFFS_BYTES_PER_CHUNK];//数据区
} yaffs_

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值