论文部分内容阅读
随着嵌入式技术的发展和硬件设备的价格下降,嵌入式系统的存储能力迅速提高;另一方面,应用中产生的数据也在日益增加,这些数据亟需管理,因此嵌入式文件系统的重要性显得愈加突出。VDK是ADI公司为其Blackfin等DSP处理器开发的轻量级RTOS内核,可以充分发挥Blackfin的硬件特性,但其中没有提供对文件系统的支持。本文在讨论国内外常见Flash文件系统的特点、分析JFFS2文件系统关键技术的基础上,给出VDK上文件系统的一种实现方案:首先在VDK上实现系统适配层,以提供JFFS2文件系统所依赖的Linux内核函数。文件系统的实现自顶向下共分为四个层次,分别是:用户接口层、JFFS2文件系统层、MTD层和Flash驱动层。用户接口层对整个文件系统进行封装,为上层应用程序提供统一、标准的API接口。在JFFS2文件系统层中改造原有的数据结构,使所有目录和文件在文件系统挂载时组织为一棵二叉树,在此基础上实现给出文件路径到对应文件节点的快速定位;在改造原有数据结构的基础上,重建VDK线程与文件的关系,将所有线程打开同一文件时创建的数据结构组织成链表,并与JFFS2中的数据结构组织在一起,实现了VDK线程与打开文件之间的有效组织和管理。MTD层屏蔽各种Flash芯片的操作细节,实现上层与具体Flash芯片的无关。Flash驱动层实现对具体Flash芯片的读、写和擦除等操作。本文件系统的实现在蓝蜻蜓嵌入式IP-PBX开发板上进行了功能、性能和可靠性三个方面的测试,测试结果表明本文件系统的实现达到预期目标,符合产品应用要求。