CN107729067B - 一种flash芯片驱动的注册方法及装置 - Google Patents

一种flash芯片驱动的注册方法及装置 Download PDF

Info

Publication number
CN107729067B
CN107729067B CN201710814228.8A CN201710814228A CN107729067B CN 107729067 B CN107729067 B CN 107729067B CN 201710814228 A CN201710814228 A CN 201710814228A CN 107729067 B CN107729067 B CN 107729067B
Authority
CN
China
Prior art keywords
flash chip
file system
layer
driver
identification information
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
CN201710814228.8A
Other languages
English (en)
Other versions
CN107729067A (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.)
Kyland Technology Co Ltd
Original Assignee
Kyland Technology 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 Kyland Technology Co Ltd filed Critical Kyland Technology Co Ltd
Priority to CN201710814228.8A priority Critical patent/CN107729067B/zh
Publication of CN107729067A publication Critical patent/CN107729067A/zh
Application granted granted Critical
Publication of CN107729067B publication Critical patent/CN107729067B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及嵌入式技术领域,特别涉及一种FLASH芯片驱动的注册方法及装置。该方法为:基于获取到的FLASH芯片的标识信息确定出FLASH芯片的唯一标识信息;判断FLASH芯片驱动层中是否存在与FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动;在判定存在与FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,针对YAFFS文件系统中各操作接口,采用函数层中与各操作接口分别对应的各函数指针调用FLASH芯片驱动,并将FLASH芯片驱动注册至YAFFS文件系统,其中,函数层设置于YAFFS文件系统和FLASH芯片驱动层之间。采用上述方法,提高了FLASH芯片的驱动成功率。

Description

