IP Library Granted Patent US 12,210,758
Granted Patent B2
US 12,210,758 · App. 17/733,779 · Granted Jan 28, 2025

Method, system, and circuit for deploying file system on embedded memory in programmable computing device

Inventors: Zouhaier Aouaini (Ariana, TN); Haithem Rahmani (Ariana, TN)
Assignee: STMicroelectronics France
G06F3/0643G06F3/0604G06F3/064G06F3/0659G06F3/0679G06F16/1847
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,210,758
App. No.
17/733,779
Granted
Jan 28, 2025
Kind
B2
Abstract

System, method, and circuitry for simulating a memory architecture to generate a bin image of a file tree for a memory embedded on a programmable computing device. A memory configuration of the memory and a file tree identifying a file structure to be used in the memory are obtained. A bin image of a file system for the memory is generated based on the memory configuration and the file tree using a memory simulator and a file-management-system manager. The bin image is provided to the programmable computing device for storage in the memory.

Claims (70)

1. A method, comprising:

determining, by a host computing device, a memory configuration for a memory that is embedded on a programmable computing device;

obtaining, by the host computing device, a file tree identifying a file structure to be used in the memory;

allocating, by the host computing device, a region of host memory associated with the host computing device based on the memory configuration;

creating, in the allocated region of host memory, a file system including structure and content in accordance with the file tree by at least simulating writing of the file tree to the memory that is embedded on the programmable computing device;

generating, by the host computing device, a bin image by dumping the file system data into the bin image; and

storing the bin image in the memory that is embedded on the programmable computing device, wherein data stored within the bin image is accessible, via a memory interface, to one or more applications executing on the programmable computing device.

2. The method of claim 1 , comprising:

identifying the memory embedded on the programmable computing device.

3. The method of claim 1 , wherein determining the memory configuration for the memory comprises:

determining a total size of the memory;

determining a block size of the memory; and

determining a page size of the memory.

4. The method of claim 1 , wherein determining the memory configuration for the memory comprises:

determining a memory type of the memory.

5. The method of claim 1 , wherein determining the memory configuration for the memory comprises:

determining the hardware architecture of the memory.

6. The method of claim 1 , further comprising:

obtaining file allocation table information via a file-management-system manager; and

employing a memory simulator to simulate writing of the file tree to the memory using the memory configuration and the file allocation table information.

7. The method of claim 1 , comprising:

identifying the memory as a NOR flash memory.

8. The method of claim 1 , comprising:

identifying a second memory of a second programmable computing device having a second memory configuration that matches the memory configuration of the memory; and

storing the bin image in the second memory that is embedded on the second programmable computing device.

9. A computing device, comprising:

a memory that store computer instructions; and

at least one processor that, in operation, executes the computer instructions to:

identify an embedded memory of a programmable computing device;

identify a memory configuration for the embedded memory;

obtain a file tree identifying a file structure to be used in the embedded memory;

allocate a region of the memory of the computing device based on the memory configuration;

create, in the allocated region of the memory, a file system including structure and content in accordance with the file tree by at least simulating writing of the file tree to the embedded memory of the programmable computing device;

generate a bin image by at least dumping the file system data into the bin image; and

provide the bin image to the programmable computing device to be stored in the embedded memory of the programmable computing device and to be accessible, via a memory interface, to one or more applications executing on the programmable computing device.

10. The computing device of claim 9 , wherein the at least one processor, in operation, selects the memory configuration for the memory by executing the computer instructions to:

determine a total size of the memory;

determine a block size of the memory; and

determine a page size of the memory.

11. The computing device of claim 9 , wherein the at least one processor, in operation, selects the memory configuration for the memory by executing the computer instructions to:

determine a memory type of the memory.

12. The computing device of claim 9 , wherein the at least one processor, in operation, selects the memory configuration for the memory by executing the computer instructions to:

determine the hardware architecture of the memory.

13. The computing device of claim 9 , wherein the at least one processor, in operation, executes the computer instructions to further:

obtain file allocation table information via a file-management-system manager; and

employ a memory simulator to simulate writing of the file tree to the embedded memory using the memory configuration and the file allocation table information.

