一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于嵌入式的FATFS文件系统的制作方法

2021-12-08 00:28:00 来源:中国专利 TAG:
一种基于嵌入式的fatfs文件系统
技术领域
:1.本发明涉及数据存储领域,尤其涉及一种基于嵌入式的fatfs文件系统。
背景技术
::2.现有的嵌入式系统中,对于文件系统方面的处理,为了节省空间,很多使用fatfs文件系统结构。此文件系统结构在原有的fat32文件系统结构的基础上,针对嵌入式的使用场景和需求,进行精简后的一种文件系统结构。3.现有技术中,fatfs文件系统一般使用在外部flash上,进行管理外部flash区域。对于外部flash而言,访问速度一般通过spi或者i2c接口协议驱动,访问速度与内部cpu与内部flash的访问速度相比比较慢。而有一些使用场景中,需要对于交易处理过程的时间,有具体的时间要求,全部在外部进行flash的访问处理,速度无法满足要求。技术实现要素:4.本发明提供了一种基于嵌入式的fatfs文件系统,包括设置在内部flash的配置区和设置在外部flash的数据区,配置区包括引导区、fat区和目录区,内部flash和外部flash统一使用逻辑地址进行管理。5.如上所述的基于嵌入式的fatfs文件系统,其中,fat区只包括fat1区,内部flash和外部flash进行统一掉电管理,使用内部flash的备份区进行数据备份。6.如上所述的基于嵌入式的fatfs文件系统,其中,响应于正常写操作命令,从写操作命令中获取写地址;7.判断写地址所对应的写操作区域:8.如果是对内部flash的配置区的写操作,则查找地址映射表,通过地址对应映射方式,将写地址所对应的配置区地址映射到内部flash对应大小的地址处,将配置区数据写入到内部flash备份区进行备份,然后将写操作中的待写入数据写入到内部flash的真实地址,写入成功则丢弃内部flash备份区的对应内容;9.如果是对外部flash的数据区的写操作,则将外部flash地址数据写入内部flash备份区,将数据写入到外部flash的真实地址,写入成功则丢弃内部flash备份区的对应内容。10.如上所述的基于嵌入式的fatfs文件系统,其中,统一掉电管理,具体为:上电检测内部flash备份区中是否有配置区或数据区的数据,如果有,则将内部flash备份区中配置区的数据恢复到内部flash的配置区对应位置,或将内部flash备份区中数据区的数据恢复到外部flash的数据区对应位置。11.如上所述的基于嵌入式的fatfs文件系统,其中,响应于正常读操作命令,从读操作命令中获取读地址;12.判断读地址所对应的读操作区域:13.如果是对内部flash的配置区的读操作,则查找地址映射表,通过地址对应映射方式,将读地址所对应的配置区地址映射到内部flash对应大小的地址处,读出对应的数据;14.如果是对外部flash的数据区的读操作,则直接调用外部flash的读操作,从外部flash的数据区读出对应的数据。15.如上所述的基于嵌入式的fatfs文件系统,其中,fat区包括fat1区和fat2区,fat1区和fat2区互为备份。16.如上所述的基于嵌入式的fatfs文件系统,其中,响应于正常写操作命令,从写操作命令中获取写地址;17.判断写地址所对应的写操作区域:18.如果是对内部flash的配置区的写操作,则查找地址映射表,通过地址对应映射方式,将写地址所对应的配置区地址映射到内部flash对应大小的地址处,将配置区数据写入到fat2区进行备份,然后将写操作中的待写入数据写入到内部flash的真实地址,写入成功则丢弃fat2区的对应内容;19.如果是对外部flash的数据区的写操作,则将写命令中的数据写入外部flash数据区中,然后更新fat1区数据,再对应更新fat2区数据。20.如上所述的基于嵌入式的fatfs文件系统,其中,内部flash的掉电保护具体为:上电,检测fat1区和fat2区中的数据是否一致,如果一致则数据写成功,如果不一致,检测fat1区和fat2区数据的合法性,若fat1区数据合法,则根据fat1区数据更新fat2区,若fat2区数据合法,则根据fat2区数据更新fat1区。21.如上所述的基于嵌入式的fatfs文件系统,其中,响应于正常读操作命令,从读操作命令中获取读地址;22.判断读地址所对应的读操作区域:23.如果是对内部flash的配置区的读操作,则查找地址映射表,通过地址对应映射方式,将读地址所对应的配置区地址映射到内部flash对应大小的地址处,读出对应的数据;24.如果是对外部flash的数据区的读操作,则直接调用外部flash的读操作,从外部flash的数据区读出对应的数据。25.本技术还提供一种计算机可读存储介质,包括外部flash和内部flash,用于存储上述任一项所述的基于嵌入式的fatfs文件系统,具体包括在外部flash中存储fatfs文件系统中的数据区,在内部flash中存储fatfs文件系统中的配置区。26.本发明实现的有益效果如下:采用本技术技术方案,对于基于fatfs文件系统结构的区域的读写访问更加节省时间,从而加快整个业务层面的处理时间。附图说明27.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。28.图1是现有fatfs文件系统的结构图;29.图2是本技术提供的一种基于嵌入式的fatfs文件系统示意图;30.图3是一种基于嵌入式的fatfs文件系统的写方法流程图;31.图4是一种基于嵌入式的fatfs文件系统的读方法流程图;32.图5是另一种基于嵌入式的fatfs文件系统的写方法流程图。具体实施方式33.下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。34.在介绍本技术的基于嵌入式的fatfs文件系统之前,先对现有fatfs文件系统的结构进行描述。如图1所示,现有fatfs文件系统包括配置区和数据区,配置区和数据区均设置在外部flash中,管理外部flash区域,配置区包括引导区、fat1区(文档分配表,fileallocationtable)、fat2区和目录区。35.在外部对现有fatfs文件系统进行文件内容写入时,将一个簇(微软操作系统中磁盘文件存储管理的最小单位叫做“簇”)作为基本单位,首先从fat1区中找到文件中对应地址的相应的簇数,根据fat1区的链接方式,计算出需要写入的数据区的簇位置,然后写入数据,数据写入成功后,需要把相关的簇位置,映射到fat1区域内,并进行写入对应的标记,同时在fat2中同步fat1区的内容,作为备份fat区使用。对于文件目录的添加和删除操作处理,除了在fat区中对于对应簇进行管理,同时还需要在目录区进行对于改动的目录所在簇位置,进行添加和删除。36.从对现有fatfs文件系统的数据写入操作可以看出,引导区、fat1区、fat2区和目录区在数据写入时会被频繁访问,而由于外部flash的访问速度一般通过spi或者i2c接口协议驱动,因此对于某些对访问处理时间要求较高的操作,现有fatfs文件系统在速度上不能满足需求。基于对现有fatfs文件系统所存在问题的发现,本技术实施例一构建了一种基于嵌入式的fatfs文件系统,用以解决现有fatfs文件系统访问速度慢的问题。37.实施例一38.如图2所示,本技术实施例一提供一种基于嵌入式的fatfs文件系统,包括设置在内部flash的配置区和设置在外部flash的数据区,配置区包括引导区、fat区和目录区,内部flash和外部flash统一使用逻辑地址进行管理。39.其中,fat区可以只包括fat1区,内部flash和外部flash进行统一掉电管理,使用内部flash的备份区进行数据备份,省去fat2区,进一步减少对内部flash区域的空间占用,并且也减少一次内部flash的写操作,从而使得外部文件的读写操作的性能更加快捷。40.相应的,如图3所示,所述基于嵌入式的fatfs文件系统的写方法,包括:41.步骤310、响应于正常写操作命令,从写操作命令中获取写地址;42.步骤320、判断写地址所对应的写操作区域:43.如果是对内部flash的配置区的写操作,则查找地址映射表,通过地址对应映射方式,将写地址所对应的配置区地址映射到内部flash对应大小的地址处,将配置区数据写入到内部flash备份区进行备份,然后将写操作中的待写入数据写入到内部flash的真实地址,写入成功则丢弃内部flash备份区的对应内容;44.需要说明的是,一般设定配置区中引导区为固定设置,不需要进行写处理,fat区用来管理包括目录区和外部flash数据区的索引参数区,因此,在写操作时备份到内部flash备份区的配置区数据一般指的是fat区数据。45.由于内部flash和外部flash统一使用逻辑地址进行管理,内部flash的配置区和外部flash的数据区均用唯一的逻辑地址表示,即配置区地址与数据区地址不重复,通过设置地址映射表,可以将内部flash的配置区和外部flash的数据区进行统一地址映射,写操作命令中的写地址在地址映射表中对应内部flash的配置区或外部flash的数据区的唯一地址,由此可以确定写地址所对应的写区域是外部flash的数据区还是内部flash的配置区。46.如果是对外部flash的数据区的写操作,则将外部flash地址数据写入内部flash备份区,将数据写入到外部flash的真实地址,写入成功则丢弃内部flash备份区的对应内容。47.本技术实施例中,统一掉电管理,具体为:上电检测内部flash备份区中是否有配置区或数据区的数据,如果有,则将内部flash备份区中配置区的数据恢复到内部flash的配置区对应位置,或将内部flash备份区中数据区的数据恢复到外部flash的数据区对应位置。48.如图4所示,所述基于嵌入式的fatfs文件系统的读方法,包括:49.步骤410、响应于正常读操作命令,从读操作命令中获取读地址;50.步骤420、判断读地址所对应的读操作区域,如果是对内部flash的配置区的读操作,则查找地址映射表,通过地址对应映射方式,将读地址所对应的配置区地址映射到内部flash对应大小的地址处,读出对应的数据;如果是对外部flash的数据区的读操作,则调用外部flash的读操作,从外部flash的数据区读出对应的数据。51.另外,fat区也可以包括fat1区和fat2区,fat1区和fat2区互为备份,这种情况下内部flash和外部flash统一使用逻辑地址进行管理,但可以不进行统一掉电管理;52.相应的,如图5所示,所述基于嵌入式的fatfs文件系统的写方法,包括:53.步骤510、响应于正常写操作命令,从写操作命令中获取写地址;54.步骤520、判断写地址所对应的写操作区域:55.如果是对内部flash的配置区的写操作,则查找地址映射表,通过地址对应映射方式,将写地址所对应的配置区地址映射到内部flash对应大小的地址处,将配置区数据写入到fat2区进行备份,然后将写操作中的待写入数据写入到内部flash的真实地址,写入成功则丢弃fat2区的对应内容;56.如果是对外部flash的数据区的写操作,则写命令中的数据写入外部flash数据区中,然后更新fat1区数据,再对应更新fat2区数据。57.对于设置fat1区和fat2区所对应的掉电保护机制具体为:上电,检测fat1区和fat2区中的数据是否一致,如果一致则数据写成功,如果不一致,检测fat1区和fat2区数据的合法性(具体通过校验和检验地址是否正确),若fat1区数据合法,则根据fat1区数据更新fat2区,若fat2区数据合法,则根据fat2区数据更新fat1区。58.对于设置fat1区和fat2区所对应的基于嵌入式的fatfs文件系统的读方法,与只设置fat1区所对应的基于嵌入式的fatfs文件系统的读方法相同,在此不作赘述。59.与上述实施例对应的,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质中包含外部flash和内部flash,用于在外部flash中存储fatfs文件系统中的数据区,在内部flash中存储fatfs文件系统中的配置区。60.本发明所公开的实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行上述的方法。61.在本发明实施例中,处理器可以是一种集成电路芯片,具有信号的处理能力。处理器可以是通用处理器、数字信号处理器(digitalsignalprocessor,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。62.可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。63.存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。64.其中,非易失性存储器可以是只读存储器(read‑onlymemory,简称rom)、可编程只读存储器(programmablerom,简称prom)、可擦除可编程只读存储器(erasableprom,简称eprom)、电可擦除可编程只读存储器(electricallyeprom,简称eeprom)或闪存。65.易失性存储器可以是随机存取存储器(randomaccessmemory,简称ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,简称sram)、动态随机存取存储器(dynamicram,简称dram)、同步动态随机存取存储器(synchronousdram,简称sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,简称ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,简称esdram)、同步连接动态随机存取存储器(synchlinkdram,简称sldram)和直接内存总线随机存取存储器(directrambusram,简称drram)。66.本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。67.本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。68.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献