一种FLASH芯片驱动的注册方法及装置
技术领域
本发明涉及嵌入式技术领域,特别涉及一种FLASH芯片驱动的注册方法及装置。
背景技术
YAFFS(Yet Another Flash File System,YAFFS)文件系统是一个开源文件系统,是第一个专门为NAND FLASH存储器设计的嵌入式文件系统,适用于大容量的存储设备,且YAFFS文件系统是基于GNU通用公共许可证(General Public License,GPL)协议发布的,可在其网站免费获得源代码。
NAND存储器(NAND FLASH)是FLASH存储器的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。NAND FLASH存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、MP3随身听记忆卡、体积小巧的U盘等。
现有技术中FLASH芯片驱动的注册方式为:YAFFS文件系统中的读操作接口直接调用通用FLASH芯片驱动中相应的读驱动接口,写操作接口直接调用通用FLASH芯片驱动中相应的写驱动接口,擦除操作接口直接调用通用FLASH芯片驱动中相应的擦除操作接口,并将该通用FLASH芯片驱动注册至YAFFS文件系统中。
目前,大多数FLASH芯片制造厂商在制造FLASH芯片时所遵循的FLASH芯片驱动标准相同或相似,那么,这样即可以采用通用FLASH驱动直接操作FLASH芯片。然而,当遇到特殊型号的FLASH芯片时,由于该特殊型号的FLASH芯片的制造厂商所采用的驱动标准与通用驱动标准不同,那么,在采用通用FLASH芯片驱动直接操作该特殊型号的FLASH芯片时,就可能会出现不能驱动操作该特殊的FLASH芯片的情况。
有鉴于此,需要设计一种新的FLASH芯片驱动的注册方法及装置,以弥补现有技术中存在的缺陷和不足之处。
发明内容
本发明实施例的目的是提供一种FLASH芯片驱动的注册方法及装置,用以解决现有技术中存在的采用通用的FLASH芯片驱动,而不能驱动起特殊型号的FLASH芯片的问题。
本发明实施例中提供的具体技术方案如下:
一种FLASH芯片驱动的注册方法,包括:
基于获取到的FLASH芯片的标识信息确定出所述FLASH芯片的唯一标识信息;
判断FLASH芯片驱动层中是否存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动;
在判定存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用所述FLASH芯片驱动,并将所述FLASH芯片驱动注册至所述YAFFS文件系统中,其中,所述函数层设置于所述YAFFS文件系统和所述FLASH芯片驱动层之间。
较佳的,基于获取到的FLASH芯片的标识信息确定出所述FLASH芯片的唯一标识信息,具体包括:
通过调用获取厂商号和设备号指令的方式,获取所述FLASH芯片的厂商号和设备号;
根据所述FLASH芯片的厂商号和设备号,确定所述FLASH芯片的型号和关键参数信息。
较佳的,判断FLASH芯片驱动层中是否存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动,具体包括:
基于所述FLASH芯片的型号和关键参数信息,判断FLASH芯片驱动层中是否存在针对所述FLASH芯片的型号和关键参数信息设置的,可用于驱动所述FLASH芯片进行读操作,写操作和擦除操作的FLASH芯片驱动。
较佳的,针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用所述FLASH芯片驱动,具体包括:
针对YAFFS文件系统中的读操作接口,采用在函数层中设置的与所述读操作接口对应的第一函数指针调用所述FLASH芯片驱动中的读驱动接口,其中,所述第一函数指针用于指向所述FLASH芯片驱动中的读驱动接口;
针对YAFFS文件系统中的写操作接口,采用在函数层中设置的与所述写操作接口对应的第二函数指针调用所述FLASH芯片驱动中的写驱动接口,其中,所述第二函数指针用于指向所述FLASH芯片驱动中的写驱动接口;
针对YAFFS文件系统中的擦除操作接口,采用在函数层中设置的与所述擦除操作接口对应的第三函数指针调用所述FLASH芯片驱动中的擦除驱动接口,其中,所述第三函数指针用于指向所述FLASH芯片驱动中的擦除驱动接口。
较佳的,进一步包括:
在判定所述FLASH芯片驱动层中不存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用通用FLASH芯片驱动,其中,所述函数层设置于所述YAFFS文件系统和所述FLASH芯片驱动层之间。
一种FLASH芯片驱动的注册装置,包括:
确定单元,用于基于获取到的FLASH芯片的标识信息确定出所述FLASH芯片的唯一标识信息;
判断单元,用于判断FLASH芯片驱动层中是否存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动;
注册单元,用于在判定存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用所述FLASH芯片驱动,并将所述FLASH芯片驱动注册至所述YAFFS文件系统中,其中,所述函数层设置于所述YAFFS文件系统和所述FLASH芯片驱动层之间。
较佳的,在基于获取到的FLASH芯片的标识信息确定出所述FLASH芯片的唯一标识信息时,所述确定单元具体用于:
通过调用获取厂商号和设备号指令的方式,获取所述FLASH芯片的厂商号和设备号;
根据所述FLASH芯片的厂商号和设备号,确定所述FLASH芯片的型号和关键参数信息。
较佳的,在判断FLASH芯片驱动层中是否存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,所述判断单元具体用于:
基于所述FLASH芯片的型号和关键参数信息,判断FLASH芯片驱动层中是否存在针对所述FLASH芯片的型号和关键参数信息设置的,可用于驱动所述FLASH芯片进行读操作,写操作和擦除操作的FLASH芯片驱动。
较佳的,在针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用所述FLASH芯片驱动时,所述注册单元具体用于:
针对YAFFS文件系统中的读操作接口,采用在函数层中设置的与所述读操作接口对应的第一函数指针调用所述FLASH芯片驱动中的读驱动接口,其中,所述第一函数指针用于指向所述FLASH芯片驱动中的读驱动接口;
针对YAFFS文件系统中的写操作接口,采用在函数层中设置的与所述写操作接口对应的第二函数指针调用所述FLASH芯片驱动中的写驱动接口,其中,所述第二函数指针用于指向所述FLASH芯片驱动中的写驱动接口;
针对YAFFS文件系统中的擦除操作接口,采用在函数层中设置的与所述擦除操作接口对应的第三函数指针调用所述FLASH芯片驱动中的擦除驱动接口,其中,所述第三函数指针用于指向所述FLASH芯片驱动中的擦除驱动接口。
较佳的,所述注册单元进一步用于:
在判定所述FLASH芯片驱动层中不存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用通用FLASH芯片驱动,其中,所述函数层设置于所述YAFFS文件系统和所述FLASH芯片驱动层之间。
一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行:基于获取到的FLASH芯片的标识信息确定出所述FLASH芯片的唯一标识信息;判断FLASH芯片驱动层中是否存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动;在判定存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用所述FLASH芯片驱动,并将所述FLASH芯片驱动注册至所述YAFFS文件系统中,其中,所述函数层设置于所述YAFFS文件系统和所述FLASH芯片驱动层之间。
一种计算机存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一种方法。
本发明有益效果如下:
综上所述,本发明实施例中,在注册FALSH芯片驱动到YAFFS文件系统的过程中,基于获取到的FLASH芯片的标识信息确定出所述FLASH芯片的唯一标识信息;判断FLASH芯片驱动层中是否存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动;在判定存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用所述FLASH芯片驱动,并将所述FLASH芯片驱动注册至所述YAFFS文件系统中,其中,所述函数层设置于所述YAFFS文件系统和所述FLASH芯片驱动层之间。
采用上述方法,针对YAFFS文件系统逻辑层中的各操作接口,在函数层中分别设置有相应的函数指针,并通过定义函数指针的方式,将基于FLASH芯片唯一标识信息从FLASH芯片驱动层中确定出的FLASH芯片驱动注册至YAFFS文件系统中。可以采用函数指针方式灵活调用具体的驱动接口,能够针对特殊型号的FLASH芯片,注册针对该特殊型号的FLASH芯片相匹配的FLASH芯片驱动,以避免出现注册通用FLASH芯片驱动而不能驱动起该特殊型号的FLASH芯片的问题,提高了FLASH芯片驱动成功率。
附图说明
图1为本发明实施例中,一种FLASH芯片驱动的注册方法的详细流程图;
图2为本发明实施例中,另一种FLASH芯片驱动的注册方法的详细流程图;
图3为本发明实施例中,一种FLASH芯片驱动的注册装置的结构示意图。
具体实施方式
为了解决现有技术中存在的采用通用的FLASH芯片驱动,而不能驱动起特殊型号的FLASH芯片的问题,本发明实施例中提供了一种新的FLASH芯片驱动的注册方法及装置,该方法为:基于获取到的FLASH芯片的标识信息确定出所述FLASH芯片的唯一标识信息;判断FLASH芯片驱动层中是否存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动;在判定存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用所述FLASH芯片驱动,并将所述FLASH芯片驱动注册至所述YAFFS文件系统中,其中,所述函数层设置于所述YAFFS文件系统和所述FLASH芯片驱动层之间。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面将通过具体实施例对本发明的方案进行详细描述,当然,本发明并不限于以下实施例。
实际应用中,YAFFS文件系统是一种嵌入式文件系统,其是第一个专门为NANDFLASH存储器设计的,基于日志的嵌入式文件系统。由于YAFFS文件系统是一个开源的文件系统,其采用统一的逻辑层来操作底层存储介质,而不必关系具体的存储介质的类型。例如,假设该逻辑层中用于读取NAND FLASH芯片中数据的读操作接口为:yflash_ReadChunkWithTagsFromNAND;该逻辑层中用于将数据写入NAND FLASH芯片中的写操作接口为:yflash_WriteChunkWithTagsToNAND;该逻辑层中用于擦除NAND FLASH芯片中数据的擦除操作接口为:yflash_EraseBlockInNAND。
本发明实施例中,针对YAFFS文件系统采用的逻辑层中的各操作接口至少包括:读操作接口,写操作接口和擦除操作接口。
参阅图1所示,本发明实施例中,一种FLASH芯片驱动的注册方法的详细流程如下:
步骤100:基于获取到的FLASH芯片的标识信息确定出上述FLASH芯片的唯一标识信息。
具体的,在执行步骤100时,通过调用获取厂商号和设备号指令的方式,获取上述FLASH芯片的厂商号和设备号,并根据上述FLASH芯片的厂商号和设备号,确定上述FLASH芯片的唯一标识信息,本发明实施例中,该唯一标识信息包括该FLASH芯片的型号和关键参数信息。
实际应用中,由于市面上存在多个不同的NAND FLASH芯片厂商,且即便同一NANDFLASH芯片厂商也会生产多种不同型号的NAND FLASH芯片。不同的NAND FLASH芯片具有其特定的标识信息,如,厂商号(Manufacture ID)和设备号(Device ID),那么,本发明实施例中,针对一个NAND FLASH芯片,就可以采用通用的获取NAND FLASH芯片的厂商号和设备号的指令,获取上述一个NAND FLASH芯片的厂商号和设备号。
例如,假设NAND FLASH芯片厂商A生产的型号1的FLASH芯片为NAND FLASH 1,其对应的厂商号为A,设备号为A10001,那么,针对NAND FLASH 1,采用通用的获取NAND FLASH芯片的厂商号和设备号的指令,获取NAND FLASH 1的厂商号为A,设备号为A10001;又例如,假设NAND FLASH芯片厂商B生产的型号3的FLASH芯片为NAND FLASH 1,其对应的厂商号为B,设备号为A30002,那么,针对NAND FLASH 2,采用通用的获取NAND FLASH芯片的厂商号和设备号的指令,获取NAND FLASH 2的厂商号为B,设备号为A30002。
其中,本发明实施例中,通过上述一个NAND FLASH芯片的厂商号和设备号,确定出用于唯一标识上述一个NAND FLASH芯片的唯一标识信息。
进一步的,本发明实施例中,可根据获取到的上述一个NAND FLASH芯片的厂商号和设备号,确定上述一个NAND FLASH芯片的型号,上述一个NAND FLASH芯片的主分区(MainArea)和带外数据(Out Of Band,OBB)区,上述主分区和OBB区为上述一个NAND FLASH芯片的关键参数信息。
步骤110:判断FLASH芯片驱动层中是否存在与上述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动。
具体的,在执行步骤110时,基于上述FLASH芯片的型号和关键参数信息,判断FLASH芯片驱动层中是否存在针对上述FLASH芯片的型号和关键参数信息设置的,可用于驱动上述FLASH芯片进行读操作,写操作和擦除操作的FLASH芯片驱动。
实际应用中,FLASH芯片驱动层中存储有用于驱动NAND FLASH芯片的FLASH芯片驱动,在启动NAND FLASH芯片时,需要将FLASH芯片驱动层中的FLASH芯片驱动注册至YAFFS文件系统中。
本发明实施例中,FLASH芯片驱动层中至少存储有针对特殊型号的NAND FLASH芯片设置的,可用于驱动相应特殊型号的NAND FLASH的至少一种定制的NAND FLASH芯片驱动,及通用NAND FLASH芯片驱动。
本发明实施例中,针对特定型号的FLASH芯片,在FLASH芯片驱动层中分别设置有相应的定制FLASH芯片驱动,那么,操作人员根据任一特定型号的FLASH芯片的特性和/参数信息,可以更方便的针对在FLASH芯片驱动层中设置的,与上述任一特定型号的FLASH芯片相对应的定制FLASH芯片驱动进行必要的操作和修改。
那么,本发明实施例中,在确定出上述一个NAND FLASH芯片的型号和关键参数信息之后,需要判断FLASH芯片驱动层中是否存在针对上述一个NAND FLASH芯片的型号和关键参数信息设置的NAND FLASH芯片驱动。
步骤120:在判定存在与上述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,针对YAFFS文件系统中各操作接口,采用函数层中与上述各操作接口分别对应的各函数指针调用上述FLASH芯片驱动,并将上述FLASH芯片驱动注册至上述YAFFS文件系统中,其中,上述函数层设置于上述YAFFS文件系统和上述FLASH芯片驱动层之间。
本发明实施例中,针对YAFFS文件系统的逻辑层中的每一操作接口设置有相应的函数指针,所谓函数指针,是指向函数的指针变量,其中,可通过定义一个函数指针,使得上述一个函数指针指向不同的FLASH芯片驱动中的驱动接口。那么,针对上述一个NAND FLASH芯片,在判定FLASH芯片驱动层中存在与上述NAND FLASH芯片的型号和关键参数信息相匹配的FLASH芯片驱动时,通过定义逻辑层中每一操作接口分别对应的函数指针,以使得上述每一操作接口中的任一操作接口,能够通过相应的函数指针指向上述相匹配的FLASH芯片驱动中一个指定的FLASH芯片驱动接口。
例如,假设逻辑层中包括逻辑层操作接口1,逻辑层操作接口2和逻辑层操作接口3,并针对逻辑层操作接口1设置相应的函数指针1,针对逻辑层操作接口2设置相应的函数指针2,针对逻辑层操作接口3设置相应的函数指针3,假设FLASH芯片驱动1是与NAND FLASH芯片相匹配的FLASH芯片驱动,且FLASH芯片驱动1中包括驱动接口1,驱动接口2和驱动接口3,那么,就可以通过定义函数指针1,以使得函数指针1指向FLASH芯片驱动1中的驱动接口1,通过定义函数指针2,以使得函数指针2指向FLASH芯片驱动1中的驱动接口2,通过定义函数指针3,以使得函数指针3指向FLASH芯片驱动3中的驱动接口3。
通过定义逻辑层中各操作接口相应的函数指针,使得逻辑层能够调用不同FLASH芯片驱动,并将该FLASH芯片驱动注册至YAFFS文件系统中,这样,针对特殊的NAND FLASH芯片驱动,就可以通过函数指针调用预先针对该特殊的NAND FLASH芯片驱动设置的FLASH芯片驱动,进而完成该特殊的NAND FLASH芯片驱动的注册。
具体的,在执行步骤120时,针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用所述FLASH芯片驱动的情况包括但不仅限于以下三种情况的组合:
第一种情况为:针对YAFFS文件系统中的读操作接口,采用在函数层中设置的与所述读操作接口对应的第一函数指针调用所述FLASH芯片驱动中的读驱动接口,其中,所述第一函数指针用于指向所述FLASH芯片驱动中的读驱动接口。
第二种情况为:针对YAFFS文件系统中的写操作接口,采用在函数层中设置的与所述写操作接口对应的第二函数指针调用所述FLASH芯片驱动中的写驱动接口,其中,所述第二函数指针用于指向所述FLASH芯片驱动中的写驱动接口。
第三种情况为:针对YAFFS文件系统中的擦除操作接口,采用在函数层中设置的与所述擦除操作接口对应的第三函数指针调用所述FLASH芯片驱动中的擦除驱动接口,其中,所述第三函数指针用于指向所述FLASH芯片驱动中的擦除驱动接口。
本发明实施例中,预先设置有相应的YAFFS文件系统中各操作接口与函数层中各函数指针之间的对应关系,具体的,针对YAFFS文件系统中各操作接口,在函数层中分别相应的函数指针,通过定义各函数指针的方式,可使得各函数指针指向不同FLASH驱动中的FLASH芯片驱动接口,即使得YAFFS文件系统中各操作接口通过函数指针调用相应FLASH芯片驱动中各驱动接口。
例如,假设YAFFS文件系统中包括读操作接口,写操作接口和擦除操作接口,函数层中设置的函数指针1与读操作接口相对应,函数指针2与写操作接口相对应,函数指针3与擦除操作接口相对应,假设FLASH芯片驱动层中包括FLASH芯片驱动1和FLASH芯片驱动2,且FLASH芯片驱动1中包括读驱动接口1,写驱动接口1和擦除驱动接口1,FLASH芯片驱动2中包括读驱动接口2,写驱动接口2和擦除驱动接口2,那么,就可以通过定义函数层中函数指针的方式,使得函数指针1指向FLAH芯片驱动1中的读驱动接口1,函数指针2指向FLASH芯片驱动1中的写驱动接口1,函数指针3指向FLASH芯片驱动1中的擦除驱动接口1,或者,通过定义函数层中函数指针的方式,使得函数指针1指向FLAH芯片驱动2中的读驱动接口2,函数指针2指向FLASH芯片驱动2中的写驱动接口2,函数指针3指向FLASH芯片驱动2中的擦除驱动接口2。
进一步的,通过判断是否存在与上述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动后,在判定所述FLASH芯片驱动层中不存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用通用FLASH芯片驱动。
具体的,本发明实施例中,在判定FLASH芯片驱动层中不存在与上述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动后,将FLASH芯片驱动层中的通用FLASH芯片驱动作为待注册的FLASH芯片驱动,并通过定义YAFFS文件系统逻辑层中各操作接口分别对应的函数指针,将上述通用FLASH芯片驱动注册至YAFFS文件系统中。
当然,具体注册过程与本发明实施例中步骤120中描述的方式一致,在此不再赘述。
进一步的,若针对某一特定型号的FLASH芯片,若判定FLASH芯片驱动层中不存在与上述某一特定型号的FLASH芯片相匹配的FLASH芯片驱动,且采用通用FLASH芯片驱动驱动不起上述某一特定型号的FLASH芯片,则可以通过输出报警的方式,以告知操作人员根据上述某一特定型号的FLASH芯片所遵循的驱动标准,定制相应的,能够驱动起上述某一特定型号的FLASH芯片的FLASH芯片驱动,并添加入FLASH芯片驱动层中。这样,在下一次需要驱动上述某一特定型号的FLASH芯片时,即可通过调用针对上述某一特定型号的FLASH芯片定制的FLASH芯片驱动,将该FLASH芯片驱动注册至YAFFS文件系统中,完成FLASH芯片驱动的注册。
下面采用具体的应用场景对上述实施例作进一步详细说明,参阅图2所示,本发明实施例中,一种将NAND FLASH芯片驱动注册到YAFFS文件系统的方法的具体流程如下:
步骤200:初始化NAND FLASH控制器。
本发明实施例中,NAND FLASH芯片与NAND FLASH芯片控制器通过I/0接口相连接,在启动NAND FLASH芯片时,需要先初始化与之相连的NAND FLASH芯片控制器。
步骤210:初始化YAFFS文件系统。
步骤220:使用通用接口获取NAND FLASH芯片的厂商号和设备号,并根据上述厂商号和设备号确定上述FLASH芯片的型号。
本发明实施例中,NAND FLASH芯片具有其特定的用于唯一标识自身的厂商号和设备号,以及根据该厂商号和设备号可确定出该NAND FLASH芯片的型号和关键参数信息。
步骤230:判断FLASH芯片驱动层中是否存在针对上述型号的NAND FLASH芯片定制的FLASH芯片驱动。
本发明实施例中,在FLASH芯片驱动层中,预先设置有针对不同型号的NAND FLASH芯片定制的FLASH芯片驱动,如,针对特殊型号的NAND FLASH芯片1和/或特殊型号的NANDFLASH芯片2设置有FLASH芯片驱动A,即FLASH芯片驱动A与NAND FLASH芯片1相匹配,FLASH芯片驱动A与NAND FLASH芯片2相匹配。
具体的,若判定存在针对上述型号的NAND FLASH芯片定制的FLASH芯片驱动,则执行步骤240,否则,执行步骤250。
步骤240:采用函数指针方式将上述定制的FLASH芯片驱动注册到YAFFS文件系统中。
具体的,本发明实施例中,针对YAFFS文件系统逻辑层中各操作接口分别设置有相应的函数指针,通过定义各函数指针,可以使得上述各函数指针分别调用相应的,上述定制的FLASH芯片驱动中的各驱动接口,以完成将上述定制的FLASH芯片驱动注册到YAFFS文件系统中的操作。
步骤250:采用函数指针方式将通用FLASH芯片驱动注册到YAFFS文件系统中。
本发明实施例中,步骤250的实施方式与步骤240中的方式一致,在此不再赘述。
基于上述实施例,参阅图3所示,本发明实施例中,一种FLASH芯片驱动的注册装置,至少包括确定单元30,判断单元31和注册单元32,其中,
确定单元30,用于基于获取到的FLASH芯片的标识信息确定出所述FLASH芯片的唯一标识信息;
判断单元31,用于判断FLASH芯片驱动层中是否存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动;
注册单元32,用于在判定存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用所述FLASH芯片驱动,并将所述FLASH芯片驱动注册至所述YAFFS文件系统中,其中,所述函数层设置于所述YAFFS文件系统和所述FLASH芯片驱动层之间。
较佳的,在基于获取到的FLASH芯片的标识信息确定出所述FLASH芯片的唯一标识信息时,所述确定单元30具体用于:
通过调用获取厂商号和设备号指令的方式,获取所述FLASH芯片的厂商号和设备号;
根据所述FLASH芯片的厂商号和设备号,确定所述FLASH芯片的型号和关键参数信息。
较佳的,在判断FLASH芯片驱动层中是否存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,所述判断单元31具体用于:
基于所述FLASH芯片的型号和关键参数信息,判断FLASH芯片驱动层中是否存在针对所述FLASH芯片的型号和关键参数信息设置的,可用于驱动所述FLASH芯片进行读操作,写操作和擦除操作的FLASH芯片驱动。
较佳的,在针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用所述FLASH芯片驱动时,所述注册单元32具体用于:
针对YAFFS文件系统中的读操作接口,采用在函数层中设置的与所述读操作接口对应的第一函数指针调用所述FLASH芯片驱动中的读驱动接口,其中,所述第一函数指针用于指向所述FLASH芯片驱动中的读驱动接口;
针对YAFFS文件系统中的写操作接口,采用在函数层中设置的与所述写操作接口对应的第二函数指针调用所述FLASH芯片驱动中的写驱动接口,其中,所述第二函数指针用于指向所述FLASH芯片驱动中的写驱动接口;
针对YAFFS文件系统中的擦除操作接口,采用在函数层中设置的与所述擦除操作接口对应的第三函数指针调用所述FLASH芯片驱动中的擦除驱动接口,其中,所述第三函数指针用于指向所述FLASH芯片驱动中的擦除驱动接口。
较佳的,所述注册单元32进一步用于:
在判定所述FLASH芯片驱动层中不存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用通用FLASH芯片驱动,其中,所述函数层设置于所述YAFFS文件系统和所述FLASH芯片驱动层之间。
综上所述,本发明实施例中,在注册FALSH驱动到YAFFS文件系统的过程中,基于获取到的FLASH芯片的标识信息确定出所述FLASH芯片的唯一标识信息;判断FLASH芯片驱动层中是否存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动;在判定存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用所述FLASH芯片驱动,并将所述FLASH芯片驱动注册至所述YAFFS文件系统中,其中,所述函数层设置于所述YAFFS文件系统和所述FLASH芯片驱动层之间。
采用上述方法,针对YAFFS文件系统逻辑层中的各操作接口,在函数层中分别设置有相应的函数指针,并通过定义函数指针的方式,将基于FLASH芯片唯一标识信息从FLASH芯片驱动层中确定出的FLASH芯片驱动注册至YAFFS文件系统中。可以采用函数指针方式灵活调用具体的驱动接口,能够针对特殊型号的FLASH芯片,注册针对该特殊型号的FLASH芯片相匹配的FLASH芯片驱动,以避免出现注册通用FLASH芯片驱动而不能驱动起该特殊型号的FLASH芯片的问题,提高了FLASH芯片驱动成功率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (12)

