买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于LINUX操作系统的NANDFLASH无文件系统的坏块管理方法_电信科学技术第五研究所有限公司_202110819797.8 

申请/专利权人:电信科学技术第五研究所有限公司

申请日:2021-07-20

公开(公告)日:2023-11-24

公开(公告)号:CN113742283B

主分类号:G06F16/11

分类号:G06F16/11;G06F3/06

优先权:

专利状态码:有效-授权

法律状态:2023.11.24#授权;2021.12.21#实质审查的生效;2021.12.03#公开

摘要:本发明提供一种基于LINUX操作系统的NANDFLASH无文件系统的坏块管理方法,所述坏块管理方法包括:在LINUX操作系统下,通过修改NANDFLASH的驱动程序,使在对块读、写和擦除时自动跳过坏块。本发明利用LINUX操作系统内核源码可修改的特性,对NANDFLASH的驱动程序进行特定的修改,使其具有自动跳过坏块的功能。从而使应用程序在无文件系统的情况下无感的,连续读、写、擦除NANDFLASH的空间,无需担心坏块的问题。

主权项:1.一种基于LINUX操作系统的NANDFLASH无文件系统的坏块管理方法,其特征在于,所述坏块管理方法包括:在LINUX操作系统下,通过修改NANDFLASH的驱动程序,使在对块读、写和擦除时自动跳过坏块;所述坏块管理方法包括如下步骤:S1,获取NANDFLASH的坏块;S2,根据获取的坏块设计自动跳过坏块的算法;S3,基于设计的自动跳过坏块的算法修改NANDFLASH的驱动程序;S4,在修改NANDFLASH的驱动程序后重新编译LINUX操作系统的内核;步骤S2中所述根据获取的坏块设计自动跳过坏块的算法的方法包括如下子步骤:S21,判断输入的块ID是否小于整形数组中的最小的坏块ID:如果是,则表明输入的块ID前面没有坏块,不需要跳过坏块,即操作的块就为当前块并返回当前块ID;如果不是,则执行步骤S22;S22,判断输入的块ID+坏块的总个数是否大于整形数组中最大的坏块ID:如果是则返回block_id+nandflash_bbt_cnt为新的块ID;其中,block_id表示输入的块ID,nandflash_bbt_cnt表示坏块的总个数;如果不是,则执行步骤S23;S23,判断输入的ID是否在整形数组中:如果是,则获取比输入的块ID小的坏块个数为bcnt,以及从输入的ID开始连续坏块的个数为ccnt1,则新的块ID为new_id=block_id+bcnt+ccnt1;如果不是,则新的块ID为new_id=block_id+bcnt,然后执行步骤S24;S24,判断步骤S23得到的新的块ID是否在整形数组中:如果是,则获取在整形数组中,跟新的块ID为连续坏块的个数ccnt2,则new_id=new_id+ccnt2+1;重复步骤S24,直到新的块ID不在整形数组中,则执行步骤S25;S25,获取比新的块ID小的坏块个数为m,获取比输入的块ID小的坏块个数为n;如果m>n,则new_id=block_id+m,执行步骤S26;S26,重复步骤S24~S25生成最终新的块ID;S27,返回步骤S26生成的最终的新的块ID;步骤S3中所述基于设计的自动跳过坏块的算法修改NANDFLASH的驱动程序的方法包括如下子步骤:对于读、写操作,修改内核文件nand_spi.c文件中的spinand_read_page和spinand_program_page两个函数,将传入的页ID转换成对应的块ID;然后再调用步骤S2设计的自动跳过坏块的算法获取新的块ID,然后将获取的新的块ID换算成新的页ID;最后使用新的页ID去操作NANDFLASH;对于擦除操作,则spinand_erase_block函数直接调用步骤S2设计的自动跳过坏块的算法获取新的ID,然后对新的ID进行块擦除。

全文数据:

权利要求:

百度查询: 电信科学技术第五研究所有限公司 一种基于LINUX操作系统的NANDFLASH无文件系统的坏块管理方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。