论文部分内容阅读
在便携式电子产品中,FlashRom是应用十分广泛的的存储媒体。Flash存储器主要有两种形式:一种是NorFlash,它具有XIP(eXecuteInPlace)特性,可直接在芯片上执行代码,而且随机读取速度快,在目前便携式设备对于容量要求不是很高的情况下得到了广泛使用。另一种就是NandFlash,它有着很高的存储密度,而且生产工艺简单。相对于NorFlash,NandFlash以其高的容量/价格比显现出强劲的市场竞争力。它的出现为提高存储容量和降低产品的成本提供了基础。
NandFlash的应用有两大难点,就是NandFlash相对复杂的接口和其中坏块的管理。本文针对NandFlash的接口问题和坏块处理,结合业界提出应用于不同的平台方案,基于IntelXscalePXA255处理器的嵌入式系统平台,提出优化的应用解决方案。主要包括三部分:一是存储系统的构架。根据NandFlash不能直接执行代码的特点,该系统采用了NorFlash和NandFlash结合的方式实现。NorFlash存储启动代码和内核,NandFlash存放根文件系统。其中NandFlash的控制采用GPIO口方式。二是基本驱动的实现。Linux系统中针对Flash设备提供了MTD子系统。设备驱动在MTD系统的基础上实现了NandFlash的基本读写操作。三是NandFlash在应用中的坏块处理。构建在NandFlash上的文件系统需要处理NandFlash的坏块问题。处理策略主要是采用坏块列表管理和损耗级别机制。本文分析了JFFS2和YAFFS的特点,并在YAFFS文件系统的基础上实现并优化了这些管理机制。
目前该系统已经在东集公司的D200+平台上稳定运行,但是对于针对新类型的NandFlash和坏块管理部分还需要进一步完善。