专利名称:嵌入式系统闪存芯片驱动方法
技术领域:
本发明涉及计算机领域,尤其涉及嵌入式系统对闪存芯片驱动方法。
背景技术:
随着技术的发展以及社会各个领域对于计算机系统需求的日益增加,嵌入式系统的智能化程度也在逐步提高,现有的嵌入式系统往往都具有一些简单的管理和配置功能,这些管理和配置功能一般由存储在系统中的相关控制信息完成,嵌入式系统通常采用闪存芯片等存储介质来存储这些信息。从使用的方便性、灵活性、成本等方面的考虑,嵌入式系统中选择的闪存芯片往往是多厂家、多种类的,因此嵌入式系统需要分别提供对这些闪存芯片进行操作的驱动程序。现有做法如图1所示,将硬件的驱动程序和嵌入式系统的应用软件绑定在一起,生成一个可执行文件,存放在一个存储介质中,该可执行文件提供对闪存芯片的各类操作。当闪存芯片类型发生变化后,由于需要不同的驱动程序对其进行驱动,这时系统需要重新将应用部分和存储介质的驱动程序绑定起来,再重新存放到一个存储介质中。该模式在实际应用中存在很多问题,如当硬件的一个存储介质发生变化后,虽然对系统的应用程序本身而言没有任何变化,但同样需要重新进行一次绑定操作。另外,当需要将一个系统的应用部分移植到其他系统时,即使实现的功能完全相同,由于硬件不同,也需要重新进行一次绑定操作,使得嵌入式系统的应用部分的独立性、扩展性和移植性变差。
发明内容
本发明的目的是克服现有嵌入式系统为适应多种类闪存芯片而造成的系统应用部分独立性差、扩展性差、移植性差的缺点,以期提供一种简单有效的、增强系统移植性、扩展性和独立性的嵌入式系统闪存芯片驱动方法。
为实现上述目的,本发明提出了一种嵌入式系统闪存芯片驱动方法,其特征在于,包括以下步骤第一步定义闪存芯片的驱动接口;该驱动接口为系统应用部分对闪存芯片操作时将要使用的接口,此接口内部将决定具体应该使用何种驱动程序对芯片进行驱动。
第二步将闪存芯片的驱动程序和驱动接口存储在特定的存储空间;第三步指定应用部分对闪存芯片操作的方式;在应用部分的调用芯片驱动的位置指定到闪存芯片驱动接口的地址空间,通过绝对地址方式执行对芯片驱动对访问,以完成指定操作;第四步如果更换闪存芯片的类型,则在该特定存储空间中更换闪存芯片的驱动程序;如果添加闪存芯片的类型,则在该特定存储空间中添加闪存芯片的驱动程序。
采用本发明所述方法,通过将闪存芯片驱动程序与系统应用部分分别存储、通过驱动接口调用的方式,当系统中的闪存芯片类型发生变化时,将不再需要重新将应用部分和闪存芯片进行绑定,只需将新类型闪存芯片的驱动添加到(或更换掉)原来的芯片驱动并将其存储到特定的存储空间即可,从而增加了系统的移植性、扩展性和独立性。
图1是现有嵌入式系统闪存芯片驱动方法状态图;图2是本发明所述嵌入式系统闪存芯片驱动方法流程图;图3是本发明所述嵌入式系统闪存芯片驱动方法状态图;图4是作为本发明实施例的方法流程图。
具体实施例方式
下面结合具体实施例对本发明作进一步的描述。
事实上,本发明所述方法较为简明有效,从图2和图3中可以看出,本发明首先定义了闪存芯片的驱动接口,通过此步骤,所有对闪存芯片的操作都将调用此接口,此驱动接口即是应用部分对闪存芯片操作时将要使用的接口,此接口内部将决定具体应该使用何种驱动程序对芯片进行驱动。然后将闪存芯片的驱动和驱动接口存储在特定的存储空间,由于系统的应用部分要执行对闪存芯片的操作,则系统中就一定要有闪存芯片的驱动,本发明将芯片的驱动和驱动接口存储到系统的一个特定的存储空间中。再指定应用部分对闪存芯片操作的方式,由于应用部分和芯片的驱动处于不同的空间,即不同的存储介质上,因此当应用部分要对闪存芯片进行操作时,它一定要知道如何去调用闪存芯片的驱动。本发明在应用部分的调用芯片驱动的位置指定到闪存芯片驱动接口的地址空间,通过这种绝对地址的方式执行对芯片驱动对访问,以完成指定操作。如果系统由于某种原因更换了新类型的闪存芯片,这时只需要将它的驱动添加到原有的芯片驱动中,如果打算不再使用原类型的闪存芯片,也可以用新的驱动替换原有的驱动。
下面再结合传输设备中NCP板系统应用部分对多种类闪存芯片的适应方法,对本发明所述方法做进一步详细阐述。在本实施例所述系统中,有两套独立的存储芯片,一个是具有引导应用程序和下载程序、和修改系统状态功能的应用程序,称为Download;一个是完成业务功能的应用程序,称为App,两套程序都会使用到FLASH芯片的驱动。
在本系统中,由于FLASH芯片经常更换导致驱动程序经常发生变化,为解决每更换一个FLASH芯片都需要对整个系统升级的问题,将FLASH芯片的驱动程序作为一个独立的部分存储起来,在应用中通过指定此地址对其进行动态调用。这样更换FLASH芯片后只需要更换FLASH驱动部分。系统的应用部分不需要变化。虽然FLASH驱动应该存放在与Download和App完全独立的空间,但鉴于系统结构只存在两个存储区域,即只能存储两套程序,因此将闪存芯片的驱动和Download部分合并存储到一个共同的存储区,但相当于将这个存储区域划分成两个部分,因此实际调用的时候,Download、App与芯片的驱动还是相互独立的。
下面结合图4具体说明实现的过程,在下面的描述中,将Download和驱动的存储空间称为存储区1,将App的存储空间称为存储区2。
1、定义闪存芯片的驱动接口,通过此驱动接口,Download和App部分将完成对闪存芯片的驱动(包括写、擦除),Download和App不再保存闪存芯片的调用,它们完成的完全是应用部分的功能。
2、从存储区1中划分出一部分空间用于存储闪存芯片的驱动,在存储区域的低端划分出一部分的空间用于存储闪存芯片的驱动和驱动接口。此空间以上用于存储Download程序。
3、指定Download和App对闪存芯片操作的方式,在Download和App中执行对闪存芯片操作的位置,将其调用指针指向闪存芯片驱动接口所在的地址空间。这样当Download或App要执行对闪存芯片的操作,将从闪存芯片驱动接口的起始地址执行,由驱动接口觉得应该使用的芯片驱动,从而完成对芯片的操作。
完成以上过程后,系统的闪存芯片发生变化的时候,应用部分无需变化,只要将更换存储区1中的闪存芯片的驱动即可,从而实现了一种简单的NCP板应用部分对闪存芯片的驱动方法。
权利要求
1.一种嵌入式系统闪存芯片驱动方法,其特征在于,包括以下步骤第一步定义闪存芯片的驱动接口;第二步将闪存芯片的驱动程序和驱动接口存储在特定的存储空间;第三步指定应用部分对闪存芯片操作的方式。
2.根据权利要求1所述的嵌入式系统闪存芯片驱动方法,其特征在于,所述第一步中,所述驱动接口为系统应用部分对闪存芯片操作时将要使用的接口,由该接口内部决定具体应该使用何种驱动程序对芯片进行驱动。
3.根据权利要求1所述的嵌入式系统闪存芯片驱动方法,其特征在于,所述第三步中,在应用部分的调用芯片驱动的位置指定到闪存芯片驱动接口的地址空间,通过绝对地址方式执行对芯片驱动对访问,以完成指定操作。
4.根据权利要求1所述的嵌入式系统闪存芯片驱动方法,其特征在于,还包括第四步如果更换闪存芯片的类型,则在该特定存储空间中更换闪存芯片的驱动程序;如果添加闪存芯片的类型,则在该特定存储空间中添加闪存芯片的驱动程序。
全文摘要
本发明提出了一种嵌入式系统闪存芯片驱动方法,包括以下步骤第一步定义闪存芯片的驱动接口;第二步将闪存芯片的驱动程序和驱动接口存储在特定的存储空间;第三步指定应用部分对闪存芯片操作的方式。本发明所述方法能有效克服现有嵌入式系统为适应多种类闪存芯片而造成的系统应用部分独立性差、扩展性差、移植性差的缺点,当系统中的闪存芯片类型发生变化时,将不再需要重新将应用部分和闪存芯片进行绑定,只需将新类型闪存芯片的驱动添加到(或更换掉)原来的芯片驱动并将其存储到特定的存储空间即可,从而增加了系统的移植性、扩展性和独立性。
文档编号G11C16/08GK1540671SQ200310103229
公开日2004年10月27日 申请日期2003年11月3日 优先权日2003年11月3日
发明者李小伟, 王琳琳 申请人:中兴通讯股份有限公司