CN101196849B - 一种flash的通用驱动方法 - Google Patents

一种flash的通用驱动方法 Download PDF

Info

Publication number
CN101196849B
CN101196849B CN2007101254842A CN200710125484A CN101196849B CN 101196849 B CN101196849 B CN 101196849B CN 2007101254842 A CN2007101254842 A CN 2007101254842A CN 200710125484 A CN200710125484 A CN 200710125484A CN 101196849 B CN101196849 B CN 101196849B
Authority
CN
China
Prior art keywords
flash
parameter
steps
current
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2007101254842A
Other languages
English (en)
Other versions
CN101196849A (zh
Inventor
彭文剑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Konka Group Co Ltd
Original Assignee
Konka Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Konka Group Co Ltd filed Critical Konka Group Co Ltd
Priority to CN2007101254842A priority Critical patent/CN101196849B/zh
Publication of CN101196849A publication Critical patent/CN101196849A/zh
Application granted granted Critical
Publication of CN101196849B publication Critical patent/CN101196849B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种FLASH的通用驱动方法,其包括步骤:获取至少一个供应商的各种型号FLASH的参数信息;把参数信息相同的各种型号FLASH分为一类,为每类建立一个参数表,存储本类FLASH的参数信息;采用厂商号和设备号,建立各种型号FLASH与其所在参数表的对应关系表;使用FLASH时,获取当前FLASH的厂商号和设备号;并根据对应关系表得到当前FLASH对应的参数表,将其置为当前参数表;根据相关参数信息,对当前FLASH进行操作。在FLASH器件变化时,驱动程序不需要进行修改,实现了自动适应各种FLASH型号的驱动,提高了软件的设备无关性;并且拓展性强,可适应相关技术的发展。

Description

一种FLASH的通用驱动方法
技术领域
本发明涉及嵌入式系统的FLASH驱动,尤其涉及的是,一种FLASH的通用驱动方法。
背景技术
嵌入式系统的一大特点就是设备相关性,设备的变化常导致驱动软件要做相应修改;FLASH是嵌入式系统在掉电时保存信息的最常用设备。
现在的FLASH驱动的编写,一般分为三个步骤:FLASH器件选定供应商和器件型号,再根据所选FLASH器件定义好驱动软件的参数,例如各块(block)大小、读写时延长短等等,然后编写代码流程来实现针对该型号FLASH的驱动软件。
而FLASH的型号和生产厂家众多,这样编写出的驱动软件所针对的FLASH具有单一性,当FLASH的供应商或者FLAH大小发生变化时,由于硬件上做了相应的修改,软件上也要修改驱动,给工业化的开发,采购,生产带来很大的不便;并且软件的通用性很差,也容易产生由于临时性修改而导致的驱动软件错误。
因此,现有技术存在缺陷,需要改进。
发明内容
本发明所要解决的技术问题是驱动软件所针对的FLASH具有单一性,硬件修改时必须对软件进行修改,软件的通用性很差,容易产生由于临时性修改而导致的驱动软件错误。
本发明的技术方案如下:
一种FLASH的通用驱动方法,其包括以下步骤:A1、获取至少一个供应商的各种型号FLASH的参数信息;A2、把参数信息相同的各种型号FLASH分为一类,为每类建立一个参数表,存储本类FLASH的参数信息;A3、采用FLASH的厂商号和设备号,建立各种型号FLASH与其所在参数表的对应关系表;A4、使用FLASH时,获取当前FLASH的所述厂商号和所述设备号;A5、根据所述厂商号和所述设备号,以及所述对应关系表得到所述当前FLASH对应的所述参数表,并将其置为当前参数表;A6、根据所述当前参数表中的参数信息,对所述当前FLASH进行操作。
所述的通用驱动方法,其中,所述参数信息包括:容量、块大小、块分布、读写时延长短和各块的相对起始地址。
所述的通用驱动方法,其中,步骤A3具体包括以下步骤:分别将各种型号FLASH的所述厂商号和所述设备号合并为一区别标识,建立各种型号FLASH的区别标识与各FLASH所在参数表的对应关系表。
所述的通用驱动方法,其中,步骤A5具体包括以下步骤:根据所述厂商号和所述设备号得到所述区别标识,查询所述对应关系表中的所述区别标识,得到所述当前FLASH对应的所述参数表,并将其置为当前参数表。
所述的通用驱动方法,其中,步骤A3具体包括以下步骤:采用FLASH的厂商号和设备号,建立各种型号FLASH的设备表;并建立对应关系表,用于存储所述设备表中的各设备与各参数表的对应关系。
所述的通用驱动方法,其中,步骤A5具体包括以下步骤:根据所述厂商号和所述设备号,得到所述设备表中对应的设备,查询所述对应关系表得到所述当前FLASH对应的所述参数表,并将其置为当前参数表。
所述的通用驱动方法,其中,步骤A4中,通过发送指令,获取正在使用的FLASH的所述厂商号和所述设备号。
所述的通用驱动方法,其中,步骤A6具体包括以下步骤:根据所述当前参数表中的参数信息,设置当前设备的各参数变量,对所述当前FLASH进行操作。
所述的通用驱动方法,其中,步骤A6中,对所述当前FLASH进行操作,是采用通用流程进行。
所述的通用驱动方法,其中,步骤A6中,所述操作包括读操作、写操作或擦除操作。
采用上述方案,本发明在FLASH器件变化时,驱动程序不需要进行修改,实现了自动适应各种FLASH型号的驱动,提高了软件的设备无关性;当FLASH的供应厂家或者FLASH容量发生变化,或者其它FLASH参数发生变化时,避免了重新改写FLASH驱动程序;从而具有较好的软件通用性;并且拓展性强,可适应相关技术的发展。
附图说明
图1为本发明方法的流程图;
图2为本发明方法的一种实施方式的流程图。
具体实施方式
以下结合附图和具体实施例,对本发明进行详细说明。
在嵌入式系统中,常用到的FLASH大小从1MBytes到32MBytes不等,主要区别在于FLASH大小不同,同一容量FLASH也会由于各生产厂家不同,而导致FLASH中各Block的大小不同,读写时延参数不同等。
在实际工业生产中,考虑到可能的FLASH供应商一般不超过10家,而容量大小种类一般只用上几种,例如1M、2M、4M、8M、16M、32M等等,考虑到其它参数,可以把各参数信息都相同的FLASH合并为一类,建立一个信息表;那么各不同FLASH可以合并为N类,建立N个信息表,N一般为几十量级,即N一般小于100。有了这些信息表,就可以来实现FLASH的通用驱动了。因此,如图1所示,本发明提供了一种FLASH的通用驱动方法,其包括以下步骤。
A1、获取至少一个供应商的各种型号FLASH的参数信息;更好的是,获取多家供应商的各种型号FLASH的参数信息;例如,获取市场份额较大的5至15家供应商的全部各种型号FLASH的参数信息;如果可能的话,还可以获取所有已知的、以及可预知的各供应商的各种型号FLASH的参数信息。其中,所述参数信息包括:容量、块(block)大小、块分布、读写时延长短和各块的相对起始地址。必要时,可以根据实际情况,所述参数信息还包括其他参数。
A2、把参数信息相同的各种型号FLASH分为一类,为每类建立一个参数表,存储本类FLASH的参数信息。即,把具备相同参数信息的各FLASH合并为一类,每类建立一个具体的参数表。
例如,某一类FLASH的参数表示意如下。
Flash_info_t FLASH1MTOP_Table_0=
{
  1024,//FLASH容量大小∥
  23,∥有多少个块(block)∥
  {64,5},∥第1块的大小及读写延时∥
  {64,5},∥第2块的大小及读写延时∥
  ……
  {8,5},//第23块的大小及读写延时//
};
A3、采用FLASH的厂商号和设备号,建立各种型号FLASH与其所在参数表的对应关系表。
假设有如下厂商号和设备号的FLASH对应上述FLASH1MTOP_Table_0,那么可以用一个switch和case来实现所述对应关系表;在本例中,将厂商号和设备号合成一个区别标识,假设为FLASHID,那么当FLASHID为0x12340000,0x12340001,0x12340002,...,0x12340099,那么就可以查得它对应的参数表为FLASH1MTOP_Table_0。
一个对应关系表的例子如下所示。
    switch(FLASHID)
    {
    0x12340000:
    0x12340001:
    0x12340002:
    0x12340003:
    0x12340004:
    0x12340005:
    ……..
    0x12340099:
    return &FLASH1MTOP_Table_0;//即具有上述区别标识的设备都对应着
FLASH1MTOP_Table_0这个参数表//
    0x12340000:
    0x1da230001:
    0x12340002:
    0x13140003:
    0x12340004:
    0x64320005:
    ……
    0x15340099:
    return &FLASH1MTOP_Table_1;∥即具有上述区别标识的设备都对应
着FLASH1MTOP_Table_1这个参数表//
    ……
    }
A4、使用FLASH时,获取当前FLASH的所述厂商号和所述设备号;一般的,在步骤A4中,使用FLASH时,可以通过发送指令,获取正在使用的FLASH的所述厂商号和所述设备号。即在使用FLASH时,先发出获得FLASH厂商号和设备号的软件指令,获得正在使用的FLASH的厂商号和设备号
A5、根据所述厂商号和所述设备号,以及所述对应关系表得到所述当前FLASH对应的所述参数表,并将其置为当前参数表。这一步是根据厂商号和设备号得到该FLASH对应的参数表,将其置为当前参数表。
A6、根据所述当前参数表中的参数信息,对所述当前FLASH进行操作;所述操作可以包括读操作、写操作或擦除操作。其中,对所述当前FLASH进行操作,是采用通用流程进行。更好的是,步骤A6具体包括以下步骤:根据所述当前参数表中的参数信息,设置当前设备的各参数变量,对所述当前FLASH进行操作。
一个例子是,步骤A3具体包括以下步骤:分别将各种型号FLASH的所述厂商号和所述设备号合并为一区别标识,建立各种型号FLASH的区别标识与各FLASH所在参数表的对应关系表。
在此基础上,另一个优选的例子是,步骤A5具体包括以下步骤:根据所述厂商号和所述设备号得到所述区别标识,查询所述对应关系表中的所述区别标识,得到所述当前FLASH对应的所述参数表,并将其置为当前参数表。
或者,又一个例子是,步骤A3具体包括以下步骤:采用FLASH的厂商号和设备号,建立各种型号FLASH的设备表;并建立对应关系表,用于存储所述设备表中的各设备与各参数表的对应关系。
在此基础上,另一个优选的例子是,步骤A5具体包括以下步骤:根据所述厂商号和所述设备号,得到所述设备表中对应的设备,查询所述对应关系表得到所述当前FLASH对应的所述参数表,并将其置为当前参数表。
一个完整的例子如图2所示,包括步骤:初始化FLASH设备表;初始化FLASH各参数表;建立FLASH设备表和参数表的对应关系;发出指令获得当前使用FLASH设备号和厂商号;根据设备号和厂商号,及设备表和参数表的对应关系,设置好当前设备各参数变量;由当前设备各参数变量,按通用流程来驱动FLASH进行各种读写操作。
采用本发明方法,在FLASH器件变化时,驱动程序不需要进行修改,提高了软件的设备无关性。而所付出的代价也只是多建立了一些参数表,总的空间一般不超过2Kbytes,拓展性强,在技术上和工程上都确实可行。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (7)

1.一种FLASH的通用驱动方法,其包括以下步骤:
A1、获取至少一个供应商的各种型号FLASH的参数信息;
A2、把参数信息相同的各种型号FLASH分为一类,为每类建立一个参数表,存储本类FLASH的参数信息;
A3、采用FLASH的厂商号和设备号,建立各种型号FLASH与其所在参数表的对应关系表;
A4、使用FLASH时,获取当前FLASH的所述厂商号和所述设备号;
A5、根据所述厂商号和所述设备号,以及所述对应关系表得到所述当前FLASH对应的所述参数表,并将其置为当前参数表;
A6、根据所述当前参数表中的参数信息,对所述当前FLASH进行操作;
所述参数信息包括:容量、块大小、块分布、读写时延长短和各块的相对起始地址;
步骤A3具体包括以下步骤:分别将各种型号FLASH的所述厂商号和所述设备号合并为一区别标识,建立各种型号FLASH的区别标识与各FLASH所在参数表的对应关系表;
步骤A5具体包括以下步骤:根据所述厂商号和所述设备号得到所述区别标识,查询所述对应关系表中的所述区别标识,得到所述当前FLASH对应的所述参数表,并将其置为当前参数表。
2.根据权利要求1所述的通用驱动方法,其特征在于,步骤A3具体包括以下步骤:采用FLASH的厂商号和设备号,建立各种型号FLASH的设备表;并建立对应关系表,用于存储所述设备表中的各设备与各参数表的对应关系。
3.根据权利要求2所述的通用驱动方法,其特征在于,步骤A5具体包括以下步骤:根据所述厂商号和所述设备号,得到所述设备表中对应的设备,查询所述对应关系表得到所述当前FLASH对应的所述参数表,并将其置为当前参数表。
4.根据权利要求1所述的通用驱动方法,其特征在于,步骤A4中,通过发送指令,获取正在使用的FLASH的所述厂商号和所述设备号。
5.根据权利要求1所述的通用驱动方法,其特征在于,步骤A6具体包括以下步骤:根据所述当前参数表中的参数信息,设置当前设备的各参数变量,对所述当前FLASH进行操作。
6.根据权利要求1所述的通用驱动方法,其特征在于,步骤A6中,对所述当前FLASH进行操作,是采用通用流程进行。
7.根据权利要求1所述的通用驱动方法,其特征在于,步骤A6中,所述操作包括读操作、写操作或擦除操作。
CN2007101254842A 2007-12-24 2007-12-24 一种flash的通用驱动方法 Active CN101196849B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101254842A CN101196849B (zh) 2007-12-24 2007-12-24 一种flash的通用驱动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101254842A CN101196849B (zh) 2007-12-24 2007-12-24 一种flash的通用驱动方法

Publications (2)

Publication Number Publication Date
CN101196849A CN101196849A (zh) 2008-06-11
CN101196849B true CN101196849B (zh) 2012-07-18

Family

ID=39547280

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101254842A Active CN101196849B (zh) 2007-12-24 2007-12-24 一种flash的通用驱动方法

Country Status (1)

Country Link
CN (1) CN101196849B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770433B (zh) * 2008-12-30 2012-01-11 意法半导体研发(上海)有限公司 通用驱动方法和通用驱动设备
CN101867737A (zh) * 2010-04-06 2010-10-20 福建新大陆通信科技股份有限公司 一种基于机顶盒的自动兼容多种型号flash的软件处理方法
CN103077040A (zh) * 2011-10-26 2013-05-01 康佳集团股份有限公司 Lcd模块自动识别方法及系统
CN102623066A (zh) * 2012-01-19 2012-08-01 苏州希图视鼎微电子有限公司 固化代码参数表的保存及获取方法
CN107729067B (zh) * 2017-09-11 2021-04-20 北京东土科技股份有限公司 一种flash芯片驱动的注册方法及装置
CN117453151B (zh) * 2023-12-25 2024-04-05 长沙金维信息技术有限公司 Nor-flash驱动开发方法、装置与计算机设备

Also Published As

Publication number Publication date
CN101196849A (zh) 2008-06-11

Similar Documents

Publication Publication Date Title
CN101196849B (zh) 一种flash的通用驱动方法
CN100454257C (zh) 嵌入式系统
CN101251800B (zh) 图形用户界面生成方法及装置
CN101395576B (zh) 比较方法、自动化系统以及控制器
CN110221828B (zh) 一种汽车电子控制单元通讯程序的可视化编程方法
CN103902461A (zh) 不同Nand闪存兼容方法及装置
CN104461649A (zh) 芯片兼容方法及装置
CN103150339A (zh) 产品说明书的提供方法、系统及母书服务器
CN103164232A (zh) 更新智能终端操作系统的方法、系统以及计算机
US20070233533A1 (en) System and method for creating work order
CN101917451B (zh) 多功能电能表用dl/t645通信协议进行通信的方法
CN105260266A (zh) 一种快照卷写方法及依赖快照系统
CN104777784B (zh) 用于数控机床的数控系统
JP2004295589A (ja) 制御装置及びプログラムの更新方法
CN101292210B (zh) 网络仿真软盘驱动方法及仿真软盘驱动器
JP2007179112A (ja) プログラマブル表示器、制御プログラムおよびそのプログラムを記録した記録媒体
CN103425700A (zh) 一种核电站模拟机的数据存储、查询及更新方法
JP2007179112A5 (zh)
CN105912751B (zh) 一种模型联合仿真的方法及系统
JP2004280299A (ja) コントローラ、開発装置及びシステム
US20100146417A1 (en) Adapter for Bridging Different User Interface Command Systems
US8560095B2 (en) Changeable BACnet interface
CN102646083B (zh) 加载电子备选件组合的方法和具有电子备选件组合的装置
CN102663205A (zh) 一种车辆装配车间工装现场管理的软件实现方法及其系统
CN102467558A (zh) 一种设备描述文件存储及更新的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant