nand flash设备管理的方法和系统技术方案

技术编号:14477111 阅读:74 留言:0更新日期:2017-01-25 09:41
本发明专利技术公开了一种nand flash设备管理的方法,包括以下步骤:将内核层中的nftl模块设置于应用层中;对处于应用层中的nftl模块建立一个应用层信息服务接口;调用应用层信息服务接口实现nand flash设备管理。上述nand flash设备管理的方法将内核nand flash驱动的关键核心nftl模块转移到应用层中,这样能够提高程序的开发、调试和维护的效率;同时还可以选择更多的语言来开发上述程序,以满足不同的需求,具有灵活性与适用性。本发明专利技术还公开了一种nandflash设备管理的系统。

【技术实现步骤摘要】

本专利技术涉及计算机应用
,特别是涉及一种nandflash设备管理的方法和系统。
技术介绍
在Linux中,传统的nftl设计架构通过将nftl设置在kernel中,实现MTD设备的存取数据操作。但现有技术中,将nftl设置在kernel中,受kernel的限制,开发新功能和升级驱动都较为困难,且开发稳定的驱动实现的周期长;调试和维护的效率较低;只能使用单一的C语言编写代码,编译灵活度受到限制。
技术实现思路
基于此,有必要提供一种灵活、高效、通用且可扩展的nftl设计方式的nandflash设备管理的方法和系统。一种nandflash设备管理的方法,包括以下步骤:将内核层中的nftl模块设置于应用层中;对处于所述应用层中的所述nftl模块建立一个应用层信息服务接口;调用所述应用层信息服务接口实现nandflash设备管理。在其中一个实施例中,对处于所述应用层中的所述nftl模块建立一个应用层信息服务接口的步骤具体包括:在所述应用层信息服务接口内建立一个上行通道与一个下行通道;其中,所述上行通道为所述nftl模块与nand块设备层进行通信的通道;所述下行通道为所述nftl模块与nand物理层进行通信的通道。在其中一个实施例中,所述下行通道被配置具有两种操作方式;其中,第一种操作方式为通过ioctl函数实现控制流的操作,且所述控制流用于对所述下行通道与所述上行通道建立连接;第二种操作方式为通过mmap函数实现数据流的操作,且所述数据流用于向所述nand物理层进行读数据和写数据操作。在其中一个实施例中,所述上行通道包括第一上行通道和第二上行通道,所述第一上行通道为设置于应用层中的上行通道,所述第二上行通道为设置于kernel层中的上行通道;所述下行通道包括第一下行通道和第二下行通道,所述第一下行通道为设置于应用层中的下行通道,所述第二下行通道为设置于kernel层中的下行通道;所述调用所述应用层信息服务接口实现nandflash设备管理过程中,当nand块设备层中包含多个对象时,包括以下步骤:在所述第一上行通道中建立多个守护线程;将所述多个守护线程与所述nftl模块支持的多个分区进行绑定连接;其中,所述守护线程与所述分区为一一对应关系,所述守护线程与所述nand块设备层中的多个对象也为一一对应关系;所述nand块设备中的对象发送io请求到所述第二上行通道。在其中一个实施例中,在所述第二上行通道处设置有nand上行通道代理,用于接收所述nand块设备层发送的io请求,并调用所述第二上行通道提供的预设程序接口;以及在所述第二下行通道处设置有nand下行通道代理,用于接收来自nftl的操作,并翻译执行nand控制层的连接操作与nand物理层的物理操作。在其中一个实施例中,调用所述应用层信息服务接口实现nandflash设备管理的步骤包括:所述nand上行通道代理接收到所述nand块设备层发送的io请求后,调用所述第二上行通道提供的所述预设程序接口在所述第二上行通道中生成通道io请求,并启动所述第一上行通道的读程序对应的守护线程;所述第一上行通道中的读程序读取所述第二上行通道的通道io请求;所述第一上行通道的读程序将生成的所述通道io请求中的数据发送至所述应用层中;根据所述通道io请求调用回调函数,并在所述nftl模块中执行所述回调函数;当所述回调函数执行完成后,所述第一上行通道通过写程序将所述回调函数执行结果发送至所述第二上行通道,并启动执行请求程序对应的线程;所述执行请求程序将所述回调函数执行结果发送至所述nand上行通道代理,并由所述nand上行通道代理反馈至所述nand块设备层。基于同一专利技术构思的一种nandflash设备管理的系统,包括:设置模块,用于将内核层中的nftl模块设置于应用层中;接口建立模块,用于对处于所述应用层中的所述nftl模块建立一个应用层信息服务接口;调用模块,用于调用所述应用层信息服务接口实现nandflash设备管理。在其中一个实施例中,所述接口建立模块具体包括:通道建立单元,用于在所述应用层信息服务接口内建立一个上行通道与一个下行通道;其中,所述上行通道为所述nftl模块与nand块设备层进行通信的通道;所述下行通道为所述nftl模块与nand物理层进行通信的通道。在其中一个实施例中,在所述第二上行通道处设置有nand上行通道代理,用于接收所述nand块设备层发送的io请求,并调用所述第二上行通道提供的预设程序接口;以及在所述第二下行通道处设置有nand下行通道代理,用于接收来自nftl的操作,并翻译执行nand控制层的连接操作与nand物理层的物理操作。在其中一个实施例中,所述调用模块具体包括:请求接收单元,用于nand上行通道代理接收到nand块设备层发送的io请求后,调用所述第二上行通道提供的预设程序接口在所述第二上行通道中生成通道io请求;请求读取单元,用于第一上行通道通过读程序读取第二上行通道的通道io请求;第一启动单元,用于启动所述第一上行通道的读程序对应的守护线程;第一发送单元,用于所述第一上行通道的读程序将生成的所述通道io请求中的数据发送至所述应用层中;执行单元,用于根据所述通道io请求调用回调函数,并在所述nftl模块中执行所述回调函数;第二发送单元,用于当所述回调函数执行完成后,所述第一上行通道通过写程序将所述回调函数执行结果发送至所述第二上行通道;第二启动单元,用于启动执行请求程序对应的线程;第三发送单元,用于所述执行请求程序将所述回调函数执行结果发送至所述nand上行通道代理;反馈单元,用于由所述nand上行通道代理反馈所述回调函数执行结果至所述nand块设备层。上述nandflash设备管理的方法和系统,通过将内核层中的nftl模块设置于应用层中;对处于应用层中的nftl模块建立一个应用层信息服务接口;调用应用层信息服务接口实现nandflash设备管理。上述nandflash设备管理的方法和系统,解决linuxnanddriver的开发、调试与维护效率低的问题;同时,可以选择更多的语言来开发nanddriver,使开发工作更多样,更灵活且具有易用性。附图说明图1为现有技术中nftl的设计架构示意图;图2为一个实施例中nandflash设备管理的方法的流程示意图;图3为一个实施例中nandflash设备管理的方法中建立上行通道与下行通道数据传输的流程示意图;图4为一个实施例中nandflash设备管理的方法中数据传输的模块化示例图;图5为另一个实施例中nandflash设备管理的方法中数据传输的模块化示例图;图6为一个实施例中nandflash设备管理的方法抽象成生产者与消费者的模型示意图;图7为一个实施例中nandflash设备管理的方法抽象成生产者与消费者后应用层中消费者的执行流程示意图;图8为一个实施例中nandflash设备管理的方法的示例流程示意图;图9为一个实施例中nandflash设备管理的方法的示例中下行通道操作步骤的示意图;图10为多分区下nandflash设备管理的方法的流程示意图;图11为一个实施例中nandflash设备管理系统的结构示意图;图12为一个实施例中nandflash设备管理系统中接口建立模块的结构本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201610645433.html" title="nand flash设备管理的方法和系统原文来自X技术">nand flash设备管理的方法和系统</a>

【技术保护点】
一种nand flash设备管理的方法,其特征在于,包括以下步骤:将内核层中的nftl模块设置于应用层中;对处于所述应用层中的所述nftl模块建立一个应用层信息服务接口;调用所述应用层信息服务接口实现nand flash设备管理。

【技术特征摘要】
1.一种nandflash设备管理的方法,其特征在于,包括以下步骤:将内核层中的nftl模块设置于应用层中;对处于所述应用层中的所述nftl模块建立一个应用层信息服务接口;调用所述应用层信息服务接口实现nandflash设备管理。2.根据权利要求1所述的方法,其特征在于,对处于所述应用层中的所述nftl模块建立一个应用层信息服务接口的步骤具体包括:在所述应用层信息服务接口内建立一个上行通道与一个下行通道;其中,所述上行通道为所述nftl模块与nand块设备层进行通信的通道;所述下行通道为所述nftl模块与nand物理层进行通信的通道。3.根据权利要求2所述的方法,其特征在于,所述下行通道被配置具有两种操作方式;其中,第一种操作方式为通过ioctl函数实现控制流的操作,且所述控制流用于对所述下行通道与所述上行通道建立连接;第二种操作方式为通过mmap函数实现数据流的操作,且所述数据流用于向所述nand物理层进行读数据和写数据操作。4.根据权利要求2所述的方法,其特征在于,所述上行通道包括第一上行通道和第二上行通道,所述第一上行通道为设置于应用层中的上行通道,所述第二上行通道为设置于kernel层中的上行通道;所述下行通道包括第一下行通道和第二下行通道,所述第一下行通道为设置于应用层中的下行通道,所述第二下行通道为设置于kernel层中的下行通道;所述调用所述应用层信息服务接口实现nandflash设备管理过程中,当nand块设备层中包含多个对象时,包括以下步骤:在所述第一上行通道中建立多个守护线程;将所述多个守护线程与所述nftl模块支持的多个分区进行绑定连接;其中,所述守护线程与所述分区为一一对应关系,所述守护线程与所述nand块设备层中的多个对象也为一一对应关系;所述nand块设备中的对象发送io请求到所述第二上行通道。5.根据权利要求4所述的方法,其特征在于,在所述第二上行通道处设置有nand上行通道代理,用于接收所述nand块设备层发送的io请求,并调用所述第二上行通道提供的预设程序接口;以及在所述第二下行通道处设置有nand下行通道代理,用于接收来自nftl的操作,并翻译执行nand控制层的连接操作与nand物理层的物理操作。6.根据权利要求5所述的方法,其特征在于,调用所述应用层信息服务接口实现nandflash设备管理的步骤包括:所述nand上行通道代理接收到所述nand块设备层发送的io请求后,调用所述第二上行通道提供的所述预设程序接口在所述第二上行通道中生成通道io请求,并启动所述第一上行通道的读程序对应的守护线程;所述第一上行通道...

【专利技术属性】
技术研发人员:李良
申请(专利权)人:珠海全志科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1