1.一种FLASH芯片驱动的注册方法,其特征在于,包括:
基于获取到的FLASH芯片的标识信息确定出所述FLASH芯片的唯一标识信息;
判断FLASH芯片驱动层中是否存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动,所述FLASH芯片驱动是在所述FLASH芯片驱动层中针对不同型号的NAND FLASH芯片定制的;
在判定存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用所述FLASH芯片驱动,并将所述FLASH芯片驱动注册至所述YAFFS文件系统中,其中,所述函数层设置于所述YAFFS文件系统和所述FLASH芯片驱动层之间,所述YAFFS文件系统中的操作接口至少包括读操作接口、写操作接口和擦除操作接口。
2.如权利要求1所述的方法,其特征在于,基于获取到的FLASH芯片的标识信息确定出所述FLASH芯片的唯一标识信息,具体包括:
通过调用获取厂商号和设备号指令的方式,获取所述FLASH芯片的厂商号和设备号;
根据所述FLASH芯片的厂商号和设备号,确定所述FLASH芯片的型号和关键参数信息。
3.如权利要求2所述的方法,其特征在于,判断FLASH芯片驱动层中是否存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动,具体包括:
基于所述FLASH芯片的型号和关键参数信息,判断FLASH芯片驱动层中是否存在针对所述FLASH芯片的型号和关键参数信息设置的,可用于驱动所述FLASH芯片进行读操作,写操作和擦除操作的FLASH芯片驱动。
4.如权利要求1-3任一项所述的方法,其特征在于,针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用所述FLASH芯片驱动,具体包括:
针对YAFFS文件系统中的读操作接口,采用在函数层中设置的与所述读操作接口对应的第一函数指针调用所述FLASH芯片驱动中的读驱动接口,其中,所述第一函数指针用于指向所述FLASH芯片驱动中的读驱动接口;
针对YAFFS文件系统中的写操作接口,采用在函数层中设置的与所述写操作接口对应的第二函数指针调用所述FLASH芯片驱动中的写驱动接口,其中,所述第二函数指针用于指向所述FLASH芯片驱动中的写驱动接口;
针对YAFFS文件系统中的擦除操作接口,采用在函数层中设置的与所述擦除操作接口对应的第三函数指针调用所述FLASH芯片驱动中的擦除驱动接口,其中,所述第三函数指针用于指向所述FLASH芯片驱动中的擦除驱动接口。
5.如权利要求1所述的方法,其特征在于,进一步包括:
在判定所述FLASH芯片驱动层中不存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用通用FLASH芯片驱动,其中,所述函数层设置于所述YAFFS文件系统和所述FLASH芯片驱动层之间。
6.一种FLASH芯片驱动的注册装置,其特征在于,包括:
确定单元,用于基于获取到的FLASH芯片的标识信息确定出所述FLASH芯片的唯一标识信息;
判断单元,用于判断FLASH芯片驱动层中是否存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动,所述FLASH芯片驱动是在所述FLASH芯片驱动层中针对不同型号的NAND FLASH芯片定制的;
注册单元,用于在判定存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用所述FLASH芯片驱动,并将所述FLASH芯片驱动注册至所述YAFFS文件系统中,其中,所述函数层设置于所述YAFFS文件系统和所述FLASH芯片驱动层之间,所述YAFFS文件系统中的操作接口至少包括读操作接口、写操作接口和擦除操作接口。
7.如权利要求6所述的装置,其特征在于,在基于获取到的FLASH芯片的标识信息确定出所述FLASH芯片的唯一标识信息时,所述确定单元具体用于:
通过调用获取厂商号和设备号指令的方式,获取所述FLASH芯片的厂商号和设备号;
根据所述FLASH芯片的厂商号和设备号,确定所述FLASH芯片的型号和关键参数信息。
8.如权利要求7所述的装置,其特征在于,在判断FLASH芯片驱动层中是否存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,所述判断单元具体用于:
基于所述FLASH芯片的型号和关键参数信息,判断FLASH芯片驱动层中是否存在针对所述FLASH芯片的型号和关键参数信息设置的,可用于驱动所述FLASH芯片进行读操作,写操作和擦除操作的FLASH芯片驱动。
9.如权利要求6-8任一项所述的装置,其特征在于,在针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用所述FLASH芯片驱动时,所述注册单元具体用于:
针对YAFFS文件系统中的读操作接口,采用在函数层中设置的与所述读操作接口对应的第一函数指针调用所述FLASH芯片驱动中的读驱动接口,其中,所述第一函数指针用于指向所述FLASH芯片驱动中的读驱动接口;
针对YAFFS文件系统中的写操作接口,采用在函数层中设置的与所述写操作接口对应的第二函数指针调用所述FLASH芯片驱动中的写驱动接口,其中,所述第二函数指针用于指向所述FLASH芯片驱动中的写驱动接口;
针对YAFFS文件系统中的擦除操作接口,采用在函数层中设置的与所述擦除操作接口对应的第三函数指针调用所述FLASH芯片驱动中的擦除驱动接口,其中,所述第三函数指针用于指向所述FLASH芯片驱动中的擦除驱动接口。
10.如权利要求6所述的装置,其特征在于,所述注册单元进一步用于:
在判定所述FLASH芯片驱动层中不存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用通用FLASH芯片驱动,其中,所述函数层设置于所述YAFFS文件系统和所述FLASH芯片驱动层之间。
11.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行:基于获取到的FLASH芯片的标识信息确定出所述FLASH芯片的唯一标识信息;判断FLASH芯片驱动层中是否存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动,所述FLASH芯片驱动是在所述FLASH芯片驱动层中针对不同型号的NAND FLASH芯片定制的;在判定存在与所述FLASH芯片的唯一标识信息相匹配的FLASH芯片驱动时,针对YAFFS文件系统中各操作接口,采用函数层中与所述各操作接口分别对应的各函数指针调用所述FLASH芯片驱动,并将所述FLASH芯片驱动注册至所述YAFFS文件系统中,其中,所述函数层设置于所述YAFFS文件系统和所述FLASH芯片驱动层之间,所述YAFFS文件系统中的操作接口至少包括读操作接口、写操作接口和擦除操作接口。
12.一种计算机存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行权利要求1至5任一项所述的方法。
CN201710814228.8A 2017-09-11 2017-09-11 一种flash芯片驱动的注册方法及装置 Active CN107729067B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710814228.8A CN107729067B (zh) 2017-09-11 2017-09-11 一种flash芯片驱动的注册方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710814228.8A CN107729067B (zh) 2017-09-11 2017-09-11 一种flash芯片驱动的注册方法及装置

