US12333276B2ActiveUtilityA1

Method, system, and circuit for generating toolchains agnostic linker scripts

61
Assignee: STMICROELECTRONICS FRANCEPriority: Oct 7, 2022Filed: Jun 14, 2024Granted: Jun 17, 2025
Est. expiryOct 7, 2042(~16.2 yrs left)· nominal 20-yr term from priority
Inventors:Tarek Bochkati
G06F 8/30G06F 9/44521G06F 8/54
61
PatentIndex Score
0
Cited by
15
References
20
Claims

Abstract

System, method, and circuitry for generating a linker model for use by a toolchain associated with a programmable computing device. One or more regions in the memory resources available to the programmable computing devices is defined for used by an application executing on the programmable computing device. One or more sections is defined for those regions for use by the application. Resource boundaries are generated for the application based on the defined regions and the defined sections. A user is enabled to modify the defined regions or the defined sections or the generated resource boundaries. A linker model is then generated based on the available memory resources, the defined regions, the defined sections, and the generated resource boundaries. This linker model is then utilized to generate a linker script for the programmable computing device based the linker syntax compatible with a toolchain linker for the programmable computing device.

Claims

exact text as granted — not AI-modified
The invention claimed is: 
     
       1. 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:
 determine memory resources available to a programmable computing device; 
 define one or more first regions in the memory resources used by a first application; 
 define one or more first sections in the one or more first regions for use by the first application; 
 define one or more second regions in the memory resources used by a second application; 
 define one or more second sections in the one or more first regions for use by the second application; 
 generate resource boundaries for the first application and the second application based on the one or more first sections and the one or more second sections; 
 modify the resource boundaries to resolve conflicts between the one or more first sections and the one or more second sections; 
 generate a linker model based on the memory resources, and the modified resource boundaries; and 
 generate a linker script for the programmable computing device based on the linker model and a linker syntax compatible with a toolchain linker for the programmable computing device. 
 
 
     
     
       2. The computing device of  claim 1 , wherein the at least one processor, which, in operation, executes the computer instructions to detect the conflicts between the one or more first sections and the one or more second sections. 
     
     
       3. The computing device of  claim 1 , wherein the conflicts between the one or more first sections and the one or more second sections comprise at least one of overlapping sections or overlapping regions. 
     
     
       4. The computing device of  claim 1 , wherein the at least one processor, which, in operation, executes the computer instructions to obtain a selection of the programmable computing device among a plurality of programmable computing devices via a graphical user interface. 
     
     
       5. The computing device of  claim 1 , wherein the at least one processor, which, in operation, executes the computer instructions to obtain a selection of at least one of the first application or second application among a plurality of applications via a graphical user interface. 
     
     
       6. The computing device of  claim 1 , wherein the memory resources available to a programmable computing device comprise at least one of ROM (Read-only Memory), RAM (Random Access Memory), CCMRAM (Core-coupled-memory RAM), Flash memory, or SRAM (Static RAM). 
     
     
       7. The computing device of  claim 1 , wherein the at least one processor, which, in operation, executes the computer instructions to display the memory resources available to the programmable computing device via a graphical user interface. 
     
     
       8. The computing device of  claim 7 , wherein the at least one processor, which, in operation, executes the computer instructions to display regions or sections that are previously defined, via the graphical user interface. 
     
     
       9. The computing device of  claim 8 , wherein the at least one processor, which, in operation, executes the computer instructions to display at least one of the generated resource boundaries or modified resource boundaries via the graphical user interface. 
     
     
       10. A method, comprising:
 determining memory resources available to a programmable computing device; 
 obtaining indication of one or more first regions in the memory resources used by a first application; 
 obtaining indication of one or more first sections in the one or more first regions for use by the first application; 
 obtaining indication of one or more second regions in the memory resources used by a second application; 
 obtaining indication of one or more second sections in the one or more first regions for use by the second application; 
 generating resource boundaries for the first application and the second application based on the one or more first sections and the one or more second sections; 
 modifying the resource boundaries to resolve conflicts between the one or more first sections and the one or more second sections; 
 generating a linker model based on the memory resources, and the modified resource boundaries; and 
 generating a linker script for the programmable computing device based on the linker model and a linker syntax compatible with a toolchain linker for the programmable computing device. 
 
     
     
       11. The method of  claim 10 , comprising detecting the conflicts between the one or more first sections and the one or more second sections. 
     
     
       12. The method of  claim 10 , wherein the conflicts between the one or more first sections and the one or more second sections comprise at least one of overlapping sections or overlapping regions. 
     
     
       13. The method of  claim 10 , comprising displaying the memory resources available to the programmable computing device via a graphical user interface. 
     
     
       14. The method of  claim 13 , comprising displaying regions or sections that are previously defined, via the graphical user interface. 
     
     
       15. The method of  claim 14 , comprising displaying at least one of the generated resource boundaries or modified resource boundaries via the graphical user interface. 
     
     
       16. A non-transitory computer-readable medium having contents that configure a computing device to perform a method, the method comprising:
 determining memory resources available to a programmable computing device; 
 obtaining indication of one or more first regions in the memory resources used by a first application; 
 obtaining indication of one or more first sections in the one or more first regions for use by the first application; 
 obtaining indication of one or more second regions in the memory resources used by a second application; 
 obtaining indication of one or more second sections in the one or more first regions for use by the second application; 
 generating resource boundaries for the first application and the second application based on the one or more first sections and the one or more second sections; 
 modifying the resource boundaries to resolve conflicts between the one or more first sections and the one or more second sections; 
 generating a linker model based on the memory resources, and the modified resource boundaries; and 
 generating a linker script for the programmable computing device based on the linker model and a linker syntax compatible with a toolchain linker for the programmable computing device. 
 
     
     
       17. The non-transitory computer-readable medium of  claim 16 , wherein the method comprises obtaining a selection of the programmable computing device among a plurality of programmable computing devices via a graphical user interface. 
     
     
       18. The non-transitory computer-readable medium of  claim 16 , wherein the method comprises obtaining a selection of at least one of the first application or second application among a plurality of applications via a graphical user interface. 
     
     
       19. The non-transitory computer-readable medium of  claim 16 , wherein the method comprises displaying regions or sections that are previously defined, via a graphical user interface. 
     
     
       20. The non-transitory computer-readable medium of  claim 16 , wherein the method comprises displaying at least one of the generated resource boundaries or modified resource boundaries via the graphical user interface.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.