CN101196849B - 一种flash的通用驱动方法 - Google Patents
一种flash的通用驱动方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000013507 mapping Methods 0.000 claims description 20
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000006978 adaptation Effects 0.000 abstract description 2
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000002950 deficient Effects 0.000 description 1
- 238000009776 industrial production Methods 0.000 description 1
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器件定义好驱动软件的参数,例如各块(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中,所述操作包括读操作、写操作或擦除操作。
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)
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驱动开发方法、装置与计算机设备 |
-
2007
- 2007-12-24 CN CN2007101254842A patent/CN101196849B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101196849A (zh) | 2008-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101196849B (zh) | 一种flash的通用驱动方法 | |
CN1869915B (zh) | 提供读取操作硬件加速的存储卡 | |
CN100454257C (zh) | 嵌入式系统 | |
CN101251800B (zh) | 图形用户界面生成方法及装置 | |
CN102707941B (zh) | 具有定制约束的页面设计器 | |
CN101395576B (zh) | 比较方法、自动化系统以及控制器 | |
CN103902461A (zh) | 不同Nand闪存兼容方法及装置 | |
JPWO2013168224A1 (ja) | プログラマブルロジックコントローラ、プログラミングツール及びプログラム・パラメータ編集システム | |
CN101257402A (zh) | 设备实现自定义命令的方法及系统 | |
CN103150339A (zh) | 产品说明书的提供方法、系统及母书服务器 | |
CN103164232A (zh) | 更新智能终端操作系统的方法、系统以及计算机 | |
US20070233533A1 (en) | System and method for creating work order | |
CN105408827A (zh) | 可编程控制器系统、可编程控制器、程序显示装置、程序的显示方法 | |
CN101917451B (zh) | 多功能电能表用dl/t645通信协议进行通信的方法 | |
CN104777784B (zh) | 用于数控机床的数控系统 | |
JP2004295589A (ja) | 制御装置及びプログラムの更新方法 | |
JP2007179112A (ja) | プログラマブル表示器、制御プログラムおよびそのプログラムを記録した記録媒体 | |
JP2007179112A5 (zh) | ||
JP2004280299A (ja) | コントローラ、開発装置及びシステム | |
CN101814009B (zh) | 闪存装置、资料储存系统、以及传送特殊命令至闪存装置的方法 | |
CN101170769B (zh) | 移动通信终端蓝牙地址与imei号捆绑的方法 | |
US20100146417A1 (en) | Adapter for Bridging Different User Interface Command Systems | |
CN102646083B (zh) | 加载电子备选件组合的方法和具有电子备选件组合的装置 | |
CN102467558A (zh) | 一种设备描述文件存储及更新的方法 | |
CN100517507C (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 |