Publications (2)

Publication Number Publication Date
CN107729067A CN107729067A (zh) 2018-02-23
CN107729067B true CN107729067B (zh) 2021-04-20

Family

ID=61206009

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710814228.8A Active CN107729067B (zh) 2017-09-11 2017-09-11 一种flash芯片驱动的注册方法及装置

Country Status (1)

Country Link
CN (1) CN107729067B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109657504B (zh) * 2018-12-12 2020-09-22 深圳忆联信息系统有限公司 芯片与固件的绑定方法、装置、计算机设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239403B2 (en) * 2009-12-30 2012-08-07 International Business Machines Corporation Enhancing soft file system links
CN103902461A (zh) * 2012-12-27 2014-07-02 中兴通讯股份有限公司 不同Nand闪存兼容方法及装置
CN106502681A (zh) * 2016-10-31 2017-03-15 广东欧珀移动通信有限公司 一种传感器的注册方法、装置及移动终端

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101102562A (zh) * 2007-06-25 2008-01-09 嘉兴闻泰通讯科技有限公司 一种phs手机实现nor flash兼容的方法
CN101196849B (zh) * 2007-12-24 2012-07-18 康佳集团股份有限公司 一种flash的通用驱动方法
CN101770433B (zh) * 2008-12-30 2012-01-11 意法半导体研发(上海)有限公司 通用驱动方法和通用驱动设备
CN101510180A (zh) * 2009-03-27 2009-08-19 四川长虹电器股份有限公司 一种自动兼容多种型号flash的软件处理方法
CN104978008B (zh) * 2012-12-31 2018-09-18 青岛海信移动通信技术股份有限公司 输入设备在输入处理实例中注册的控制方法及装置
CN106445398B (zh) * 2015-08-04 2019-05-31 深圳市中兴微电子技术有限公司 一种基于新型存储器的嵌入式文件系统及其实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239403B2 (en) * 2009-12-30 2012-08-07 International Business Machines Corporation Enhancing soft file system links
CN103902461A (zh) * 2012-12-27 2014-07-02 中兴通讯股份有限公司 不同Nand闪存兼容方法及装置
CN106502681A (zh) * 2016-10-31 2017-03-15 广东欧珀移动通信有限公司 一种传感器的注册方法、装置及移动终端

Also Published As

Publication number Publication date
CN107729067A (zh) 2018-02-23

Similar Documents

Publication Publication Date Title
CN106484316B (zh) 用来管理一记忆装置的方法以及记忆装置与控制器
CN104965725B (zh) 一种基于sd卡的嵌入式设备全自动固件烧写方法
CN106937275B (zh) 一种在安卓系统下保存系统唯一标识及硬件id的设备
CN102819442B (zh) 一种嵌入式设备程序烧写的方法及系统
WO2015117493A1 (zh) 一种flash的控制方法和控制器
CN104951334A (zh) FPGA双片QSPI flash的程序加载方法
CN104699622A (zh) 数据储存装置以及其数据抹除方法
CN105718281A (zh) 一种触摸屏固件升级方法及装置
US20120166706A1 (en) Data management method, memory controller and embedded memory storage apparatus using the same
TW202028981A (zh) 資料儲存裝置及避免韌體失效之方法
CN104866456A (zh) 电子装置和通信方法
CN105159716A (zh) 一种存储器件初始化方法和电子设备
CN107729067B (zh) 一种flash芯片驱动的注册方法及装置
TW202314512A (zh) 快閃記憶體控制器、安全數位卡、使用於快閃記憶體控制器的方法以及存取安全數位卡的主機
TWI396090B (zh) 快閃記憶裝置、資料儲存系統、以及傳送特殊命令至快閃記憶裝置之方法
CN103345413A (zh) 一种代码更新方法、装置及电子设备
CN102543215B (zh) 一种基于ARM控制器的Nand FLASH智能检测方法
US20190217193A1 (en) Methods for emulating a virtual controller device, emulators, and computer-readable media
CN104461959B (zh) 区分NOR Flash与NAND Flash的方法和装置
CN104615387A (zh) 基于xpe系统的车载设备及其设计方法
TWI614684B (zh) 即時韌體更新方法及其電腦可讀取媒介
CN104765626B (zh) 一种固件程序烧写方法及装置
CN111367710A (zh) 一种eMMC问题还原方法和装置
CN102800319B (zh) 音频编解码组件、音频编解码器识别方法及系统
TWI609378B (zh) 資料儲存裝置與操作方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20180223

Assignee: Kedong (Guangzhou) Software Technology Co., Ltd

Assignor: Beijing Dongtu Technology Co., Ltd.|Beijing keyin Jingcheng Technology Co., Ltd

Contract record no.: X2020980000255

Denomination of invention: Registering method and device driven by FLASH chip

License type: Exclusive License

Record date: 20200218

EE01 Entry into force of recordation of patent licensing contract
GR01 Patent grant
GR01 Patent grant