IP Library Granted Patent US 12,190,123
Granted Patent B2
US 12,190,123 · App. 17/898,312 · Granted Jan 7, 2025

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

Inventors: Frederic Ruelle (Marigné-Laillé, FR); Laurent Meunier (Coulaines, FR); Bechir Jabri (Ariana, TN); Emmanuel Grandin (Villeneuve-en-Retz, FR); Nabil Safi (Ariana, TN); Ghaith Oueslati (Tinja, TN); Yohann Martiniault (Val d'ize, FR); Jerome Caillet (Betton, FR)
Assignees: STMicroelectronics France; 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,190,123
App. No.
17/898,312
Granted
Jan 7, 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 (121)

1. A method, comprising:

presenting, by a host computing device via a graphical user interface to a user, a list of states for a project associated with a programmable computing device;

receiving, by the host computing device via the graphical user interface, a first selection of a first user-selected state for the project from the list of states;

receiving, by the host computing device via the graphical user interface, a second selection of a second user-selected state for the project;

generating, by the host computing device, a transition between the first user-selected state to the second user-selected state;

generating or updating, by the host computing device, a settings registry based on the first user-selected state, the second user-selected state, and the generated transitions between the first user-selected state and the second user-selected state; and

generating, by the host computing device, content for the programmable computing device based on the settings registry.

2. The method of claim 1 , comprising:

providing the content to the programmable computing device.

3. The method of claim 1 , wherein receiving the first selection of the first user-selected state for the project from the list of states comprises:

receiving, via the graphical user interface, a user input selecting a defined state of the programmable computing device.

4. The method of claim 1 , wherein receiving the first selection of the first user-selected state for the project from the list of states comprises:

receiving, via the graphical user interface, a user input selecting a system state of the programmable computing device.

5. The method of claim 1 , wherein receiving the first selection of the first user-selected state for the project from the list of states comprises:

receiving, via the graphical user interface, a user input selecting a domain state of the programmable computing device.

6. The method of claim 1 , wherein receiving the second selection of the second user-selected state for the project comprises:

receiving, via the graphical user interface, a user input defining a state of the programmable computing device.

7. The method of claim 1 , wherein generating the transition from the first user-selected state to the second user-selected state comprises:

selecting, by the host device, at least one defined transition constraint for at least one execution element associated with the second user-selected state for transitioning from the first user-selected state to the second user-selected state.

8. The method of claim 1 , wherein generating the transition from the first user-selected state to the second user-selected state comprises:

receiving, by the host device, at least one user-defined transition constraint for at least one execution element associated with the second user-selected state for transitioning from the first user-selected state to the second user-selected state.

9. The method of claim 1 , comprising:

receiving, by the programmable computing device, a request to proceed from the first user-selected state to the second user-selected state; and

transitioning, by the programmable computing device, the programmable computing device from the first user-selected state to the second user-selected state based on the generated transitions.

10. The method of claim 9 , wherein transitioning the programmable computing device from the first user-selected state to the second user-selected comprises:

selecting, by the programmable computing device, each execution element associated with the second user-selected state;

obtaining, by the programmable computing device, a configuration for each execution element;

resetting, by the programmable computing device, each execution element to an initial state; and

applying, by the programmable computing device, the configuration for each execution element from the initial state to the second user-selected state.

11. The method of claim 9 , wherein transitioning the programmable computing device from the first user-selected state to the second user-selected comprises:

selecting, by the programmable computing device, each execution element associated with the second user-selected state;

determining, by the programmable computing device, a configuration difference for each execution element between the first user-selected state and the second user-selected state;

applying, by the programmable computing device, at least one transition constraint for at least one configuration difference for at least one execution element; and

applying, by the programmable computing device, the configuration differences for each execution element from the first user-selected state to the second user-selected state.

12. A system, comprising:

a programmable computing device comprising:

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

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

receive content configuring a first user-selected state, a second user-selected state, and transitions between the first user-selected state and the second user-selected state;

receive a request to proceed from the first user-selected state to the second user-selected state; and

transition the programmable computing device from the first user-selected state to the second user-selected state based on the transitions; and

a host computing device comprising:

a display device;

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

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

present, via the display device, a list of states for a project associated with the programmable computing device;

receive a first selection of the first user-selected state for the project from the list of states;

receive a second selection of the second user-selected state for the project;

generate the transitions from the first user-selected state to the second user-selected state;

generate a settings registry based on the first user-selected state, the second user-selected state, and the transitions between the first user-selected state and the second user-selected state; and

generate the content for the programmable computing device based on the settings registry.

13. The system of claim 12 , wherein the at least one second processor of the host computing device, which, in operation, receives the first selection of the first user-selected state for the project from the list of states by executing the second computer instructions to:

receive a user input selecting a defined state of the programmable computing device.

14. The system of claim 12 , wherein the at least one second processor of the host computing device, which, in operation, receives the first selection of the first user-selected state for the project from the list of states by executing the second computer instructions to:

receive a user input selecting a system state of the programmable computing device.

15. The system of claim 12 , wherein the at least one second processor of the host computing device, which, in operation, generates the transition from the first user-selected state to the second user-selected state by executing the second computer instructions to:

receive at least one user-defined transition constraint for at least one execution element associated with the second user-selected state for transitioning from the first user-selected state to the second user-selected state.

16. The system of claim 12 , wherein the at least one first processor of the programmable computing device, which, in operation, transitions the programmable computing device from the first user-selected state to the second user-selected by executing the first computer instructions to:

select each execution element associated with the second user-selected state;

obtain a configuration for each execution element;

reset each execution element to an initial state; and

apply the configuration for each execution element from the initial state to the second user-selected state.

17. The system of claim 12 , wherein the at least one first processor of the programmable computing device, which, in operation, transitions the programmable computing device from the first user-selected state to the second user-selected by executing the first computer instructions to:

select each execution element associated with the second user-selected state;

determine a configuration difference for each execution element between the first user-selected state and the second user-selected state;

apply at least one transition constraint for at least one configuration difference for at least one execution element; and

apply the configuration differences for each execution element from the first user-selected state to the second user-selected state.

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

presenting, via a graphical user interface to a user, a list of states for a project associated with a programmable computing device;

receiving, via the graphical user interface, a first selection of a first user-selected state for the project from the list of states;

receiving, via the graphical user interface, a second selection of a second user-selected state for the project;

generating a transition from the first user-selected state to the second user-selected state;

maintain a settings registry based on the first user-selected state, the second user-selected state, and the generated transitions between the first user-selected state and the second user-selected state; and

generating content for the programmable computing device based on the settings registry.

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

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

providing the content to the programmable computing device.

21. The non-transitory computer-readable medium of claim 18 , wherein receiving the first selection of the first user-selected state for the project from the list of states comprises:

receiving, via the graphical user interface, a user input selecting a defined state of the programmable computing device;

receiving, via the graphical user interface, a user input selecting a system state of the programmable computing device;

receiving, via the graphical user interface, a user input selecting a domain state of the programmable computing device; or

combinations thereof.

22. The non-transitory computer-readable medium of claim 18 , wherein receiving the second selection of the second user-selected state for the project comprises:

receiving, via the graphical user interface, a user input defining a state of the programmable computing device.

23. The non-transitory computer-readable medium of claim 18 , wherein generating the transition from the first user-selected state to the second user-selected state comprises:

selecting at least one defined transition constraint for at least one execution element associated with the second user-selected state for transitioning from the first user-selected state to the second user-selected state.

24. The non-transitory computer-readable medium of claim 18 , wherein generating the transition from the first user-selected state to the second user-selected state comprises:

receiving at least one user-defined transition constraint for at least one execution element associated with the second user-selected state for transitioning from the first user-selected state to the second user-selected state.

25. A non-transitory computer-readable medium having contents that configure a microcontroller of a programmable computing device to perform a method, the method comprising:

receiving content configuring a first user-selected state, a second user-selected state, and transitions between the first user-selected state and the second user-selected state;

receiving a request to proceed from the first user-selected state to the second user-selected state; and

transitioning the programmable computing device from the first user-selected state to the second user-selected state based on the received content by:

selecting each execution element associated with the second user-selected state;

determining a configuration difference for each execution element between the first user-selected state and the second user-selected state;

applying at least one transition constraint for at least one configuration difference for at least one execution element; and

applying the configuration differences for each execution element from the first user-selected state to the second user-selected state.

26. The non-transitory computer-readable medium of claim 25 , wherein transitioning the programmable computing device from the first user-selected state to the second user-selected comprises:

selecting, by the programmable computing device, each execution element associated with the second user-selected state;

obtaining, by the programmable computing device, a configuration for each execution element;

resetting, by the programmable computing device, each execution element to an initial state; and

applying, by the programmable computing device, the configuration for each execution element from the initial state to the second user-selected state.

27. The non-transitory computer-readable medium of claim 25 , wherein transitioning the programmable computing device from the first user-selected state to the second user-selected comprises:

selecting, by the programmable computing device, each execution element associated with the second user-selected state;

determining, by the programmable computing device, a configuration difference for each execution element between the first user-selected state and the second user-selected state;

applying, by the programmable computing device, at least one transition constraint for at least one configuration difference for at least one execution element; and

applying, by the programmable computing device, the configuration differences for each execution element from the first user-selected state to the second user-selected state.

28. 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:

present, via a display device, a list of states for a project associated with a programmable computing device;

receive a first selection of a first user-selected state for the project from the list of states;

receive a second selection of a second user-selected state for the project;

generate transitions from the first user-selected state to the second user-selected state;

generate a settings registry based on the first user-selected state, the second user-selected state, and the transitions between the first user-selected state and the second user-selected state; and

generate content for the programmable computing device based on the settings registry.

29. The computing device of claim 28 , wherein the at least one processor, which, in operation, receives the first selection of the first user-selected state for the project from the list of states by executing the computer instructions to:

receive a user input selecting a defined state of the programmable computing device.

30. The computing device of claim 28 , wherein the at least one processor, which, in operation, receives the first selection of the first user-selected state for the project from the list of states by executing the computer instructions to:

receive a user input selecting a system state of the programmable computing device.

31. The computing device of claim 28 , wherein the at least one processor, which, in operation, generates the transition from the first user-selected state to the second user-selected state by executing the computer instructions to:

receive at least one user-defined transition constraint for at least one execution element associated with the second user-selected state for transitioning from the first user-selected state to the second user-selected state.

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 Mar 21, 2023
From: RUELLE, FREDERIC; MEUNIER, LAURENT; GRANDIN, EMMANUEL; CAILLET, JEROME
To: STMICROELECTRONICS (GRAND OUEST) SAS
Reel/Frame 063045/0804 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2023
From: JABRI, BECHIR; SAFI, NABIL; OUESLATI, GHAITH
To: STMICROELECTRONICS SA
Reel/Frame 063045/0823 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2023
From: MARTINIAULT, YOHANN
To: STMICROELECTRONICS (GRAND OUEST) SAS
Reel/Frame 063045/0842 →
Continuity (4)
Provisional Application 63310039 · Feb 14, 2022
Provisional Application 63310041 · Feb 14, 2022
Provisional Application 63239342 · Aug 31, 2021
Related Publication 20230080696A1 · Mar 16, 2023
References Cited (34)
US 5812394A · Lewis et al. · 1998 [cited by applicant]
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 · 2014 [cited by examiner]
US 8701080B2 · Tripathi · 2014 [cited by applicant]
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 et al. · 2022 [cited by applicant]
US 20060164453A1 · Silverbrook et al. · 2006 [cited by applicant]
US 20070130548A1 · Zhaksilikov et al. · 2007 [cited by applicant]
US 20070165765A1 · Ogami · 2007 [cited by examiner]
US 20080244520A1 · Hashimoto · 2008 [cited by examiner]
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 applicant]
US 20200387352A1 · Chawla et al. · 2020 [cited by applicant]
US 20200387357A1 · Mathon et al. · 2020 [cited by applicant]
US 20200396225A1 · Bhatia et al. · 2020 [cited by applicant]
US 20210209003A1 · Kowkutla et al. · 2021 [cited by applicant]
US 20220261139A1 · Phoutchanthavongsa et al. · 2022 [cited by applicant]
US 20230075227A1 · Grandin et al. · 2023 [cited by applicant]
US 20230078144A1 · 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 examiner]
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 examiner]
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 examiner]
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 examiner]