Systems and methods for reprogramming an embedded device with program code using relocatable program code
First Claim
1. A system for preparing program code for an embedded microcontroller wherein the system is executable by a host computer and not executable by the embedded microcontroller, the system comprising:
- relocatable microcontroller program code executable by the embedded microcontroller, the relocatable microcontroller program code being stored on the host computer;
a memory address identifying a memory location in the embedded microcontroller with an area sufficient to store the relocatable microcontroller program code for execution by the embedded microcontroller wherein the memory address is used as a basis for modifying the relocatable microcontroller program code to place the relocatable microcontroller program code in the area on the embedded microcontroller;
a relocation table identifying addresses in the relocatable microcontroller program code to be adjusted based on the memory address;
a relocating module executable by the host computer and not executable by the embedded microcontroller, the relocating module adapted to relocate the relocatable microcontroller program code to the area by modifying the addresses in the relocatable microcontroller program code identified by the relocation table, the modifications being based on the memory address.
4 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are disclosed for preparing program code for a first computer, wherein the systems and methods are implemented on a second computer. The systems include a relocating module that is adapted to relocate program code by modifying locations in the program code identified by location data. The modifications made by the relocating module are based on a memory address. The systems operate on program code for the first computer, where the program code is stored on the second computer. The relocating module is provided the memory address that identifies a memory location in the first computer. The memory address is suitable as a basis for modifying the program code. The relocating module is also provided with location data that identifies locations in the program code to be adjusted based on the memory address. A method practiced in accordance with the disclosed embodiments includes the steps of obtaining the program code; obtaining the memory address; obtaining the location data; and modifying the locations in the program code identified by the location data, by using the memory address and by using the location data, where the modifying step is accomplished at the second computer. One or more computer programs for implementing the described systems and/or methods may be embodied in a computer-readable medium.
234 Citations
24 Claims
-
1. A system for preparing program code for an embedded microcontroller wherein the system is executable by a host computer and not executable by the embedded microcontroller, the system comprising:
-
relocatable microcontroller program code executable by the embedded microcontroller, the relocatable microcontroller program code being stored on the host computer;
a memory address identifying a memory location in the embedded microcontroller with an area sufficient to store the relocatable microcontroller program code for execution by the embedded microcontroller wherein the memory address is used as a basis for modifying the relocatable microcontroller program code to place the relocatable microcontroller program code in the area on the embedded microcontroller;
a relocation table identifying addresses in the relocatable microcontroller program code to be adjusted based on the memory address;
a relocating module executable by the host computer and not executable by the embedded microcontroller, the relocating module adapted to relocate the relocatable microcontroller program code to the area by modifying the addresses in the relocatable microcontroller program code identified by the relocation table, the modifications being based on the memory address. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system for preparing program code for an embedded computer wherein the system is executable by a host computer and not executable by the embedded computer, the system comprising:
-
an embedded computer, the embedded computer having an embedded microcontroller, and the embedded computer also having an embedded computer memory;
a host computer, the host computer having a host computer processor, the host computer also having a host computer memory, the host computer being in electronic communication with the embedded computer;
relocatable microcontroller program code executable by the embedded microcontroller, the relocatable microcontroller program code being stored on the host computer;
a memory address identifying a memory location in the embedded computer memory with an area sufficient to store the relocatable microcontroller program code for execution by the embedded microcontroller, wherein the memory address is used as a basis for modifying memory references within the relocatable microcontroller program code;
a list of the memory references in the relocatable microcontroller program code to be adjusted based on the memory address;
a relocating module executable by the host computer and not executable by the embedded computer, the relocating module adapted to relocate the relocatable microcontroller program code by modifying the memory references in the reloctable microcontroller program code identified by the list wherein the modifying is based on the memory address, the relocating module thereby creating modified relocatable microcontroller program code. - View Dependent Claims (7, 8, 9)
-
-
10. A computer-readable medium containing instructions for preparing relocatable microcontroller program code for an embedded microcontroller wherein the instructions are executable by a host computer and not executable by the embedded microcontroller, wherein the instructions comprise executable instructions for implementing a method comprising:
-
obtaining the relocatable microcontroller program code from a storage device of the host computer;
obtaining a memory address identifying a memory location in the embedded microcontroller with an area sufficient to store the relocatable microcontroller program code for execution by the embedded microcontroller wherein the memory address is used as a basis for modifying the relocatable microcontroller program code to place the relocatable microcontroller program code in the area on the embedded microcontroller;
obtaining a relocation table identifying addresses in the relocatable microcontroller program code to be adjusted based on the memory address; and
modifying the addresses in the relocatable microcontroller program code identified by the relocation table, by using the memory address and by using the relocation table, the modifying step being accomplished on the host computer. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. In a computer system including an embedded microcontroller and a host computer, the embedded microcontroller being in electronic communication with the host computer, a method for preparing relocatable microcontroller program code for the embedded microcontroller wherein the method will be executable by the host computer and not by the embedded microcontroller, the method comprising the steps of:
-
obtaining the relocatable microcontroller program code from a storage device of the host computer;
obtaining a memory address identifying a memory location in the embedded microcontroller with an area sufficient to store the relocatable microcontroller program code for execution by the embedded computer wherein the memory address is used as a basis for modifying the relocatable microcontroller program code to place the relocatable microcontroller program code in the area on the embedded microcontroller;
obtaining a relocation table identifying addresses in the relocatable microcontroller program code to be adjusted based on the memory address; and
modifying the addresses in the relocatable microcontroller program code identified by the relocation table, by using the memory address and by using the relocation table, the modifying step being accomplished on the host computer. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
Specification