您当前的位置:五五电子网电子知识电子知识资料主板-硬盘-存储-插卡一种支持多Flash的自适应驱动设计方法 正文
一种支持多Flash的自适应驱动设计方法

一种支持多Flash的自适应驱动设计方法

点击数:7928 次   录入时间:03-04 11:37:43   整理:http://www.55dianzi.com   主板-硬盘-存储-插卡

    自适应驱动的结构如图8所示。如果自适应层读取的ID等于spansion_part[O]->geometry.id,则确认 当 前 Flash 为ty5701111183kc 04,spansion_parts[0]->ops->config()为当前Flash的配置函数ty5701111183kc04_configure;依次类推spansion_parts[0]->ops->read()为当前Flash的写函数,spansion_part[0]->geometry.device_size是Flash的容量大小。

    2.4 Flash自适应识别过程

    flash_nor_probe()函数遍历数组指针*(spansion_parts[])寻找符合当前Flash的驱动函数。如图9所示,自适应识别过程如下:

    m.JPG

   



www.55dianzi.com

    ①flash_nor_drive指向*(spansion_parts[])的第一个元素;

    ②将当前Flash ID flash_id_dest[4]与spansion_parts[i]->id[4]相比较;

    ③如果ID匹配,对应的spansion_partsEi]->ops是当前Flash的函数,spansion_parts[i]->ops->write()是当前Flash的写操作函数;

    ④如果ID不相同,fsi_nor_drive指向*(spansion_parts[])的下一个元素,重复步骤③,如果遍历*(spansion_parts[])还未找到ID号等于flash_id_dest[4]的元素,则表示当前软件版本不支持这款Flash,对应的驱动不存在,系统报错。

    结语

    本文主要对NOR Flash存储器驱动的自适应进行了重点设计,为上层文件系统提供了统一的接口去调用Flash存储器功能函数。对于特定Flash功能函数的实现并未详细讲解,整个方案在S3C2440 ARM9平台上对Spansion Flash(S29NS064N、S29NS128N、S29N128N)和Toshiba公司Flash ty5701111183kc04四款Flash的自适应进行了验证,后期还可以添加其他Flash的驱动函数,以再实现对其他Flash的自适应的支持。本方案可以进一步扩展,在ARM9平台上用软件的方式实现系统对NAND Flash、LCD和其他外围IC的自适应。



上一页  [1] [2] 


本文关键字:FLASH  主板-硬盘-存储-插卡电子知识资料 - 主板-硬盘-存储-插卡

《一种支持多Flash的自适应驱动设计方法》相关文章>>>