14. The computing device of claim 9 , wherein the at least one processor, in operation, executes the computer instructions to:

identify the memory as a NOR flash memory.

15. The computing device of claim 9 , wherein the at least one processor, in operation, executes the computer instructions to:

identify a second memory of a second programmable computing device having a second memory configuration that matches the memory configuration of the memory; and

store the bin image in the second memory that is embedded on the second programmable computing device.

16. A non-transitory computer-readable medium having contents that configure a microcontroller to perform a method, the method comprising:

selecting a memory configuration for a memory of a programmable computing device;

receiving a file tree identifying a file structure to be used in the memory;

allocating a region of a memory associated with the microcontroller based on the memory configuration;

creating, in the allocated region, a file system including structure and content in accordance with the file tree by at least simulating writing of the file tree to the memory of the programmable computing device;

generating a bin image by at least dumping the file system data into the bin image; and

storing the bin image in the memory that is embedded on the programmable computing device to be accessible, via a memory interface, to one or more applications executing on the programmable computing device.

17. The non-transitory computer-readable medium of claim 16 , wherein selecting the memory configuration for the memory comprises:

determining a total size of the memory;

determining a block size of the memory; and

determining a page size of the memory.

18. The non-transitory computer-readable medium of claim 16 , wherein selecting the memory configuration for the memory comprises:

determining the hardware architecture of the memory.

19. The non-transitory computer-readable medium of claim 16 , wherein the memory the method further comprises:

obtaining file allocation table information; and

employing a memory simulator to simulate writing of the file tree to the memory using the memory configuration and the file allocation table information.

20. The non-transitory computer-readable medium of claim 16 , the method comprising:

identifying a second memory of a second programmable computing device having a second memory configuration that matches the memory configuration of the memory; and

storing the bin image in the second memory that is embedded on the second programmable computing device.

Assignments (2)
CHANGE OF NAME Recorded Jan 10, 2024
From: STMICROELECTRONICS SA
To: STMICROELECTRONICS FRANCE
Reel/Frame 066254/0070 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2022
From: AOUAINI, ZOUHAIER; RAHMANI, HAITHEM
To: STMICROELECTRONICS SA
Reel/Frame 059862/0711 →
Continuity (1)
Related Publication 20230350593A1 · Nov 2, 2023
References Cited (17)
US 7409330B2 · Kumamoto · 2008 [cited by examiner]
US 7614051B2 · Glaum et al. · 2009 [cited by applicant]
US 8589700B2 · Herman et al. · 2013 [cited by applicant]
US 9165143B1 · Sanders · 2015 [cited by examiner]
US 10853503B2 · Lee · 2020 [cited by examiner]
US 11138346B2 · Gulati · 2021 [cited by examiner]
US 11256437B2 · Walker · 2022 [cited by examiner]
US 20080209114A1 · Chow · 2008 [cited by examiner]
US 20080256135A1 · Nelson · 2008 [cited by examiner]
US 20090055452A1 · Tang · 2009 [cited by examiner]
US 20160077968A1 · Sela · 2016 [cited by examiner]
US 20180293174A1 · Song · 2018 [cited by examiner]
US 20230350593A1 · Aouaini · 2023 [cited by examiner]
CN 101425041A · 2009 [cited by applicant]
GitHub, “Project Requirements we should consider #6,” URL=https://github.com/Open-CMSIS-Pack/Open-CMSIS-Pack-Spec/issues/6, download date May 13, 2022, 6 pages. [cited by applicant]
Github, STMicroelectronics/STM32CubeU5, URL=https://github.com/STMicroelectronics/STM32CubeU5/tree/main/Projects/B-U585I-IOT02A/Applications/NetXDuo/Nx_WebServer/Web_Content, download date May 13, 2022, 1 page. [cited by applicant]
Github, STMicroelectronics/x-cube-azrtos-f4, URL=https://github.com/STMicroelectronics/x-cube-azrtos-f4/tree/main/Projects/STM32F429ZI-Nucleo/Applications/NetXDuo/Nx_WebServer/Web_Content, download date May 13, 2022, 1 … [cited by applicant]