CN116974979A - 在嵌入式存储器上部署文件系统的方法、系统和电路 - Google Patents

在嵌入式存储器上部署文件系统的方法、系统和电路 Download PDF

Info

Publication number
CN116974979A
CN116974979A CN202310479374.5A CN202310479374A CN116974979A CN 116974979 A CN116974979 A CN 116974979A CN 202310479374 A CN202310479374 A CN 202310479374A CN 116974979 A CN116974979 A CN 116974979A
Authority
CN
China
Prior art keywords
memory
computing device
file
configuration
embedded
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.)
Pending
Application number
CN202310479374.5A
Other languages
English (en)
Inventor
Z·奥艾尼
H·拉赫马尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics SA
Original Assignee
STMicroelectronics SA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by STMicroelectronics SA filed Critical STMicroelectronics SA
Publication of CN116974979A publication Critical patent/CN116974979A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及在嵌入式存储器上部署文件系统的方法、系统和电路。用于模拟存储器架构以为嵌入在可编程计算设备上的存储器生成文件树的bin映像的系统、方法和电路系统。获得存储器的存储器配置和标识要在存储器中使用的文件结构的文件树。使用存储器模拟器和文件管理系统管理器,基于存储器配置和文件树,针对存储器生成文件系统的bin映像。bin映像被提供给可编程计算设备以存储在存储器中。

Description

在嵌入式存储器上部署文件系统的方法、系统和电路
技术领域
本公开一般涉及在嵌入式应用中经常使用的类型的电子设备。更具体地但不排他地,本公开涉及在可编程计算设备的存储器上生成和存储文件系统。
背景技术
SoC(片上系统)变得越来越复杂,并且经常利用微控制器单元和不同的存储器和配置。一种这样的存储器可以包括嵌入式NOR闪存存储器。微控制器单元可以直接访问在NOR闪存存储器上写入的“原始数据”。然而,文件和文件夹存储通常需要具有特定的低级接口的文件系统,该低级接口被用来向存储器读取和写入数据。由于NOR存储器被嵌入在板上,因此如果不在微控制器单元上运行应用以与存储器交互,则通常不可能在存储器上预装文件系统。这种复杂性使得难以在嵌入在SoC中的NOR闪存存储器上利用文件系统。正是针对这些和其他考虑,做出了本文所描述的实施例。
发明内容
本文所描述的实施例生成要被存储在可编程计算设备的存储器上的文件系统的bin(二进制)映像,而无需可编程计算设备生成或维护文件系统本身。在一些实施例中,可以利用图形用户界面使得用户可以选择或标识可编程计算设备或嵌入在可编程计算设备上的存储器。
确定嵌入在可编程计算设备上的存储器的存储器配置。在一些实施例中,可以通过如下方式来确定存储器配置信息:确定存储器的总大小、确定存储器的块大小、确定存储器的页大小、确定存储器的存储器类型;确定存储器的硬件架构;或其某种组合。
获得标识要在存储器中使用的文件结构的文件树。然后,系统可以使用存储器模拟器和文件管理系统管理器,基于存储器配置和文件树,针对存储器生成文件系统的bin映像。可以通过如下方式来生成bin映像:经由文件管理系统管理器获得文件分配表信息,并采用存储器模拟器通过使用存储器配置和文件分配表信息模拟将文件树写入到存储器来生成bin映像。bin映像被存储在嵌入在可编程计算设备上的存储器中。在一些实施例中,标识具有与存储器的存储器配置相匹配的第二存储器配置的第二可编程计算设备的第二存储器,并且将bin映像存储在嵌入在第二可编程计算设备上的第二存储器中。
本文所描述的实施例,通过实现高效机制来生成和利用可编程计算设备上的嵌入式存储器中的文件系统而不需要可编程计算设备采用其自己的资源来生成文件系统,实现了对可编程计算设备的功能的改进。
附图说明
参考以下附图描述了非限制性和非穷举性的实施例,其中除非上下文另有说明,否则贯穿各种视图,相似的附图标记指代相似的部分。附图中的要素的大小和相对位置不一定按比例绘制。例如,各种要素的形状被选择、放大和定位以改善图的易读性。所绘制的要素的特定形状已被选择为在附图中易于辨识。下面结合附图描述一个或多个实施例,在附图中:
图1是示出了用于实现本文所描述的实施例的示例计算环境的框图;
图2是示出了根据本文所描述的实施例的用于为嵌入在可编程计算设备上的存储器生成文件系统的组件的示例概念结构的框图;和
图3示出了根据本文所描述的实施例的用于为嵌入在可编程计算设备上的存储器生成文件系统的过程的逻辑流程图。
具体实施方式
在下面的描述中,连同附图,阐述了某些细节以便提供对设备、系统、方法和制品的各种实施例的透彻理解。然而,本领域技术人员将理解,可以在没有这些细节的情况下实践其他实施例。在其他实例中,与诸如晶体管、乘法器、加法器、除法器、比较器、集成电路、逻辑门、有限状态机、加速度计、陀螺仪、磁场传感器、存储器总线系统等等之类的电路相关联的众所周知的结构和方法在一些附图中未被详细示出或描述以避免不必要地使实施例的描述模糊不清。此外,与本公开的环境相关联的众所周知的结构或组件——包括但不限于通信系统和网络未被示出或描述以避免不必要地使实施例的描述模糊不清。
除非上下文另有要求,否则在整个说明书和随后的权利要求中,词语“包括”及其变体应以开放的、包容的意义来进行解释,即为“包括但不仅限于”。
在整个说明书、权利要求和附图中,除非上下文另有明确规定,否则以下术语具有与本文明确关联的含义。术语“本文”是指与当前申请相关联的说明书、权利要求和附图。短语“在一个实施例中”、“在另一个实施例中”、“在各种实施例中”、“在一些实施例中”、“在其他实施例中”及其其他变体是指本公开的一个或多个特征、结构、功能、限制或特性,并且不限于相同或不同的实施例,除非上下文另有明确规定。如本文中所使用的,术语“或”是包含性“或”运算符,并且等同于短语“A或B、或两者”或“A或B或C、或其任何组合”,并且具有附加要素的列表也被类似地对待。术语“基于”不是排他性的,并且允许基于未描述的附加特征、功能、方面或限制,除非上下文另有明确规定。此外,在整个说明书中,“一”、“一个”、“所述”和“该”的含义包括单数和复数引用。此外,可以在一个或多个实施例中以任何合适的方式组合特定特征、结构或特性以获得另外的实施例。
图1是示出了用于实现本文所描述的实施例的示例计算环境100的框图。环境100包括可编程计算设备108和主机计算设备120。
可编程计算设备108具有处理器112、存储器114和输入/输出外围设备116。虽然未图示,但是计算设备108可以具有其他计算组件,诸如附加存储器、图形处理单元、无线网络模块、模数转换器、微机电系统、其他传感器等。在各种实施例中,可编程计算设备108可以被称为片上系统(SoC)。
可编程计算设备108可以是微处理器、微控制器或者是或包含具有可编程接口的集成电路的其他计算机设备。处理器112包括一个或多个中央处理单元或处理器核。在一些实施例中,处理器112可以包括状态机、微处理器、可编程逻辑电路、分立电路、逻辑门、寄存器等。处理器112可以控制可编程计算设备108的整体操作、可编程计算设备108对应用程序的执行等。
可编程计算设备108还包括一个或多个存储器114,诸如一个或多个易失性或非易失性存储器或其组合。在至少一个实施例中,存储器114可以包括NOR闪存存储器。如本文所述,可编程计算设备108可以存储它从主机计算设备120接收的文件树的bin映像。当在可编程计算设备108上执行的应用需要访问存储在存储器的bin映像内的数据时,应用利用存储器接口(例如,NOR闪存存储器接口)来访问bin映像并获得数据。
存储器114还可以存储与由可编程计算设备108执行的应用和操作相关的指令和数据。例如,存储器114可以存储计算机指令,该计算机指令在由处理器112执行时使可编程计算设备108执行期望功能。存储器114还可以存储信息,该信息被用来配置可编程计算设备108的硬件。
输入/输出外围设备116可以包括一个或多个通用输入/输出管脚、专用输入或输出接口(例如,串行输入/输出端口)、无线接口等。在一些实施例中,输入/输出外围设备116可以被配置为从诸如主机计算设备120之类的其他计算设备接收输入数据,或者可以被配置为向其他计算设备提供输出数据。
可编程计算设备108还可以包括总线系统(未图示),其可以被配置为使得处理器112、输入/输出外围设备116、一个或多个存储器114或其他电路或电路系统(未图示)彼此通信地耦合以发送数据到其他组件或从其他组件接收数据。总线系统可以包括电耦合到可编程计算设备108的各种组件的数据、地址、电源或控制总线中的一个或多个或其某种组合。
主机计算设备(host computing device)120包括处理器122、输入/输出接口126和存储器128。主机计算设备120被配置为采用本文所描述的实施例来生成文件树的bin映像以被存储在可编程计算设备108的存储器114上。
处理器122可以包括一个或多个处理器,其被配置为执行计算机指令以采用本文所描述的实施例。例如,诸如通过与可编程计算设备108通信或者通过经由图形用户界面接收用户选择,主机计算设备120可以标识可编程计算设备108和存储器114。关于存储器114的各种特性或存储器配置信息可以被确定,并且连同存储器模拟器和文件管理系统管理器一起被用来生成文件树的bin映像。主机计算设备120可以例如经由输入/输出接口126向可编程计算设备108提供所生成的bin映像以存储在可编程计算设备108上的存储器114中。
存储器128可以包括一种或多种不同类型的非易失性和/或易失性存储技术。存储器128的示例可以包括但不限于闪存存储器、硬盘驱动器、光驱、固态驱动器、各种类型的随机存取存储器(RAM)、各种类型的只读存储器(ROM)、其他计算机可读存储介质(也被称为处理器可读存储介质)等等或其任何组合。存储器128可以被利用来存储信息,包括由处理器122利用来执行动作的计算机可读指令,包括本文所描述的实施例。
输入/输出接口126可以包括一个或多个其他数据输入或输出接口。例如,输入/输出接口126可以包括或向显示设备130提供数据,该显示设备130可以被用来向用户呈现图形用户界面。输入/输出接口126可以接受来自用户的输入以选择可编程计算设备108、存储器114或其他信息,如本文所述。在各种实施例中,输入/输出接口126被配置为向可编程计算设备108提供所生成的bin映像,如本文所述。
图2是示出了根据本文所描述的实施例的用于为嵌入在可编程计算设备上的存储器生成文件系统的组件的示例概念结构200的框图。示例概念结构200可以由诸如图1中的主机计算设备120之类的一个或多个计算设备来实现或在其上被执行,其与图1中的可编程计算设备108通信或者可以与之通信。在各种实施例中,示例概念结构200不是由可编程计算设备本身来实现或在其上被执行的;相反,它由与可编程计算设备分开的计算设备托管。
示例概念结构200包括文件系统生成器202、文件管理系统管理器204、存储器模拟器206、文件树管理器208、bin映像管理器210和闪存加载器212。
文件管理系统管理器204被配置为管理或维护关于文件系统的细节或信息,计算系统可以使用这些细节或信息来制作或管理文件系统。在至少一个实施例中,文件管理系统管理器204可以是使得文件系统生成器202能够访问诸如FileX和LevelX之类的第三方文件管理系统的接口。
存储器模拟器206被配置为执行模仿(mimic)可编程计算设备对可编程计算设备的特定存储器的读取和写入的功能性的操作。在一些实施例中,存储器模拟器206可以从文件系统生成器接收存储器配置信息,并且基于该存储器配置信息来模仿可编程计算设备的存储器。在其他实施例中,存储器模拟器206可以包括多个子模拟器,每个子模拟器分别被配置为模拟(simulate)不同类型或结构的存储器。在至少一个这样的实施例中,子模拟器可以利用存储器配置信息中的一些来说明特定存储器的存储器特性的特定变化。
文件树管理器208被配置为生成、维护或获得要被存储在可编程计算设备的存储器中的文件树。
bin映像管理器210被配置为存储或维护由文件系统生成器202生成的bin映像。在一些实施例中,bin映像管理器210或存储器模拟器206可以确保bin映像大小不超过它在可编程计算设备中要被存储在其上的存储器的实际大小。如果bin映像对于存储器而言太大,那么将bin映像加载到可编程计算设备上将可能不完整或全部一起失败。
闪存加载器212被配置为在可编程计算设备与主机计算设备120通信时将所生成的bin映像提供给可编程计算设备,这可以是在生成bin映像的时间处或者是在生成bin映像之后的某个稍后时间处。
文件系统生成器202被配置为从文件树管理器208获得文件树,并使用文件管理系统管理器204和存储器模拟器206从文件树生成bin映像。一旦生成bin映像,其可以由bin映像管理器210存储。当可编程计算设备与主机计算设备120通信时,文件系统生成器202利用闪存加载器212将bin映像加载或存储在可编程计算设备的存储器上。在一些实施例中,bin映像管理器210可以在没有文件系统生成器202的情况下协调bin映像在可编程计算设备的存储器上的存储。
文件系统生成器202、文件管理系统管理器204、存储器模拟器206、文件树管理器208、bin映像管理器210和闪存加载器212中的一个或多个可以被实现为在软件或硬件或软件和硬件的组合中、在其上或通过其执行的模块或组件。尽管文件系统生成器202、文件管理系统管理器204、存储器模拟器206、文件树管理器208、bin映像管理器210和闪存加载器212被图示为单独的模块或组件,但是实施例不限于此。相反,文件系统生成器202、文件管理系统管理器204、存储器模拟器206、文件树管理器208、bin映像管理器210和闪存加载器212中的一个或多个的功能性可以被组合并且由一个模块或组件或由多个模块或组件实现。
现在将关于图3描述一个或多个实施例的操作,并且为了方便起见将关于上述图1和图2的实施例进行描述。在各种实施例的至少一个中,结合图3描述的过程300可以由诸如图1中的主机计算设备120之类的一个或多个计算设备实现或在其上被执行。
图3示出了根据本文所描述的实施例的用于为嵌入在可编程计算设备上的存储器生成文件系统的过程300的逻辑流程图。
在开始块之后,过程300在框302处开始,其中标识嵌入在可编程计算设备上的存储器。在各种实施例中,可以向用户呈现图形用户界面以使得用户能够选择、定义或标识存储器。在一些实施例中,图形用户界面可以向用户呈现多个不同嵌入式存储器的列表。然后用户可以从嵌入式存储器列表中选择存储器。在其他实施例中,图形用户界面可以呈现用户可以从中选择的多个不同可编程计算设备的列表。响应于用户从列表中选择可编程计算设备,系统可以为所选择的可编程计算设备标识对应的嵌入式存储器,诸如通过访问映射或标识哪些存储器被嵌入在不同的可编程计算设备中的数据库。
在至少一个实施例中,存储器是可编程计算设备上的NOR闪存存储器。尽管在本文中将实施例描述为使用可编程计算设备的嵌入式存储器,但是实施例不限于此。在一些实施例中,存储器可以不是嵌入式的但是可编程计算设备可访问的。
过程300进行到框304,其中为存储器确定存储器配置。存储器配置可以包括关于存储器的硬件结构或架构、存储器的类型、存储器的总大小、由存储器利用的分页格式、页大小、块大小等的细节。在各种实施例中,数据库可以存储用于多个不同存储器的存储器配置。
过程300在框306处继续,其中获得要在存储器中使用的文件树。在一些实施例中,用户可以输入文件树。在其他实施例中,可以从用户先前已经在其中生成文件树的另一个计算设备访问或接收文件树。文件树可以包括目录、定义归档格式或结构的元数据或者标识文件将如何被存储的其他信息。在一些实施例中,文件树还可以包括文件本身。
过程300接下来进行到框308,其中启用针对存储器的存储器模拟器。在一些实施例中,存储器模拟器可以包括模仿可编程计算设备的存储器的使用的信息、引导、模块或其他软件或硬件组件。这种模仿可以包括模拟对存储器的读取或写入,或者可以在存储器上执行的或利用存储器来执行的任何其他指令。
在一些实施例中,可以维护多个存储器模拟器并且可以从多个存储器模拟器中选择用于特定嵌入式存储器和存储器配置的存储器模拟器。在至少一个实施例中,存储器模拟器可以是到另一计算系统或计算组件的接口,其可以被用来接收指示如何基于存储器配置模仿嵌入式存储器的信息或参数。
过程300接下来在框310处继续,其中启用针对存储器的文件管理系统管理器。在各种实施例中,文件管理系统管理器维护协议、目录服务、文件服务、缓存支持、缩放或者其他可以被利用来在存储器上读取、写入和存储数据的特征。在一些实施例中,文件管理系统管理器可以被配置为支持Azure FileX或LevelX、或者其他类型的嵌入式文件系统。在至少一个实施例中,文件管理系统管理器可以是到另一计算系统或计算组件的接口,其可以被用来接收要被存储在嵌入式存储器上的、与文件系统的管理相关联的信息或参数。
过程300接下来进行到框312,其中使用存储器模拟器和文件管理系统管理器,基于存储器配置,针对存储器生成文件系统的bin映像。在各种实施例中,经由文件管理系统管理器来获得文件分配表信息,并采用存储器模拟器,通过使用存储器配置和文件分配表信息来模拟将文件树写入到存储器,来生成bin映像。
在各种实施例中,主机存储器(例如,主机计算设备120的存储器)的区域或部分被分配有在框302和304处标识和确定的嵌入式存储器的大小。采用在框308处启用的存储器模拟器来对所分配的区域进行格式化,以基于在框304处确定的存储器块大小创建干净的空文件系统。解析在框306处获得的文件树,并使用存储器模拟器来在先前在存储器区域中创建的文件系统中复制在结构和内容方面准确的文件树。存储器文件系统内容被转储到BIN文件中,该文件已准备好在存储嵌入式存储器中进行编程。
过程300在框314处继续,其中bin映像被提供给可编程计算设备以用于存储在嵌入式存储器中。在各种实施例中,bin映像可以被提供给一个或多个其他可编程计算设备,这些可编程计算设备利用或具有嵌入式存储器,该嵌入式存储器具有与框302和304中标识的嵌入式存储器的存储器配置相同的存储器配置。例如,用户可以经由图形用户界面选择或标识附加可编程计算设备。并且如果所选择的附加可编程计算设备具有与最初标识的可编程计算设备相同的存储器,那么bin映像被加载到附加可编程计算设备的存储器上。以这种方式,可以将bin映像存储到多个可编程计算设备的存储器上,而不必每次都重新生成bin映像。
在框314之后,过程300终止或以其他方式返回到调用过程以执行其他动作。
以下是所提交的权利要求的概要。
一种方法可以被概括为包括:为嵌入在可编程计算设备上的存储器选择存储器配置;获得标识要在存储器中使用的文件结构的文件树;使用存储器模拟器和文件管理系统管理器,基于存储器配置和文件树,针对存储器生成文件系统的bin映像;并且将bin映像存储在嵌入在可编程计算设备上的存储器中。
该方法可以包括:标识嵌入在可编程计算设备上的存储器。
针对存储器选择存储器配置可以包括:确定存储器的总大小;确定存储器的块大小;并且确定存储器的页大小。针对存储器选择存储器配置可以包括:确定存储器的存储器类型。针对存储器选择存储器配置可以包括:确定存储器的硬件架构。
针对存储器生成文件系统的bin映像可以包括:经由文件管理系统管理器获得文件分配表信息;并且采用存储器模拟器,通过使用存储器配置和文件分配表信息来模拟将文件树写入到存储器,来生成bin映像。
该方法可以包括:将存储器标识为NOR闪存存储器。
该方法可以包括:标识具有与存储器的存储器配置相匹配的第二存储器配置的第二可编程计算设备的第二存储器;并且将bin映像存储在嵌入在第二可编程计算设备上的第二存储器中。
一种计算设备可以被概括为包括:存储计算机指令的存储器;以及处理器,该处理器在操作中执行计算机指令以:标识可编程计算设备的嵌入式存储器;标识嵌入式存储器的存储器配置;获得标识要在嵌入式存储器中使用的文件结构的文件树;为嵌入式存储器选择存储器模拟器接口;为文件树选择文件管理系统接口;使用存储器模拟器接口和文件管理系统接口,基于存储器配置和文件树,为嵌入式存储器生成文件系统的bin映像;并且将bin映像提供给可编程计算设备以被存储在可编程计算设备的嵌入式存储器中。
至少一个处理器,其在操作中通过执行用以如下操作的计算机指令来选择存储器的存储器配置:确定存储器的总大小;确定存储器的块大小;并且确定存储器的页大小。
至少一个处理器,其在操作中通过执行用以如下操作的计算机指令来针对存储器选择存储器配置:确定存储器的存储器类型。
至少一个处理器,其在操作中通过执行用以如下操作的计算机指令来针对存储器选择存储器配置:确定存储器的硬件架构。
至少一个处理器,其在操作中通过执行用以如下操作的计算机指令来针对存储器生成文件系统的bin映像:经由文件管理系统管理器获得文件分配表信息;并且采用存储器模拟器,通过使用存储器配置和文件分配表信息来模拟将文件树写入到存储器,来生成bin映像。
至少一个处理器,其在操作中执行计算机指令以将存储器标识为NOR闪存存储器。
至少一个处理器,其在操作中执行计算机指令以:标识具有与存储器的存储器配置相匹配的第二存储器配置的第二可编程计算设备的第二存储器;并且将bin映像存储在嵌入在第二可编程计算设备上的第二存储器中。
一种非暂时性计算机可读介质,其具有配置微控制器以执行一种方法的内容,该方法可以被概括为:为可编程计算设备的存储器选择存储器配置;接收标识要在存储器中使用的文件结构的文件树;使用存储器的存储器模拟器,基于存储器配置和文件树,针对存储器生成文件系统的bin映像;并且将bin映像存储在嵌入在可编程计算设备上的存储器中。
针对存储器选择存储器配置可以包括:确定存储器的总大小;确定存储器的块大小;并且确定存储器的页大小。针对存储器选择存储器配置可以包括:确定存储器的硬件架构。
针对存储器生成文件系统的bin映像可以包括:获得文件分配表信息;并且采用存储器模拟器,通过存储器配置和文件分配表信息以模拟将文件树写入到存储器,来生成bin映像。
该方法可以包括:标识具有与存储器的存储器配置相匹配的第二存储器配置的第二可编程计算设备的第二存储器;并且将bin映像存储在嵌入在第二可编程计算设备上的第二存储器中。
在前面的描述中,阐述了某些具体细节以提供对各种公开实施例的透彻理解。然而,相关领域的技术人员将认识到,可以在没有这些具体细节中的一个或多个的情况下或者使用其他方法、组件、材料等来实践实施例。在其他实例中,包括客户端和服务器计算系统以及网络在内的与电子和计算系统相关联的众所周知的结构未被详细示出或描述以避免不必要地模糊实施例的描述。
本文所提供的标题和摘要仅为方便起见,并不限制或解释实施例的范围或含义。
可以对上述各种实施例进行组合以提供另外的实施例。如果需要采用各种专利、申请和出版物的概念来提供另外的实施例,则可以修改实施例的各方面。
可以根据以上详细描述对实施例进行这些和其他改变。一般而言,在所附权利要求中,所使用的术语不应被解释为将权利要求限制为说明书和权利要求中公开的具体实施例,而应被解释为包括所有可能的实施例以及这些权利要求所享有的等同物的全部范围。因此,权利要求不受本公开的限制。

Claims (20)

1.一种方法,包括:
针对嵌入在可编程计算设备上的存储器确定存储器配置;
获得标识要在所述存储器中使用的文件结构的文件树;
使用存储器模拟器和文件管理系统管理器,基于所述存储器配置和所述文件树,针对所述存储器生成文件系统的bin映像;以及
将所述bin映像存储在嵌入在所述可编程计算设备上的所述存储器中。
2.根据权利要求1所述的方法,包括:
标识嵌入在所述可编程计算设备上的所述存储器。
3.根据权利要求1所述的方法,其中针对所述存储器选择所述存储器配置包括:
确定所述存储器的总大小;
确定所述存储器的块大小;以及
确定所述存储器的页大小。
4.根据权利要求1所述的方法,其中针对所述存储器选择所述存储器配置包括:
确定所述存储器的存储器类型。
5.根据权利要求1所述的方法,其中针对所述存储器选择所述存储器配置包括:
确定所述存储器的硬件架构。
6.根据权利要求1所述的方法,其中针对所述存储器生成所述文件系统的所述bin映像包括:
经由所述文件管理系统管理器,获得文件分配表信息;以及
采用所述存储器模拟器,通过使用所述存储器配置和所述文件分配表信息来模拟将所述文件树写入到所述存储器,来生成所述bin映像。
7.根据权利要求1所述的方法,包括:
将所述存储器标识为NOR闪存存储器。
8.根据权利要求1所述的方法,包括:
标识具有与所述存储器的所述存储器配置相匹配的第二存储器配置的第二可编程计算设备的第二存储器;以及
将所述bin映像存储在嵌入在所述第二可编程计算设备上的所述第二存储器中。
9.一种计算设备,包括:
存储计算机指令的存储器;以及
至少一个处理器,在操作中执行所述计算机指令以:
标识可编程计算设备的嵌入式存储器;
标识针对所述嵌入式存储器的存储器配置;
获得标识要在所述嵌入式存储器中使用的文件结构的文件树;
针对所述嵌入式存储器选择存储器模拟器接口;
针对所述文件树选择文件管理系统接口;
使用所述存储器模拟器接口和所述文件管理系统接口,基于所述存储器配置和所述文件树,针对所述嵌入式存储器生成文件系统的bin映像;以及
将所述bin映像提供给所述可编程计算设备以被存储在所述可编程计算设备的所述嵌入式存储器中。
10.根据权利要求9所述的计算设备,其中所述至少一个处理器在操作中通过执行用以如下操作的所述计算机指令来针对所述存储器选择所述存储器配置:
确定所述存储器的总大小;
确定所述存储器的块大小;以及
确定所述存储器的页大小。
11.根据权利要求9所述的计算设备,其中所述至少一个处理器在操作中通过执行用以如下操作的所述计算机指令来针对所述存储器选择所述存储器配置:
确定所述存储器的存储器类型。
12.根据权利要求9所述的计算设备,其中所述至少一个处理器在操作中通过执行用以如下操作的所述计算机指令来针对所述存储器选择所述存储器配置:
确定所述存储器的硬件架构。
13.根据权利要求9所述的计算设备,其中所述至少一个处理器在操作中通过执行用以如下操作的所述计算机指令来针对所述存储器生成所述文件系统的所述bin映像:
经由所述文件管理系统管理器获得文件分配表信息;以及
采用所述存储器模拟器,通过使用所述存储器配置和所述文件分配表信息来模拟将所述文件树写入到所述存储器,来生成所述bin映像。
14.根据权利要求9所述的计算设备,其中所述至少一个处理器在操作中执行所述计算机指令以:
将所述存储器标识为NOR闪存存储器。
15.根据权利要求9所述的计算设备,其中所述至少一个处理器在操作中执行所述计算机指令以:
标识具有与所述存储器的所述存储器配置相匹配的第二存储器配置的第二可编程计算设备的第二存储器;以及
将所述bin映像存储在嵌入在所述第二可编程计算设备上的所述第二存储器中。
16.一种非暂时性计算机可读介质,具有配置微控制器以执行方法的内容,所述方法包括:
针对可编程计算设备的存储器选择存储器配置;
接收标识要在所述存储器中使用的文件结构的文件树;
使用所述存储器的存储器模拟器,基于所述存储器配置和所述文件树,针对所述存储器生成文件系统的bin映像;以及
将所述bin映像存储在嵌入在所述可编程计算设备上的所述存储器中。
17.根据权利要求16所述的非暂时性计算机可读介质,其中针对所述存储器选择所述存储器配置包括:
确定所述存储器的总大小;
确定所述存储器的块大小;以及
确定所述存储器的页大小。
18.根据权利要求16所述的非暂时性计算机可读介质,其中针对所述存储器选择所述存储器配置包括:
确定所述存储器的硬件架构。
19.根据权利要求16所述的非暂时性计算机可读介质,其中针对所述存储器生成所述文件系统的所述bin映像包括:
获得文件分配表信息;以及
采用所述存储器模拟器,通过使用所述存储器配置和所述文件分配表信息来模拟将所述文件树写入到所述存储器,来生成所述bin映像。
20.根据权利要求16所述的非暂时性计算机可读介质,所述方法包括:
标识具有与所述存储器的所述存储器配置相匹配的第二存储器配置的第二可编程计算设备的第二存储器;以及
将所述bin映像存储在嵌入在所述第二可编程计算设备上的所述第二存储器中。
CN202310479374.5A 2022-04-29 2023-04-28 在嵌入式存储器上部署文件系统的方法、系统和电路 Pending CN116974979A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/733,779 2022-04-29
US17/733,779 US20230350593A1 (en) 2022-04-29 2022-04-29 Method, system, and circuit for deploying file system on embedded memory in programmable computing device

