新闻中心

EEPW首页>嵌入式系统>设计应用> 基于SEP4O20的Linux NandFlash驱动设计

基于SEP4O20的Linux NandFlash驱动设计

作者: 时间:2010-04-09 来源:网络 收藏

2 MTD的NAND结构
MTD层是操作系统和存储介质之间的一个适配层。MTD是的一个子集,用来作为具体的硬件设备和上层文件系统的桥梁。MTD层有两个非常显著的优异点:


(1)简化的开发。MTD的,所需要做的事情就是按照标准的公共接口函数的接口,根据微处理器控制器的不同做适当的修改,而无需去理会字符(块)设备驱动标准,因为所有这些复杂的与内核的交互接口机制mtd已经做好了,开发行的精力只需要集中在实现对物理设备的范围控制。
(2)使用环境的独立性。上层应用只需要访问mtd抽象层提供的字符设备方式或者块设备方式来访问mtd设备,因此具体驱动对于上层应用来说是具有独立性的,即使底层驱动修改了,上层拥有也不需要改动。并且由于mtd抽象层,上层应用就可以避免直接对具体硬件操作,而是对mtd操作,这样,这些应用就不是建立在某个具体的设备上,更好地实现了通用性和兼容性。
mtd抽象层用一个数组struct mtd_info*mtd_table[MAX_MTD_DEVICES]保存系统中所有的设备,mtd设备利用struct mtd_info这个结构来描述,该结构中描述了存储设备的基本信息和具体操作所需要的内核函数,mtd系统的那个机制主要就是围绕这个结构来实现的。
下面简单介绍下这个结构:

3SEP4020的驱动的实现
SEP4020由东南大学国家专用集成电路系统工程技术研究中心,使用0.18μm标准CMOS的工艺设计,内嵌ARM720T内核,带8kB指令数据Cache和全功能MMU,采用冯诺依曼结构的微处理。支持NandFlash的硬件ecc和软件ecc,支持3级到5级地址,并提供512byte和2k bytes的页支持(本文以3级地址,一页为512byte为实现目标)。根据。NandFlash实际使用中大量操作均为对整页的处理,本文利用片内dma搬运技术,提高对NandFlash的读写速度。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