IP Library Granted Patent US 10,025,602
Granted Patent B2
US 10,025,602 · App. 14/730,009 · Granted Jul 17, 2018

Prelinked embedding

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 10,025,602
App. No.
14/730,009
Granted
Jul 17, 2018
Kind
B2
Abstract

This application discloses a computing system configured to perform a pre-linked embedding process during build-time of a root-kernel application. The computing system can pre-link one or more dynamically-linkable executable modules against exported symbols of a root-kernel image, and embed the pre-linked executable modules into the root-kernel image. The computing system can load the root-kernel image having the embedded pre-linked executable modules into a memory of an embedded system, wherein at least one processing device in the embedded system is configured to execute the embedded pre-linked executable modules directly from the memory.

Claims (28)

1. A method comprising:

parsing, by a computing system, a first available read-only memory address and a first available writable memory address from a root-kernel image;

identifying, by the computing system, exported symbols of the root-kernel image;

pre-linking, by the computing system, one or more dynamically-linkable executable modules against the exported symbols of the root-kernel image to generate pre-linked executable modules;

inserting, by the computing system, the pre-linked executable modules into the root-kernel image, which embeds the pre-linked executable modules in the root-kernel image to generate a pre-linked embedded root-kernel image; and

loading, by the computing system, a first portion of the pre-linked embedded root-kernel image into a read-only portion of a memory in an embedded system based on the read-only memory address, and loading a second portion of the pre-linked embedded root-kernel image into a writable portion of the memory in the embedded system based on the writable memory address, wherein at least one processing device in the embedded system is configured to execute the embedded pre-linked executable modules directly from the memory.

2. The method of claim 1 , further comprising receiving, by the computing system, a process description script configured to identify the one or more dynamically-linked executable modules to embed in the root-kernel image, wherein the pre-linking of the one or more processes is performed based, at least in part, on the process description script.

3. The method of claim 1 , wherein the dynamically-linked executable modules include at least one of an application or a library module included in an object file.

4. The method of claim 1 , further comprising generating, by the computing system, a placeholder in the root-kernel image, wherein inserting the pre-linked executable modules into the root-kernel image further comprises replacing the placeholder in the root-kernel image with binary code including the pre-linked executable modules.

5. A system comprising:

a non-transitory memory system configured to store computer-executable instructions; and

a computing system, in response to execution of the computer-executable instructions, is configured to:

parse a first available read-only memory address and a first available writable memory address from a root-kernel image;

identify exported symbols of the root-kernel image;

pre-link one or more dynamically-linkable executable modules against the exported symbols of the root-kernel image to generate pre-linked executable modules;

insert the pre-linked executable modules into the root-kernel image, which embeds the pre-linked executable modules in the root-kernel image to generate a pre-linked embedded root-kernel image; and

load a first portion of the pre-linked embedded root-kernel image into a read-only portion of a memory in an embedded system based on the read-only memory address, and loading a second portion of the pre-linked embedded root-kernel image into a writable portion of the memory in the embedded system based on the writable memory address, wherein at least one processing device in the embedded system is configured to execute the embedded pre-linked executable modules directly from the memory.

6. The system of claim 5 , wherein the computing system, in response to execution of the computer-executable instructions, is further configured to identify the one or more dynamically-linkable executable modules to embed in the root-kernel image based, at least in part, on a process description script.

7. The system of claim 5 , wherein the computing system, in response to execution of the computer-executable instructions, is further configured to generate a placeholder in the root-kernel image, and insert the pre-linked executable modules into the root-kernel image by replacing the placeholder in the root-kernel image with binary code including the pre-linked executable modules.

8. An apparatus comprising at least one non-transitory computer-readable memory device storing instructions configured to cause one or more processing devices to perform operations comprising:

parsing a first available read-only memory address and a first available writable memory address from a root-kernel image;

identifying exported symbols of the root-kernel image;

pre-linking one or more dynamically-linkable executable modules against the exported symbols of the root-kernel image to generate pre-linked executable modules;

inserting the pre-linked executable modules into the root-kernel image, which embeds the pre-linked executable modules in the root-kernel image to generate a pre-linked embedded root-kernel image; and

loading a first portion of the pre-linked embedded root-kernel image into a read-only portion of a memory in an embedded system based on the read-only memory address, and loading a second portion of the pre-linked embedded root-kernel image into a writable portion of the memory in the embedded system based on the writable memory address, wherein at least one processing device in the embedded system is configured to execute the embedded pre-linked executable modules directly from the memory.

9. The apparatus of claim 8 , wherein the instructions are configured to cause the one or more processing devices to perform operations further comprising identifying the one or more dynamically-linked executable modules to embed in the root-kernel image based, at least in part, on the process description script.

10. The apparatus of claim 8 , wherein the dynamically-linked executable modules include at least one of an application or a library module included in an object file.

11. The apparatus of claim 8 , wherein the instructions are configured to cause the one or more processing devices to perform operations further comprising generating a placeholder in the root-kernel image, wherein inserting the pre-linked executable modules into the root-kernel image further comprises replacing the placeholder in the root-kernel image with binary code including the pre-linked executable modules.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Jun 24, 2021
From: MENTOR GRAPHICS CORPORATION; SIEMENS INDUSTRY SOFTWARE INC.
To: SIEMENS INDUSTRY SOFTWARE INC.
Reel/Frame 056675/0285 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 29, 2016
From: AHMAD, IRFAN
To: MENTOR GRAPHICS CORPORATION
Reel/Frame 037852/0483 →