Publications (1)

Publication Number Publication Date
CN116974979A true CN116974979A (zh) 2023-10-31

Family

ID=88473770

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310479374.5A Pending CN116974979A (zh) 2022-04-29 2023-04-28 在嵌入式存储器上部署文件系统的方法、系统和电路

Country Status (2)

Country Link
US (1) US20230350593A1 (zh)
CN (1) CN116974979A (zh)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080209114A1 (en) * 1999-08-04 2008-08-28 Super Talent Electronics, Inc. Reliability High Endurance Non-Volatile Memory Device with Zone-Based Non-Volatile Memory File System
US7426461B2 (en) * 2004-06-30 2008-09-16 International Business Machines Corporation Method, system and program product for providing a configuration specification language supporting incompletely specified configuration entities
US7409330B2 (en) * 2005-06-16 2008-08-05 Kabushiki Kaisha Toshiba Method and system for software debugging using a simulator
TW200910187A (en) * 2007-08-21 2009-03-01 Sunplus Mmobile Inc Logged FAT file system and method of accessing the same
US9165143B1 (en) * 2013-03-15 2015-10-20 Xilinx, Inc. Image file generation and loading
US10430328B2 (en) * 2014-09-16 2019-10-01 Sandisk Technologies Llc Non-volatile cache and non-volatile storage medium using single bit and multi bit flash memory cells or different programming parameters
WO2017058414A1 (en) * 2015-09-29 2017-04-06 Apple Inc. Unified addressable memory
KR102428461B1 (ko) * 2015-10-19 2022-08-03 삼성전자주식회사 선택적 암호화 방법 및 그를 이용한 전자 장치
US10565123B2 (en) * 2017-04-10 2020-02-18 Western Digital Technologies, Inc. Hybrid logical to physical address translation for non-volatile storage devices with integrated compute module
US11256437B2 (en) * 2018-11-19 2022-02-22 Micron Technology, Inc. Data migration for memory operation

