一种单片机文件读写方法技术

技术编号:30650349 阅读:17 留言:0更新日期:2021-11-04 01:08
本发明专利技术提供一种单片机文件读写方法,包括以下步骤:预定义文件系统中单个文件的配置参数,包括单个文件的文件容量V

【技术实现步骤摘要】
一种单片机文件读写方法


[0001]本专利技术属于文件读写
,具体涉及一种单片机文件读写方法。

技术介绍

[0002]目前,已使用和正在开发的POS机中,通常使用单片机,并且,单片机装载使用arm开源的littlefs文件系统,此文件系统的优势是支持断电保护,但是,此文件系统具有以下不足:文件读写速度较慢,尤其针对需要读写的大文件,卡顿比较严重,降低用户的使用体验。

技术实现思路

[0003]针对现有技术存在的缺陷,本专利技术提供一种单片机文件读写方法,可有效解决上述问题。
[0004]本专利技术采用的技术方案如下:
[0005]本专利技术提供一种单片机文件读写方法,包括以下步骤:
[0006]步骤1,预定义文件系统中单个文件的配置参数,包括单个文件的文件容量V
max

[0007]步骤2,文件写入过程:
[0008]步骤2.1,接收需要进行写入操作的第一目标文件file1以及第一目标文件file1的文件名name1;
[0009]步骤2.2,获取第一目标文件file1的文件容量V1;
[0010]步骤2.3,判断文件容量V1是否小于等于文件容量V
max
,如果是,则执行步骤2.4;如果否,则执行步骤2.5;
[0011]步骤2.4,当文件容量V1小于等于文件容量V
max
时,则在文件系统中创建第一目标文件file1的源文件s_file1,源文件s_file1的文件容量为Vr/>max
,命名为第一目标文件file1的文件名name1;
[0012]然后,将第一目标文件file1直接写入到源文件s_file1,并保存;
[0013]步骤2.5,当文件容量V1大于文件容量V
max
时,采用以下方式,进行分文件写入:
[0014]步骤2.5.1,假设V1/V
max
的整数部分为n,则在文件系统中创建第一目标文件file1的源文件s_file1,源文件s_file1的文件容量为V
max
,命名为第一目标文件file1的文件名name1;
[0015]再在文件系统中创建源文件s_file1的第1衍生文件s_file1_1,第1衍生文件s_file1_1的文件容量为V
max
,命名同时包括第一目标文件file1的文件名name1以及衍生文件序号01;
[0016]再在文件系统中创建源文件s_file1的第2衍生文件s_file1_2,第2衍生文件s_file1_2的文件容量为V
max
,命名同时包括第一目标文件file1的文件名name1以及衍生文件序号02;
[0017]依此类推
[0018]直到在文件系统中创建源文件s_file1的第n衍生文件s_file1_n,第n衍生文件s_file1_n的文件容量为V
max
,命名同时包括第一目标文件file1的文件名name1以及衍生文件序号0n;
[0019]步骤2.5.2,以文件容量V
max
为划分单位,将第一目标文件file1划分为n+1段;其中,第1段文件内容,第2段文件内容,...,第n段文件内容,其文件容量均为V
max
;第n+1段文件内容,其文件容量为:V1‑
nV
max

[0020]将第1段文件内容,写入到源文件s_file1;
[0021]将第2段文件内容,写入到第1衍生文件s_file1_1;
[0022]依此类推,直到将第n+1段文件内容,写入到第n衍生文件s_file1_n;
[0023]步骤2.5.3,保存源文件s_file1,第1衍生文件s_file1_1,...,第n衍生文件s_file1_n;
[0024]在文件系统中创建第一目标文件file1的源文件s_file1,源文件s_file1的文件容量为V
max
,命名为第一目标文件file1的文件名name1;
[0025]步骤3,文件读取过程:
[0026]步骤3.1,当需要读取第二目标文件file2时,获得第二目标文件file2的文件名name2以及第二目标文件file2的文件容量V2;
[0027]步骤3.2,判断文件容量V2是否小于等于文件容量V
max
,如果是,则执行步骤3.3;如果否,则执行步骤3.4;
[0028]步骤3.3,当文件容量V2小于等于文件容量V
max
时,表明第二目标文件file2只对应一个源文件,则在文件系统中,查找到对应的源文件s_file2,并直接读取;
[0029]步骤3.4,当文件容量V2大于文件容量V
max
时,采用以下方式,进行跨文件读取:
[0030]步骤3.4.1,假设V2/V
max
的整数部分为m,则在文件系统中查找到对应的源文件s_file2以及m个衍生文件,并且,通过衍生文件的文件名中的衍生文件序号,对m个衍生文件排序;
[0031]步骤3.4.2,如果需要读取完整的文件名包含name2的文件,则直接返回对应的源文件s_file2以及m个衍生文件;
[0032]如果只需要读取包含name2的部分文件内容,获取需读取文件内容的起始位置s0和文件长度L0;
[0033]在源文件s_file2以及m个衍生文件中,定位到读取文件的起始位置s0,假设为第i衍生文件s_file1_i内的某个位置,其中,i=1,2,...,m,如果第i衍生文件s_file1_i从起始位置s0到结束位置s1的文件长度L1大于等于文件长度L0,则直接在第i衍生文件s_file1_i读取对应内容并返回;反之,如果第i衍生文件s_file1_i从起始位置s0到结束位置s1的文件长度L1小于文件长度L0,则在第i衍生文件s_file1_i从起始位置s0开始读取到其结束位置后,自动跨文件读取,即:自动读取第i+1衍生文件s_file1_i所需内容,如此循环,直到读取到完整的文件内容。
[0034]优选的,还包括:
[0035]步骤4,当需要获取某个目标文件的文件长度时,对该目标文件对应的源文件及所有衍生文件的文件长度求和,并返回。
[0036]优选的,还包括:
[0037]步骤5,当需要重命名某个目标文件时,将对应的源文件及所有衍生文件同步重命名。
[0038]优选的,还包括:
[0039]步骤6,当需要删除某个目标文件时,将对应的源文件及所有衍生文件同步删除。
[0040]本专利技术提供的一种单片机文件读写方法具有以下优点:
[0041]本专利技术提供一种单片机文件读写方法,可以有效提升文件读写速度,使应用运行更流畅,提升用户使用体验。
附图说明
[0042]图1为本专利技术提供的一种单片本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种单片机文件读写方法,其特征在于,包括以下步骤:步骤1,预定义文件系统中单个文件的配置参数,包括单个文件的文件容量V
max
;步骤2,文件写入过程:步骤2.1,接收需要进行写入操作的第一目标文件file1以及第一目标文件file1的文件名name1;步骤2.2,获取第一目标文件file1的文件容量V1;步骤2.3,判断文件容量V1是否小于等于文件容量V
max
,如果是,则执行步骤2.4;如果否,则执行步骤2.5;步骤2.4,当文件容量V1小于等于文件容量V
max
时,则在文件系统中创建第一目标文件file1的源文件s_file1,源文件s_file1的文件容量为V
max
,命名为第一目标文件file1的文件名name1;然后,将第一目标文件file1直接写入到源文件s_file1,并保存;步骤2.5,当文件容量V1大于文件容量V
max
时,采用以下方式,进行分文件写入:步骤2.5.1,假设V1/V
max
的整数部分为n,则在文件系统中创建第一目标文件file1的源文件s_file1,源文件s_file1的文件容量为V
max
,命名为第一目标文件file1的文件名name1;再在文件系统中创建源文件s_file1的第1衍生文件s_file1_1,第1衍生文件s_file1_1的文件容量为V
max
,命名同时包括第一目标文件file1的文件名name1以及衍生文件序号01;再在文件系统中创建源文件s_file1的第2衍生文件s_file1_2,第2衍生文件s_file1_2的文件容量为V
max
,命名同时包括第一目标文件file1的文件名name1以及衍生文件序号02;依此类推直到在文件系统中创建源文件s_file1的第n衍生文件s_file1_n,第n衍生文件s_file1_n的文件容量为V
max
,命名同时包括第一目标文件file1的文件名name1以及衍生文件序号0n;步骤2.5.2,以文件容量V
max
为划分单位,将第一目标文件file1划分为n+1段;其中,第1段文件内容,第2段文件内容,...,第n段文件内容,其文件容量均为V
max
;第n+1段文件内容,其文件容量为:V1‑
nV
max
;将第1段文件内容,写入到源文件s_file1;将第2段文件内容,写入到第1衍生文件s_file1_1;依此类推,直到将第n+1段文件内容,写入到第n衍生文件s_file1_n;步骤...

【专利技术属性】
技术研发人员:刘福标卢建兴成源
申请(专利权)人:艾体威尔电子技术北京有限公司
类型:发明
国别省市:

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

1