摘要:
Flash存储器由于体积小,功耗低,性能稳定等特点在便携式电子产品中得到了广泛的应用.Flash存储器主要有两种形式:Nor Flash和Nand Flash.Nor Flash具有XIP特性,可以直接在芯片上执行代码,而且读取速度较快.Nand Flash存储密度高,容量大,生产工艺简单,性价比高,但是控制方式复杂而且可能会存在一定的坏块.根据各自的特点,这两种Flash存储器分别用于不同的系统中.
805plus 微处理器是由东南大学国家专用集成电路系统工程技术研究中心和北京大学微处理器研究开发中心共同设计的32位移动终端应用处理器,面向低成本手持设备和其它通用嵌入式设备.本课题的研究和实现基于采用805plus平台设计开发的媒体播放器,提出了在嵌入式Linux系统中的Flash存储系统的硬件和软件方案.系统采用了Nor和Nand Flash结合的方案,在Nor Flash上存储与系统相关的软件和程序,在Nand Flash上存储用户数据和多媒体数据.
在嵌入式Linux中的Flash存储系统的设计和实现主要包括两个部分:一部分是Flash芯片驱动.本文结合805plus芯片提供的EMI控制器和Nand控制器以及DMA和中断控制器分别实现了Nor和Nand Flash的读写擦除等基本的操作,从而实现对Flash芯片以及其介质上数据访问和控制,在这个基础上按照Linux MTD设备驱动机制实现相关的设备驱动.Flash芯片驱动与硬件平台的相关性很大,这是本文的主要内容.另外一个部分是实现Flash上的数据管理.本文分别根据Nor和Nand Flash数据存储和操作特点提出了Flash上数据管理的要求,分析了JFFS2和YAFFS的特点以及各自的存储方式,断电保护,损耗平衡,垃圾回收等一系列的策略和机制,并在此基础上分别在Nor和Nand Flash上实现并优化了这些管理机制.
本文最后根据平台特点进行Linux源代码的配置和编译,并在硬件平台上进行了功能验证.
展开