IP Library Granted Patent US 12663928
Granted Patent B2
US 12663928 · App. 18/944,960 · Granted Jun 23, 2026

Method, system, and circuit for memory protection unit configuration and content generation

Inventors: Frederic Ruelle (Marigné-Laillé, FR); Michel Jaouen (Yvre l'Eveque, FR)
Assignee: STMicroelectronics (Grand Ouest) SAS
G06F3/062G06F3/0604G06F3/064G06F3/0679
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 12663928
App. No.
18/944,960
Granted
Jun 23, 2026
Kind
B2
Abstract

System, method, and circuitry for generating content for a programmable computing device based on user-selected memory regions. Contiguous regions that share memory access attributes are merged, interleaved contiguous regions that share at least one nested attribute are defined into combined regions, and remaining regions are defined as separate independent regions. A memory protection unit (MPU) region size closest to a size of each defined region is identified. If the start address of each region aligns with the address structure of the MPU region size, then those regions are assigned to MPU regions having the MPU region size; otherwise, another MPU size that aligns with the size of the regions is selected and those regions are assigned to MPU regions having that size. Content is generated to configure settings of MPU regions of the programmable computing device for the merged contiguous regions, the combined region, and the independent regions.

Claims (43)

1 . A method, comprising:

receiving, via a graphical user interface, a set of user-defined regions of a memory in which to store data on a programmable computing device;

merging contiguous regions that share memory access attributes based, at least in part, on the set of user-defined regions;

determining if interleaved contiguous regions share at least one nested attribute;

in response to determining that the interleaved contiguous regions share at least one nested attribute, determining a combined region for the interleaved continuous regions; and

generating content to configure settings of a memory protection unit for at least one of the merged contiguous regions or the combined region.

2 . The method of claim 1 , comprising:

receiving, via the graphical user interface, one or more selections of middleware and driver components.

3 . The method of claim 1 , wherein the graphical user interface presents automatically suggested or automatically chosen components.

4 . The method of claim 1 , wherein the graphical user interface presents configurable parameters and possible values for selected components.

5 . The method of claim 1 , comprising:

updating and presenting a global map, based on the content, that centralizes user selections and settings for the programmable computing device.

6 . The method of claim 1 , comprising:

generating initialization code that initializes the programmable computing device to store data based on at least the merged contiguous regions and the combined region.

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

receiving, via a graphical user interface, a set of user-defined regions of a memory in which to store data on a programmable computing device;

merging contiguous regions that share memory access attributes based, at least in part, on the set of user-defined regions;

determining if interleaved contiguous regions share at least one nested attribute;

in response to determining that the interleaved contiguous regions share at least one nested attribute, determining a combined region for the interleaved continuous regions; and

generating content to configure settings of a memory protection unit for at least one of the merged contiguous regions or the combined region.

8 . The non-transitory computer-readable medium of claim 7 , wherein the method comprises receiving, via the graphical user interface, one or more selections of middleware and driver components.

9 . The non-transitory computer-readable medium of claim 7 , wherein the graphical user interface presents automatically suggested or automatically chosen components.

10 . The non-transitory computer-readable medium of claim 7 , wherein the graphical user interface presents configurable parameters and possible values for selected components.

11 . The non-transitory computer-readable medium of claim 7 , wherein the method comprises:

updating and presenting a global map, based on the content, that centralizes user selections and settings for the programmable computing device.

12 . The non-transitory computer-readable medium of claim 7 , wherein the method comprises:

generating initialization code that initializes the programmable computing device to store data based on at least the merged contiguous regions and the combined region.

13 . A computing device, comprising:

a memory, which, in operation, stores computer instructions; and

at least one processor, which, in operation, executes the computer instructions to perform actions comprising:

receiving, via a graphical user interface, a set of user-defined regions of a memory in which to store data on a programmable computing device;

merging contiguous regions that share memory access attributes based, at least in part, on the set of user-defined regions;

determining if interleaved contiguous regions share at least one nested attribute;

in response to determining that the interleaved contiguous regions share at least one nested attribute, determining a combined region for the interleaved continuous regions; and

generating content to configure settings of a memory protection unit for at least one of the merged contiguous regions or the combined region.

14 . The computing device of claim 13 , wherein the actions comprise:

receiving, via the graphical user interface, one or more selections of middleware and driver components.

15 . The computing device of claim 13 , wherein the graphical user interface presents automatically suggested or automatically chosen components.

16 . The computing device of claim 13 , wherein the graphical user interface presents configurable parameters and possible values for selected components.

17 . The computing device of claim 13 , wherein the actions comprise:

updating and presenting a global map, based on the content, that centralizes user selections and settings for the programmable computing device.

18 . The computing device of claim 13 , wherein the actions comprise:

generating initialization code that initializes the programmable computing device to store data based on at least the merged contiguous regions and the combined region.