【技术实现步骤摘要】
NOR闪存使用YAFFS的方法及装置
[0001] 本申请涉及一种NOR(或非门)闪存(Flash)使用YAFFS(Yet Another Flash File System,另一种闪存文件系统)文件系统的方法。
技术介绍
[0002]YAFFS是一种NAND(与非门)闪存使用的嵌入式文件系统。当前NOR闪存的应用越来越多,YAFFS文件系统在磨损均衡和掉电保护方面有独特优势,因此已有将YAFFS文件系统扩展到NOR闪存的应用场景。
[0003]申请公布号为CN104537075A、申请公布日为2015年4月22日的中国专利技术专利申请《Yaffs文件系统在NorFlash中的应用方法》就公开了一种将YAFFS文件系统应用到NOR闪存的技术方案。该文献将NOR闪存分为多个块(Block),每个块又分为多个页(Page),每个页又分成两个区域——数据区域(DATA AREA)和空闲区域(SPARE AREA)。该方案的缺点是可实施性差。因为当NOR闪存的页的大小正好与YAFFS文件系统规定的数据区域的操作单元(chun ...
【技术保护点】
【技术特征摘要】
1.一种NOR闪存使用YAFFS的方法,其特征是,包括如下步骤;步骤S1:开机初始化时,检测NOR闪存的整体大小、块的大小、页的大小,根据页的大小决定YSFFS文件系统的类型是YAFFS1还是YAFFS2,分配空闲区域和数据区域的块;将位于NOR闪存末尾的一个或多个块作为空闲区域,其余块均作为数据区域;步骤S2:加载NOR闪存的驱动程序,加载YAFFS文件系统;步骤S3:当需要读闪存时,所述YAFFS文件系统根据需要读取的chunkid计算需要读取的chunk的起始地址和/或需要读取的spare的起始地址,并进行读取;步骤S4:当需要写闪存时,所述YAFFS文件系统根据需要写入的chunkid计算需要写入的chunk的起始地址和/或需要写入的spare的起始地址,并进行写入;步骤S5:当需要擦除闪存时,所述YAFFS文件系统根据块序号计算擦除的起始地址,然后将相应位置的块的信息清空;或者,所述步骤S3、步骤S4、步骤S5的顺序任一在前。2.根据权利要求1所述的NOR闪存使用YAFFS的方法,其特征是,所述步骤S1中,所述NOR闪存按照固定的块的大小分为多个块,每个块又按照固定的页的大小分为多个页;每个块都有块序号,块序号具有唯一且从0开始顺序累加的特点。3.根据权利要求1所述的NOR闪存使用YAFFS的方法,其特征是,所述步骤S1中,YAFFS1管理的数据区域的操作单元chunk的大小是512字节,空闲区域的操作单元spare的大小为16字节;YAFFS2管理的chunk的大小是2048字节,spare的大小为64字节;每个chunk都有序号chunkid,chunkid具有唯一且从0开始顺序累加的特点。4.根据权利要求3所述的NOR闪存使用YAFFS的方法,其特征是,所述步骤S1中,chunk的大小≥页的大小,一个chunk由一个或多个页组成;spare的大小≤页的大小,每个spare对应地采用一个页进行存储。5.根据权利要求3所述的NOR闪存使用YAFFS的方法,其特征是,所述步骤S1中,一个NOR闪存中的spare的数量=chunk的数量,并且spare和chunk之间按先后顺序呈现一一对应的关系;每个chunkid都对应着一个chunk和一个spare。6.根据权利要求3所述的NOR闪存使用YAFFS的方法,其特征是,所述步骤S1中,根据页的大小决定YSFFS文件系统的类型,采用如下方式的任一种;第一,如果NOR闪存的页的大小是512字节,则采用YAFFS1作为YSFFS文件系统的类型;第二,如果NOR闪存的页的大小是2048字节,则选用YAFFS2作为YSFFS文件系统的类型;第三,如果NOR闪存的页的大小小于512字节,则将多个页合并为512字节,再选用YAFFS1作为YSFFS文件系统的类型;第四,如果NOR闪存的页的大小小于2048字节,则将多个页合并为2048字节,再选用YAFFS2作为YSFFS文件系统的类型。7.根据权利要求3所述的NOR闪存使用YAFFS的方法,其特征是,所述步骤S1中,分配空闲区域和数据区域的块,采用如下方式;首先计算空闲区域所需的块数量=NOR闪存的整体大小
÷
选定的YSFFS文件系统中一个chunk包含的页的数量
÷
块的大小;然后将位于NOR闪存末尾的“空闲区域所需的块数量”的块分配为空闲区域的块;最后将其余的块均作为数据区域的块。8.根据权利要求1所述的NOR闪存使用YAFFS的方法,其特征是,所述步骤S2中,所述驱
动程序包括读闪存、写闪存、擦除闪存的驱动程序。9.根据权利要求1所述的NOR闪存使用YAFFS的方法,其特征是,所述步骤S3中,当需要读闪存时,向所述YAFFS文件系统提供的参数包括:(1)需要读取的chunkid;(2)在该chunk读取后的内存存放地址;(3)在该chunk中的读取长度;(4)在“该chunkid对应的spare”读取后的内存存放地址;(5)在“该chunkid对应的spare”中的读取长度;在只读取...
【专利技术属性】
技术研发人员:王学平,黄永佳,周进,
申请(专利权)人:翱捷科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。