资源描述:
《uClinux下NorFlash的JFFS2文件系统构建.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、-24-《国外电子元器件》2004年第9期2004年9月●应用与设计uClinux下NorFlash的JFFS2文件系统构建贾东耀(广州新太科技股份公司,广东广州510090)摘要:目前的嵌入式系统多使用FLASH作为主存,因此,如何有效管理FLASH上的数据非常重要。文章以SST39VF160芯片为例,讨论了在NorFlash上建立uClinux的JFFS2文件系统的一般步骤,从而为FLASH上的数据管理提供了理想的选择方式。关键词:uClinux;NorFlash;MTD;JFFS2;文件系统分类号:TP316文献标识码:A文章编号:1006-6977(2004)09
2、-0024-03HowtoBuildJFFS2onNorFlashunderuClinuxJIADong-yao(SUNTEKTECHNOLOGYCO.,LTD.Guangzhou510665,China)Abstract:Flashiswildlyusedinembeddedsystems,soitisimportanttomanagethedataonFlash.HowtobuildJFFS2onNorFlashunderuClinuxisintroduced,andanexampleaboutSST39VF160isgiven,too.Keywords:uClinu
3、x;NorFlash;MTD;JFFS2;FileSystem嵌入式系统正随着Internet的发展而在各个领拟ram盘的方法来保存,但当系统掉电后,ram盘的域得到广泛的应用,作为嵌入式应用的核心,嵌入式内容将全部丢失,而不能永久保存,因此需要实现一Linux以其自由软件特性正日益被人们看好。Linux个可读写的文件系统。JFFS2文件系统便是一个很具有内核小、效率高、源代码开放等优点,还内涵了好的选择。完整的TCP/IP网络协议,因此非常适于嵌入式系统JFFS文件系统是瑞典Axis通信公司开发的一的应用。而作为专门运行于没有MMU的微处理器种基于Flash的日志文件系
4、统,它在设计时充分考虑的嵌入式操作系统,uClinux更是得到广泛应用。了Flash的读写特性和用电池供电的嵌入式系统的当前的嵌入式系统开发,需要方便灵活的使用特点,在这类系统中必需确保在读取文件时,如果系Flash。NOR和NAND是现在市场上两种主要的非易统突然掉电,其文件的可靠性不受到影响。对Red失闪存技术。Intel于1988年首先开发出NORflashHat的DavidWoodhouse进行改进后,形成了JFFS2。技术,彻底改变了原先由EPROM和EEPROM一统主要改善了存取策略以提高FLASH的抗疲劳性,同天下的局面。NOR的特点是芯片内执行(XIP,e
5、Xe2时也优化了碎片整理性能,增加了数据压缩功能。cuteInPlace),这样应用程序可以直接在flash闪存需要注意的是,当文件系统已满或接近满时,JFFS2内运行,不必再把代码读到系统RAM中。NOR的传会大大放慢运行速度。这是因为垃圾收集的问题。输效率很高,在1~4MB的小容量时具有很高的成JFFS2的底层驱动主要完成文件系统对Flash本效益,因此在嵌入式系统得到广泛的应用。芯片的访问控制,如读、写、擦除操作。在Linux中这部分功能是通过调用MTD(memorytechnologydevice1JFFS2文件系统简介内存技术设备)驱动实现的。相对于常规块设备驱
6、uClinux通常默认ROMFS作为根文件系统,它相动程序,使用MTD驱动程序的主要优点在于MTD对于一般的EXT2文件系统具有节约空间的优点。驱动程序是专门为基于闪存的设备所设计的,所以但是ROMFS是一种只读的文件系统,不支持动态擦它们通常有更好的支持、更好的管理和更好的基于写保存。虽然对于需要动态保存的数据可以采用虚扇区的擦除和读写操作的接口。MTD相当于在硬件uClinux下NorFlash的JFFS2文件系统构建-25-和上层之间提供了一个抽象的接口,可以把它理解在linux-2.4.xdriversmtdmaps目录下,每一为FLASH的设备驱动程序,
7、它主要向上提供两个接个文件都是一个具体的MTD原始设备的相关信息,口:MTD字符设备和MTD块设备。通过这两个接口,包括该MTD原始设备的起始物理地址、大小、分区就可以象读写普通文件一样对FLASH设备进行读情况、读写函数、初始化和清除程序。设计时,需要对写操作。经过简单的配置后,MTD在系统启动以后SST39VF160编写相关的程序,假设为S3C4510B.C。可以自动识别支持CFI或JEDEC接口的FLASH芯则需要进行以下几点操作:片,并自动采用适当的命令参数对FLASH进行读写(1)定义SST39VF160在系统中的起