IP Library Granted Patent US 12,288,080
Granted Patent B2
US 12,288,080 · App. 17/898,288 · Granted Apr 29, 2025

Method, system, and device for software and hardware component configuration and content generation

Inventors: Emmanuel Grandin (Villeneuve-en-Retz, FR); Nabil Safi (Cite Ghazela, TN); Maxime Dortel (Grasse, FR); Laurent Meunier (Coulaines, FR); Frederic Ruelle (Marigné-Laillé, FR)
Assignees: STMicroelectronics France; STMICROELECTRONICS (ROUSSET) SAS; STMicroelectronics (Grand Quest) SAS
G06F9/44505G06F3/0482G06F9/4403G06F9/4411G06F9/451
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,288,080
App. No.
17/898,288
Granted
Apr 29, 2025
Kind
B2
Abstract

System, method, and circuitry for generating content for a programmable computing device based on user-selected configuration information. A settings registry is generated based on the user's selections. The settings registry and the user selected configuration information is utilized to generate the content, such as code, data, parameters, settings, etc. When the content is provided to the programmable computing device, the content initializes, configures, or controls one or more software and hardware aspects of the programmable computing device, such as boot sequence configurations, internal peripheral configurations, states of the programmable computing device, transitions between states of the programmable computing device, etc., and various combinations thereof.

Claims (126)

1. A method performed by a processing device, the method comprising:

presenting, via a graphical user interface to a user, a list of a plurality of hardware components of a programmable computing device for a project associated with the programmable computing device, wherein the programmable computing device is separate from the processing device;

receiving, via the graphical user interface, a first selection of at least one user-selected hardware component for the project from the list of components;

in response to the at least one user-selected hardware component being configurable:

presenting, via the graphical user interface, a first list of user-selectable templates for the at least one user-selected hardware component;

receiving, via the graphical user interface, a second selection of at least one user-selected template from the first list of user-selectable templates;

presenting, via the graphical user interface, a second list of user-selectable parameters for the at least one user-selected hardware component;

receiving, via the graphical user interface, a third selection of at least one user-selected parameter from the second list of user-selectable parameters;

generating settings for the at least one user-selected hardware component based on the second selection of the at least one user-selected template and the third selection of the at least one user-selected parameter; and

generating or updating a settings registry for the programmable computing device based on the settings for each of the at least one user-selected hardware component;

generating content for the plurality of hardware components of the programmable computing device based on the at least one user-selected hardware component and the settings registry; and

providing the content to the programmable computing device.

2. The method of claim 1 , wherein,

the content is provided to the programmable computing device via a programmable interface of the programmable computing device.

3. The method of claim 1 , wherein generating the content comprises:

generating initialization code that initializes software of the programmable computing device based on the at least one user-selected hardware component and the settings registry.

4. The method of claim 1 , wherein generating the content comprises:

generating initialization code that initializes hardware of the programmable computing device based on the at least one user-selected hardware component and the settings registry.

5. The method of claim 1 , wherein generating the content comprises:

generating application code that controls software of the programmable computing device based on the at least one user-selected hardware component and the settings registry.

6. The method of claim 1 , wherein receiving the third selection of the at least one user-selected parameter comprises:

receiving, via the graphical user interface, one or more values selected by the user and defined by the at least one user-selected parameter.

7. The method of claim 1 , comprising:

in response to receiving the third selection of the at least one user-selected parameter:

detecting a change to a first value in the settings registry based on the third selection; and

propagating the change through the settings registry based on at least one dependency between the first value and at least one second value in the settings registry.

8. The method of claim 1 , comprising:

in response to receiving the third selection of the at least one user-selected parameter:

detecting a change to a first value in the settings registry based on the third selection; and

prior to propagating the change through the settings registry, updating the graphical user interface to show changes to at least one second value in the settings registry that is dependent on the first value.

9. The method of claim 1 , comprising:

selecting the second list of user-selectable parameters based on the second selection of the at least one user-selected template.

10. The method of claim 1 , comprising:

in response to the at least one user-selected hardware component being non-configurable:

generating settings for the at least one user-selected hardware component based on the second selection of the at least one user-selected template and the third selection of the at least one user-selected parameter; and

updating the settings registry based on additional settings for at least one user-selected non-configurable hardware component.

11. The method of claim 1 , wherein generating the content comprises:

generating application content that controls software of the programmable computing device based on the at least one user-selected hardware component and the settings registry.

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

displaying, via a graphical user interface to a user, a list of a plurality of hardware components of a programmable computing device for a project associated with the programmable computing device, wherein the processing device is separate from the programmable computing device;

receiving, via the graphical user interface, a first selection of at least one user-selected hardware component for the project from the list of components;

in response to the at least one user-selected hardware component being configurable:

displaying, via the graphical user interface, a first list of user-selectable templates for the at least one user-selected hardware component;

receiving, via the graphical user interface, a second selection of at least one user-selected template from the first list of user-selectable templates;

displaying, via the graphical user interface, a second list of user-selectable parameters for the at least one user-selected hardware component;

receiving, via the graphical user interface, a third selection of at least one user-selected parameter from the second list of user-selectable parameters;

generating settings for the at least one user-selected hardware component based on the second selection of the at least one user-selected template and the third selection of the at least one user-selected parameter; and

generating or updating a settings registry for the programmable computing device based on the settings for each of the at least one user-selected hardware component;

generating content for the plurality of hardware components of the programmable computing device based on the at least one user-selected hardware component and the settings registry; and

providing the generated content to the programmable computing device.

13. The non-transitory computer-readable medium of claim 12 , wherein,

the generated content is provided to the programmable computing device via a programmable interface of the programmable computing device.

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

in response to receiving the third selection of the at least one user-selected parameter:

detecting a change to a first value in the settings registry based on the third selection; and

propagating the change through the settings registry based on at least one dependency between the first value and at least one second value in the settings registry.

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

in response to receiving the third selection of the at least one user-selected parameter:

detecting a change to a first value in the settings registry based on the third selection;

updating the graphical user interface to show changes to at least one second value in the settings registry that is dependent on the first value; and

selectively propagating the change through the settings registry based on a user-response to the updated graphical user interface.

16. The non-transitory computer-readable medium of claim 12 , wherein generating the content includes:

generating initialization code that initializes software of the programmable computing device based on the at least one user-selected hardware component and the settings registry.

17. The non-transitory computer-readable medium of claim 12 , wherein generating the content includes:

generating initialization code that initializes hardware of the programmable computing device based on the at least one user-selected hardware component and the settings registry.

18. The non-transitory computer-readable medium of claim 12 , wherein generating the content includes:

generating application code that controls software of the programmable computing device based on the at least one user-selected hardware component and the settings registry.

19. The non-transitory computer-readable medium of claim 12 , wherein the contents of the computer-readable medium comprise instructions executable by the processing device.

20. A processing device, comprising:

a display device;

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

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

present, via the display device and to a user, a list of a plurality of hardware components of a programmable computing device for a project associated with the programmable computing device, the programmable computing device being separate from the processing device;

receive a first selection of at least one user-selected hardware component for the project from the list of hardware components;

in response to the at least one user-selected hardware component being configurable:

present, via the display device, a first list of user-selectable templates for the at least one user-selected hardware component;

receive a second selection of at least one user-selected template from the first list of user-selectable templates;

present, via the display device, a second list of user-selectable parameters for the at least one user-selected hardware component;

receive a third selection of at least one user-selected parameter from the second list of user-selectable parameters;

generate settings for the at least one user-selected hardware component based on the second selection of the at least one user-selected template and the third selection of the at least one user-selected parameter; and

generate or update a settings registry for the programmable computing device based on the settings for each of the at least one user-selected hardware component;

generate content for the plurality of hardware components of the programmable computing device based on the at least one user-selected hardware component and the settings registry; and

provide the generated content to the programmable computing device.

21. The processing device of claim 20 , wherein the at least one processor, in operation, executes the computer instructions to:

in response to receiving the third selection of the at least one user-selected parameter:

detect a change to a first value in the settings registry based on the third selection; and

propagate the change through the settings registry based on at least one dependency between the first value and at least one second value in the settings registry.

22. The processing device of claim 20 , wherein the at least one processor, in operation, executes the computer instructions to:

in response to receiving the third selection of the at least one user-selected parameter:

detect a change to a first value in the settings registry based on the third selection;

update a graphical user interface displayed to the user to show changes to at least one second value in the settings registry that is dependent on the first value; and

selectively propagating the change through the settings registry based on a user-response to the updated graphical user interface displayed to the user.

23. The processing device of claim 20 , wherein the at least one processor, in operation, executes the computer instructions to:

provide the content to the programmable computing device via a programmable interface of the programmable computing device.

24. The processing device of claim 20 , wherein the at least one processor, in operation, generates the content by executing the computer instructions to:

generate initialization code that initializes software of the programmable computing device based on the at least one user-selected hardware component and the settings registry.

25. The processing device of claim 20 , wherein the at least one processor, in operation, generates the content by executing the computer instructions to:

generate initialization code that initializes hardware of the programmable computing device based on the at least one user-selected hardware component and the settings registry.

26. The processing device of claim 20 , wherein the at least one processor, in operation, generates the content by executing the computer instructions to:

generate application code that controls software of the programmable computing device based on the at least one user-selected hardware component and the settings registry.

27. The processing device of claim 20 , wherein the at least one processor, in operation, generates the content by executing the computer instructions to:

generate initialization content that initializes software of the programmable computing device based on the at least one user-selected hardware component and the settings registry.

28. The processing device of claim 20 , wherein the at least one processor, in operation, generates the content by executing the computer instructions to:

generate initialization content that initializes hardware of the programmable computing device based on the at least one user-selected hardware component and the settings registry.

29. The computing device of claim 20 , wherein the at least one processor, in operation, generates the content by executing the computer instructions to:

generate application content that controls software of the programmable computing device based on the at least one user-selected hardware component and the settings registry.

30. A system, comprising:

a programmable computing device having a plurality of hardware components; and

a non-transitory computer-readable medium having contents, which, in operation, cause a processor separate from the programmable computing device to:

display, via a graphical user interface to a user, a list of the plurality of hardware components of the programmable computing device for a project associated with the programmable computing device;

receive, via the graphical user interface, a first selection of at least one user-selected hardware component for the project from the list of hardware components;

in response to the at least one user-selected hardware component being configurable:

display, via the graphical user interface, a first list of user-selectable templates for the at least one user-selected hardware component;

receive, via the graphical user interface, a second selection of at least one user-selected template from the first list of user-selectable templates;

display, via the graphical user interface, a second list of user-selectable parameters for the at least one user-selected hardware component;

receive, via the graphical user interface, a third selection of at least one user-selected parameter from the second list of user-selectable parameters;

generate settings for the at least one user-selected hardware component based on the second selection of the at least one user-selected template and the third selection of the at least one user-selected parameter; and

generate or update a settings registry for the programmable computing device based on the settings for each of the at least one user-selected hardware component;

generate content for the plurality of hardware components of the programmable computing device based on the at least one user-selected hardware component and the settings registry; and

provide the content to the programmable computing device.

31. The system of claim 30 , wherein the programmable computing device comprises:

a microprocessor which, in operation, executes the content to initialize software of the programmable computing device.

32. The system of claim 30 , wherein the programmable computing device comprises:

a microprocessor which, in operation, executes the content to initialize hardware of the programmable computing device.

33. The system of claim 30 , wherein the programmable computing device comprises:

a microprocessor which, in operation, executes the content as a software application of the programmable computing device.

Assignments (4)
CHANGE OF NAME Recorded Jan 10, 2024
From: STMICROELECTRONICS SA
To: STMICROELECTRONICS FRANCE
Reel/Frame 066254/0070 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2022
From: GRANDIN, EMMANUEL; MEUNIER, LAURENT; RUELLE, FREDERIC
To: STMICROELECTRONICS (GRAND OUEST) SAS
Reel/Frame 061855/0302 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2022
From: DORTEL, MAXIME
To: STMICROELECTRONICS (ROUSSET) SAS
Reel/Frame 061855/0396 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2022
From: SAFI, NABIL
To: STMICROELECTRONICS SA
Reel/Frame 061987/0524 →
Continuity (4)
Provisional Application 63310039 · Feb 14, 2022
Provisional Application 63310041 · Feb 14, 2022
Provisional Application 63239342 · Aug 31, 2021
Related Publication 20230075227A1 · Mar 9, 2023
References Cited (34)
US 5812394A · Lewis · 1998 [cited by examiner]
US 7433932B2 · Eifler et al. · 2008 [cited by applicant]
US 8135884B1 · Sullam et al. · 2012 [cited by applicant]
US 8592722B2 · Ulrich et al. · 2013 [cited by applicant]
US 8661401B1 · Ogami et al. · 2014 [cited by applicant]
US 8701080B2 · Tripathi · 2014 [cited by examiner]
US 9250299B1 · Yarlagadda et al. · 2016 [cited by applicant]
US 9650141B2 · Fagan et al. · 2017 [cited by applicant]
US 10643020B1 · Kukal et al. · 2020 [cited by applicant]
US 10739949B2 · Lattore Costa · 2020 [cited by applicant]
US 11316733B1 · Johnson · 2022 [cited by examiner]
US 20060164453A1 · Silverbrook et al. · 2006 [cited by applicant]
US 20070130548A1 · Zhaksilikov et al. · 2007 [cited by applicant]
US 20070165765A1 · Ogami et al. · 2007 [cited by applicant]
US 20080244520A1 · Hashimoto et al. · 2008 [cited by applicant]
US 20090094539A1 · Wang et al. · 2009 [cited by applicant]
US 20140323182A1 · Kim et al. · 2014 [cited by applicant]
US 20160267046A1 · Kris et al. · 2016 [cited by applicant]
US 20180225230A1 · Litichever et al. · 2018 [cited by applicant]
US 20190079575A1 · Hanson et al. · 2019 [cited by applicant]
US 20200125060A1 · Fujimura · 2020 [cited by examiner]
US 20200387352A1 · Chawla et al. · 2020 [cited by applicant]
US 20200387357A1 · Mathon · 2020 [cited by examiner]
US 20200396225A1 · Bhatia · 2020 [cited by examiner]
US 20210209003A1 · Kowkutla et al. · 2021 [cited by applicant]
US 20220261139A1 · Phoutchanthavongsa · 2022 [cited by examiner]
US 20230078144A1 · Ruelle et al. · 2023 [cited by applicant]
US 20230080696A1 · Ruelle et al. · 2023 [cited by applicant]
US 20230259474A1 · Le Corre · 2023 [cited by applicant]
US 20230342476A1 · Ziecik et al. · 2023 [cited by applicant]
Francesco Renzini et al., “A Fully Programmable eFPGA-Augmented SoC for Smart Power Applications”, Aug. 7, 2019, IEEE Transactions on Circuits and Systems, vol. 67, No. 2 pp. 489-501 (Year: 2019). [cited by applicant]
T. Giuma et al., “Programmable Hardware and the New Analog Capacity”, Apr. 1, 2007, International Conference on Systems, pp. 1-6 (Year: 2007). [cited by applicant]
Amaury Bruniaux et al., “Towards a Fully Programmable Internet of Things”, Oct. 10, 2022, 18th International Conference on Wireless and Mobile Computing—Networking and Communications, pp. 204-210 (Year: 2022). [cited by applicant]
M. Martina et al., “A new approach to compress the configuration information of programmable devices”, Jan. 1, 2006, Proceedings of Design Automation & Test in Europe Conference, vol. 2, pp. 1-4 (Year: 2006). [cited by applicant]