论文部分内容阅读
嵌入式系统是嵌入到对象体系中的专用计算机系统,随着技术的不断发展,嵌入式系统在各个领域中发挥着越来越重要的作用,有非常广泛的发展前景。Flash是嵌入式系统中广泛使用的存储器,有NOR和NAND两种类型。NAND Flash成本低、容量大,一般用于存储数据,是U盘、CF卡和SD卡等存储器的重要组成部分,随着技术的进步有取代传统磁盘的趋势。μC/OS-Ⅱ是一种开源的嵌入式实时操作系统,采用微内核结构设计,可固化、可裁剪,性能优良,稳定性和可靠性较强,便于移植和维护,在嵌入式系统中得到了广泛的应用。在嵌入式系统中使用文件系统能方便软件的开发,保证软件的层次性,增强软件的可移植性和可维护性,降低系统的开发成本。μC/OS-Ⅱ只是一个微内核,只提供了操作系统的基本功能,没有文件系统。虽然现已存在一些开源的文件系统,但它们是为不同的目的而设计的,有些不一定适合用在NAND Flash上。因此研究一种适用于NAND Flash的开源文件系统,并把它集成到μC/OS-Ⅱ中,有着非常重要的意义。本文首先分析了μC/OS-Ⅱ的运行原理,包括任务的管理和调度、任务的同步与通信、中断和时间管理以及内存管理,并把μC/OS-Ⅱ移植到ARM处理器S3C2440上。其次介绍了Flash文件系统的结构和特点,分析了Flash文件系统的3种类型:集中索引文件系统、日志文件系统和线性文件系统,并比较了几种具体的Flash文件系统:JFFS/JFFS2. YAFFS和TrueFFS,说明了YAFFS用于NAND Flash的优势。然后分析了YAFFS的运行原理,包括YAFFS的NAND模型、文件在NAND上的存储、运行时RAM中的数据结构、数据块和页面的分配与回收、内部缓存、启动时的扫描过程等。最后介绍了YAFFS Direct Interface和YAFFS对RAM的要求,研究了它在μC/OS-Ⅱ上的集成,具体包括应用程序接口、操作系统内核接口和NAND Flash配置和访问接口,并实现了NAND Flash芯片K9F1208U0C的访问函数。本文把YAFFS成功地集成到μC/OS-Ⅱ中,并从目录、文件和链接3个方面对YAFFS进行了测试,证实了YAFFS是一种可以和μC/OS-Ⅱ一起使用的NAND Flash文件系统,可供工程人员参考。