Also Published As

Publication number Publication date
US20230350593A1 (en) 2023-11-02

Similar Documents

Publication Publication Date Title
CN102799464B (zh) 虚拟机创建方法及系统、虚拟机重装方法及系统
CN107807839B (zh) 一种修改虚拟机内存数据的方法、装置及电子设备
WO2017020647A1 (zh) 基于新型存储器的嵌入式文件系统及其实现方法
CN110716845B (zh) 一种Android系统的日志信息读取的方法
CN114327777B (zh) 确定全局页目录的方法、装置、电子设备及存储介质
KR20100088210A (ko) 휴대용 단말기에서 내장 대용량 메모리를 이용한 컨텐츠 다운로드 방법 및 장치
US10282190B2 (en) System and method for updating a UEFI image in an information handling system
US10592393B1 (en) Firmware debug trace capture
CN114237714A (zh) 命令包生成方法、装置、电子设备和存储介质
CN114153779A (zh) 一种i2c通信方法、系统、设备、及存储介质
CN113868039A (zh) 一种测试方法、装置及相关设备
US10496422B2 (en) Serial device emulator using two memory levels with dynamic and configurable response
CN113190241B (zh) 数据分区的容量扩充方法、装置、电子设备、存储介质
US20100153622A1 (en) Data Access Controller and Data Accessing Method
US9223697B2 (en) Computer reprogramming method, data storage medium and motor vehicle computer
CN111694580B (zh) 存储设备升级及初始化的方法、装置、电子设备
CN115599618B (zh) 寄存器动态改配验证方法、装置、存储介质和处理器
CN111782474A (zh) 日志处理方法、装置、电子设备和介质
US20230350593A1 (en) Method, system, and circuit for deploying file system on embedded memory in programmable computing device
CN116225618A (zh) 基于容器镜像启动虚拟机的方法及虚拟机启动装置
CN115712394A (zh) 数据读写方法、装置、计算机设备及可读存储介质
CN112885403B (zh) 一种Flash控制器的功能测试方法、装置及设备
CN114138570A (zh) 一种fpga的测试方法、系统、设备以及介质
CN113948146A (zh) 固态硬盘的测试方法、装置及电子设备
CN113779918A (zh) SoC仿真方法、装置、计算设备和计算机存储介质

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