在C51系统上实现YAFFS文件系统
时间:01-09
来源:单片机与嵌入式系统应用
点击:
4 C51系统下的YAFFS使用实例
下面的程序代码是设计中的对DBF数据库文件操作的关键代码。
yaffs_StartUp();//设置一些参数,包括各分区在Flash中的起始块和结束块的地址、预留块数等
yaffs_mount("/flash"); //YAFFS支持多个分区,这里选择挂载/flash分区新建文件db1.dbf
f=yaffs_open("/flash/db1.dbf", O_CREAT,S_IREAD | S_IWRITE);
yaffs_close(f);//关闭文件db1.dbf
f=yaffs_open("/flash/db1.dbf", O_RDWR,0);//以读/写的方式打开文件db1.dbf
r=yaffs_write(f,"hello",5);//向文件写数据
yaffs_lseek(f,2,SEEK_SET);//移动文件读/写指针
r=yaffs_write(f,"world",5);
r=yaffs_lseek(f,0,SEEK_SET);
r=yaffs_read(f,buffer,10);//从文件读取数据
r=yaffs_close(f);//关闭文件db1.dbf
r=yaffs_unlink("/flash/db1.dbf");//删除文件db1.dbf
可见, YAFFS的接口函数的使用方法与标准C语言中对文件的操作函数十分相似,简单易用。
5 总结
YAFFS文件系统是第一个专门为NAND Flash存储器编写的嵌入式文件系统。它实现了掉电保护、疲劳均衡和有效的垃圾回收,与JFFS相比占用资源更少,运行速度更快;与FAT相比,更适合用于管理NAND Flash数据存储器。在C51系统中如果需要实现Flash文件系统,那么移植YAFFS是个不错的选择,但是毕竟它是一个在32位机的Linux下开发出来的,要让它能与8位机的C51风格完美结合,还需要进一步的努力。
参考文献
[1] Samsung公司. K9F5608DataSheet. 20031217.
[2] 毛勇强,黄光明. YAFFS文件系统在嵌入式Linux上的实现. 电子设计应用,2006(3).
|