CN112328180B - 一种基于单片机的文件管理方法 - Google Patents
一种基于单片机的文件管理方法 Download PDFInfo
- Publication number
- CN112328180B CN112328180B CN202011281687.2A CN202011281687A CN112328180B CN 112328180 B CN112328180 B CN 112328180B CN 202011281687 A CN202011281687 A CN 202011281687A CN 112328180 B CN112328180 B CN 112328180B
- Authority
- CN
- China
- Prior art keywords
- file
- storage
- macro
- management method
- interface
- 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
Links
- 238000007726 management method Methods 0.000 title claims abstract description 34
- 238000011161 development Methods 0.000 claims abstract description 13
- 238000012545 processing Methods 0.000 claims abstract description 11
- 230000007246 mechanism Effects 0.000 claims description 11
- 238000007689 inspection Methods 0.000 claims description 3
- 230000009471 action Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 4
- 238000000034 method Methods 0.000 description 4
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种基于单片机的文件管理方法,包括将需要记录存储的数据进行文件化,开发者可根据需求将数据进行分类,自定义文件类别,通过宏定义展开的方式,利用编译器的编译原则进行自动构建相应文件所需要的枚举、配置表和自动新增相应文件的处理接口,让开发者在单片机下也可以像带有操作系统的开发模式一样操作文件,无需关心文件存储的底层实现。极大的减少了开发工作量,并且屏蔽了应用层直接操作flash带来的风险。
Description
技术领域
本发明属于嵌入式领域,具体涉及一种基于单片机的文件管理方法。
背景技术
目前的嵌入式领域,在各行业的低成本要求下,小容量单片机比较受追捧,小容量单片机由于其内存及flash都较小,无法运行操作系统,而各应用场合基本都会涉及到数据的存储,当前单片机方案下的数据存储基本都是直接操作底层flash或者外部的存储芯片。并没有将数据整合成独立的文件进行管理。这种操作不仅会带来直接操作硬件flash的风险,并且也增加了开发的成本。现有单片机数据存储管理模式如图1所示,数据的读写和删除均是直接操作底层flash或者外部的存储芯片。
发明内容
为解决上述问题,本发明提出了一种基于单片机的文件管理方法。其主要实现了单片机下的文件操作和管理。文件管理系统基本框图如图2所示。
本发明的基于单片机的文件管理方法,包括:文件创建,通过宏定义展开的方式,利用编译器的编译原则进行自动构建相应文件所需要的枚举、配置表和自动新增相应文件的处理接口;文件存储机制,包括定期巡检功能、操作flash的接口、队列的管理、文件地址保护的管理等,轮询文件配置表后,可根据文件操作请求直接操作由该文件创建出来的操作函数接口;文件操作接口,包括读文件长度、读取整个文件、读取固定地址的内容、写指定地址的内容、写整个文件、擦除文件等操作接口。其中文件创建包括:文件创建宏,文件创建宏的解释器,该解释器通过同一个宏定义,在不同预编译宏处理模式下,分别自动构建出相应的配置表、枚举以及自动新增相应文件的处理接口等文件操作所需信息。其中文件创建设有具体格式,该格式包括文件名称、文件存储队列大小、单条存储格式大小、存储最大条目、存储媒介、存储起始地址等。
其中文件创建的具体步骤包括:
(1)根据用户开发需求,梳理出需要存储的数据内容和类型;
(2)根据数据内容和类型进行文件分类,并自定义文件名称;
(3)根据具体芯片和开发平台,选择存储的媒介、存储起始地址、存储最大存储条目、存储队列大小;
(4)根据指定格式创建文件宏;
(5)对新加的宏,仅需要对整个应用程序进行重新编译,即可实现新增文件的操作管理。
将需要记录存储的数据进行文件化,开发者可根据需求将数据进行分类,自定义文件类别,让开发者在单片机下也可以像带有操作系统的开发模式一样操作文件,使用非常便捷。开发者只需关注应用功能本身,无需关心文件存储的底层实现。极大的减少了开发工作量,并且屏蔽了应用层直接操作flash带来的风险,并且此方法通用性强,可以满足各个类型容量的单片机开发需求。
附图说明
图1 为现有单片机数据存储管理模式;
图2为根据本发明的文件管理系统基本框图;
图3 为根据本发明的文件创建模型图;
图4 为根据本发明的文件创建参数属性图;
图5 为根据本发明的文件管理机制图;
图6为根据本发明的文件操作的接口图;
图7为根据本发明的操作流程图。
具体实施方式
为了使本技术领域人员更好的了解本发明实施方案,下面结合附图和实施方式对本发明进一步的详细说明。
本发明提出的文件管理方法,主要包括文件创建、文件存储机制、文件操作接口3个方面。
参见图3,文件创建提出了一种新型的开发模型,主要通过宏定义展开的方式,利用编译器的编译原则进行自动构建相应文件所需要的枚举、结构体和处理函数接口。本发明提出了一种文件宏的解释器的概念,即通过同一个宏定义,在不同预编译宏处理模式下,会分别自动构建出相应的结构体、枚举以及函数等文件操作所需信息。
文件创建同时规定了具体的格式要求。参见图4,格式主要包括文件名称、文件存储队列大小、单条存储格式大小、存储最大条目、存储媒介、存储起始地址等。
文件名称:是用户创建的自定义的字符串,用户在应用层也是以此字符串来操作指定文件的。文件名称在文件创建宏的解释器作用下,会根据宏定义的特殊用法,进行字符串链接(##)和转译成标准字符串(#),自动构建相对应的枚举、配置表、接口函数。这样即可以通过该字符串将文件操作和具体执行的接口进行关联,从而实现了文件的接口操作。
文件存储队列大小:主要在单片机模式下,用于保护flash/外部存储接口的反复读写而设计的一个缓存,此大小根据客户存储需求进行自定义设计。
单条存储格式大小:用户根据存储的数据种类进行分类,单条存储大小是每次存储的最小单元。
存储最大条目:为了保护flash操作超出范围,由用户根据实际需求填写最大条目。
存储媒介:产品实际使用的存储媒介,可以是本地flash,外部存储接口等。
存储起始地址:每个文件都会进行分配地址,起始地址由用户根据具体的芯片和flash地址分配空间进行设计。
参见图5,本发明提出的文件存储机制,是一套完全独立运行的存储管理机制,主要包括定期巡检功能、操作flash的接口、队列的管理、文件地址保护的管理等等。文件存储机制,轮询文件配置表后,即可根据文件操作请求直接操作由该文件创建出来的操作函数接口。
参见图6,本发明提出的文件操作接口中,主要有读文件长度、读取整个文件、读取固定地址的内容、写指定地址的内容、写整个文件、擦除文件等操作接口。
参见图7的操作流程图,本发明提出一种基于单片机的文件管理方法,具体实施过程如下:
(1)根据用户开发需求,梳理出需要存储的数据内容和种类。
(2)根据数据和类型进行文件分类,并自定义文件名称。
(3)根据具体芯片和开发平台,选择存储的媒介、起始地址、最大存储条目、存储队列大小。
(4)根据指定格式(具体怎么确定制定格式)创建文件宏。
(5)对新加的宏,仅需要对整个工程进行重新编译,即可实现新增文件的操作管理。
(6)文件管理机制中,为了保证存储的有效性,且不影响主任务的运行,由用户根据实际需求自定义存储机制的运行周期,也即是存储的有效时间,此时间具有最小值10ms的限制。
(7)用户自定义文件名称不能重复。
上述实施方式仅是示例性的示出本发明,并不企图限制本发明。另外对于没有详细描述的步骤属于本领域技术人员熟知的技术内容。对于涵盖在本发明构思内的相应的变换和更改均在本发明范围内。
Claims (7)
1.一种基于单片机的文件管理方法,包括:
文件创建,通过宏定义展开的方式,利用编译器的编译原则进行自动构建相应文件所需要的枚举、配置表和自动新增相应文件的处理接口;
文件存储机制,包括定期巡检功能、操作flash的接口、队列的管理、文件地址保护的管理等,轮询文件配置表后,可根据文件操作请求直接操作由该文件创建出来的操作函数接口;
文件操作接口,包括读文件长度、读取整个文件、读取固定地址的内容、写指定地址的内容、写整个文件、擦除文件等操作接口;
其中文件创建包括:
文件创建宏,
文件创建宏的解释器,该解释器通过同一个宏定义,在不同预编译宏处理模式下,分别自动构建出相应的配置表、枚举以及自动新增相应文件的处理接口等文件操作所需信息;
文件创建设有具体格式,该具体格式包括文件名称、文件存储队列大小、单条存储格式大小、存储最大条目、存储媒介、存储起始地址;
文件存储机制具体包括:
请求文件操作;
巡检文件配置表;
查看相应文件队列中是否有操作请求;
以固定规则执行请求内容;
直接调用相应文件的处理接口,
其中,文件管理方法具体包括:
(1)根据用户开发需求,梳理出需要存储的数据内容和类型;
(2)根据数据内容和类型进行文件分类,并自定义文件名称;
(3)根据具体芯片和开发平台,选择存储的媒介、存储起始地址、存储最大存储条目、存储队列大小;
(4)根据所述具体格式创建文件宏;
(5)对新加的宏,仅需要对整个应用程序进行重新编译,即可实现新增文件的操作管理;
其中,由用户根据实际需求自定义存储机制的运行周期,即存储的有效时间,此时间最小值为10ms。
2.根据权利要求1所述的文件管理方法,其中文件名称在文件创建宏的解释器作用下,会根据宏定义的用法,进行字符串链接和转译成标准字符串,自动构建相对应的枚举、配置表、自动新增相应文件的处理接口,这样能够通过该字符串将文件操作和具体执行的接口进行关联,从而实现了文件的接口操作。
3.根据权利要求1所述的文件管理方法,其中文件存储队列是:在单片机模式下,用于保护flash/外部存储接口的反复读写而设计的一个缓存。
4.根据权利要求1所述的文件管理方法,其中单条存储格式大小是每次存储的最小单元。
5.根据权利要求1所述的文件管理方法,其中存储最大条目是为了避免flash操作超出范围,由用户根据实际需求填写的最大条目。
6.根据权利要求1所述的文件管理方法,其中存储媒介是本地flash或外部存储接口。
7.根据权利要求1所述的文件管理方法,其中存储起始地址由用户根据具体的芯片和flash地址分配空间进行设计。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011281687.2A CN112328180B (zh) | 2020-11-16 | 2020-11-16 | 一种基于单片机的文件管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011281687.2A CN112328180B (zh) | 2020-11-16 | 2020-11-16 | 一种基于单片机的文件管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112328180A CN112328180A (zh) | 2021-02-05 |
CN112328180B true CN112328180B (zh) | 2024-05-10 |
Family
ID=74317851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011281687.2A Active CN112328180B (zh) | 2020-11-16 | 2020-11-16 | 一种基于单片机的文件管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112328180B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101441634A (zh) * | 2007-11-19 | 2009-05-27 | 凤凰微电子(中国)有限公司 | 适用于智能卡应用环境的嵌入式文件系统 |
CN102629259A (zh) * | 2012-02-29 | 2012-08-08 | 青岛海信移动通信技术股份有限公司 | 嵌入式系统中只读文件系统建立方法,装置及嵌入式系统 |
CN106919385A (zh) * | 2017-02-14 | 2017-07-04 | 百富计算机技术(深圳)有限公司 | 信息统计方法及装置 |
CN110399317A (zh) * | 2019-07-15 | 2019-11-01 | 西安微电子技术研究所 | 一种嵌入式系统的软件自适应的多功能控制器 |
CN111208988A (zh) * | 2019-12-24 | 2020-05-29 | 杭州海兴电力科技股份有限公司 | 单片机文件系统编写方法及单片机系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI20002720A (fi) * | 2000-12-12 | 2002-06-13 | Nokia Corp | Menetelmä konversioiden suorittamiseksi |
CN103513997B (zh) * | 2012-06-21 | 2017-08-22 | 比亚迪股份有限公司 | 用于总线网络的程序烧录方法及系统 |
JP2014178257A (ja) * | 2013-03-15 | 2014-09-25 | Toshiba Corp | 情報処理装置、時刻調整方法、及び時刻調整プログラム |
-
2020
- 2020-11-16 CN CN202011281687.2A patent/CN112328180B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101441634A (zh) * | 2007-11-19 | 2009-05-27 | 凤凰微电子(中国)有限公司 | 适用于智能卡应用环境的嵌入式文件系统 |
CN102629259A (zh) * | 2012-02-29 | 2012-08-08 | 青岛海信移动通信技术股份有限公司 | 嵌入式系统中只读文件系统建立方法,装置及嵌入式系统 |
CN106919385A (zh) * | 2017-02-14 | 2017-07-04 | 百富计算机技术(深圳)有限公司 | 信息统计方法及装置 |
CN110399317A (zh) * | 2019-07-15 | 2019-11-01 | 西安微电子技术研究所 | 一种嵌入式系统的软件自适应的多功能控制器 |
CN111208988A (zh) * | 2019-12-24 | 2020-05-29 | 杭州海兴电力科技股份有限公司 | 单片机文件系统编写方法及单片机系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112328180A (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4109230A1 (en) | Storage system, file storage and reading method, and terminal device | |
JP5065587B2 (ja) | システムパフォーマンスを改善するための外部メモリデバイスの使用 | |
US7315871B2 (en) | Method, system and program product for interning invariant data objects in dynamic space constrained systems | |
Clifford et al. | Memento mori: Dynamic allocation-site-based optimizations | |
JP2005182809A (ja) | ストレージ技術抽象化方式におけるファイル内でのファイルシステムの生成 | |
US8650537B2 (en) | Optimizing an object-oriented program by transforming invocations of synthetic accessor methods | |
CN103677654A (zh) | 一种存储数据的方法及电子设备 | |
Choudhuri et al. | Deterministic service guarantees for NAND flash using partial block cleaning | |
US6598143B1 (en) | Method to increase performance of acquiring free memory pages | |
US11579855B2 (en) | Reduced memory consumption of compiler-transformed asynchronous methods | |
CA2753626C (en) | Packed data objects | |
JP2010198368A (ja) | 補助記憶装置用フィルタドライバ手段を備えた電子計算機、補助記憶装置用フィルタドライバプログラム、及び、補助記憶装置用フィルタドライバプログラムの記録媒体 | |
CN111078279B (zh) | 字节码文件的处理方法、装置、设备及存储介质 | |
CN101425037B (zh) | Gui性能日志生成系统、方法及gui性能分析方法 | |
US20110191758A1 (en) | Optimized Memory Allocator By Analyzing Runtime Statistics | |
US8484620B2 (en) | Implementing performance impact reduction of watched variables | |
US20190265956A1 (en) | Compiler-Generated Asynchronous Enumerable Object | |
CN112328180B (zh) | 一种基于单片机的文件管理方法 | |
JP3919680B2 (ja) | コンパイラ装置、コンパイラプログラム、及び記録媒体 | |
Sansom | Execution profiling for non-strict functional languages | |
CN110058938B (zh) | 一种内存处理方法、装置、电子设备和可读介质 | |
US8413114B1 (en) | Method to simplify developing software having localization | |
CN112130789B (zh) | 片内RAM空间不足转片内flash存储的方法 | |
CN101334757B (zh) | 一种计算机存储设备的配置方法及计算机设备 | |
CN110928804A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |