IP Library Granted Patent US 7,647,583
Granted Patent B2
US 7,647,583 · App. 10/249,938 · Granted Jan 12, 2010

Method and apparatus for emulating a hardware/software system using a computer

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 7,647,583
App. No.
10/249,938
Granted
Jan 12, 2010
Kind
B2
Abstract

A platform for running embedded software using an inexpensive standard personal computer is disclosed. A particular embodiment includes a compiler assist component and a runtime component. The compiler assist component operates in conjunction with a standard personal computer compiler to compile an embedded system application to run on a conventional personal computer. The runtime component executes on the personal computer and operates in conjunction with the standard operating system drivers to allow an emulated system to communicate with real hardware connected to the personal computer or to virtual hardware that is simulated on the personal computer.

Claims (64)

1. A method comprising:

providing a first operating system configured to operate in a first computer system;

providing first computer code configured to operate on top of said first operating system, said first operating system being configured to control physical input/output devices on the first computer system via first device drivers in the first computer code;

providing a second operating system, different from the first operating system, configured to operate in a second computer system, said second operating system being configured to control physical input/output devices on the second computer system via second device drivers;

providing an executable runtime component configured to take control of the physical input/output devices on the second computer system from the second operating system using the second device drivers that are normally controlled by the second operating system;

modifying said first computer code by replacing the first device drivers in said first computer code with substituted device drivers, the substituted device drivers being configured to call said executable runtime component at runtime;

executing said first operating system and said modified first computer code on top of said second operating system in said second computer system; and

using said executable runtime component to bypass said second operating system and to take control of the physical input/output devices on the second computer system using the second device drivers that are normally controlled by the second operating system when said modified first computer code executes said substituted device drivers.

2. The method of claim 1 wherein replacing the first device drivers in said first computer code includes:

searching said first computer code for device drivers;

searching a list containing names of device drivers and names of corresponding substitute device drivers;

finding a match between a name of the first device drivers and a name of corresponding substitute device drivers from said list; and

replacing the first device drivers with the substitute device drivers that correspond to said matched substitute device drivers from said list.

3. The method of claim 1 wherein replacing the first device drivers in said first computer code includes:

searching said first computer code for device drivers;

searching a list containing descriptions of device drivers and names of corresponding substitute device drivers;

finding a match between a description of the first device drivers and a name of corresponding substitute device drivers from said list; and

replacing the first device drivers with the substitute device drivers that correspond to said matched substitute device drivers from said list.

4. The method of claim 1 , including:

searching said first computer code for calls to device drivers; and

substituting said calls to device drivers with calls to said executable runtime component.

5. An article of manufacture comprising at least one machine readable storage medium having one or more computer programs stored thereon and operable on one or more computing systems to:

provide a first operating system configured to operate in a first computer system;

provide first computer code configured to operate on top of said first operating system, said first operating system being configured to control physical input/output devices on the first computer system via first device drivers in the first computer code;

provide a second operating system, different from the first operating system, configured to operate in a second computer system, said second operating system being configured to control physical input/output devices on the second computer system via second device drivers;

provide an executable runtime component configured to take control of the physical input/output devices on the second computer system from the second operating system using the second device drivers that are normally controlled by the second operating system;

modify said first computer code by replacing the first device drivers in said first computer code with substituted device drivers, the substituted device drivers being configured to call said executable runtime component at runtime;

execute said first operating system and said modified first computer code on top of said second operating system in said second computer system; and

use said executable runtime component to bypass said second operating system and to take control of the physical input/output devices on the second computer system using the second device drivers that are normally controlled by the second operating system when said modified first computer code executes said substituted device drivers.

6. The article of manufacture as claimed in claim 5 being further configured to:

search said first computer code for device drivers;

search a list containing names of device drivers and names of corresponding substitute device drivers;

find a match between a name of the first device drivers and a name of corresponding substitute device drivers from said list; and

replace the first device drivers with the substitute device drivers that correspond to said matched substitute device drivers from said list.

7. The article of manufacture as claimed in claim 5 being further configured to:

search said first computer code for device drivers;

search a list containing descriptions of device drivers and names of corresponding substitute device drivers;

find a match between a description of the first device drivers and a name of corresponding substitute device drivers from said list; and

replace the first device drivers with the substitute device drivers that corresponds to said matched substitute device drivers from said list.

8. The article of manufacture as claimed in claim 5 being further configured to:

search said first computer code for calls to device drivers; and

substitute said calls to device drivers with calls to said executable runtime component.

9. A computing apparatus comprising:

a first computer system;

a second computer system;

a first operating system, being executable on the first computer system;

first computer code, being configured to operate on top of the first operating system, said first operating system being configured to control physical input/output devices on the first computer system via first device drivers in the first computer code;

a second operating system, different from the first operating system, configured to operate in the second computer system, said second operating system being configured to control physical input/output devices on the second computer system via second device drivers;

an executable runtime component, being configured to take control of the physical input/output devices on the second computer system from the second operating system using the second device drivers that are normally controlled by the second operating system;

a code modification component, being configured to modify said first computer code by replacing the first device drivers in said first computer code with substituted device drivers, the substituted device drivers being configured to call said executable runtime component at runtime; and

said executable runtime component being used to bypass said second operating system and to take control of the physical input/output devices on the second computer system using the second device drivers that are normally controlled by the second operating system when said modified first computer code executes said substituted device drivers.

10. The computing apparatus as claimed in claim 9 being further configured to:

search said first computer code for device drivers;

search a list containing names of device drivers and names of corresponding substitute device drivers;

find a match between a name of the first device drivers and a name of corresponding substitute device drivers from said list; and

replace the first device drivers with the substitute device drivers that correspond to said matched substitute device drivers from said list.

11. The computing apparatus as claimed in claim 9 being further configured to:

search said first computer code for device drivers;

search a list containing descriptions of device drivers and names of corresponding substitute device drivers;

find a match between a description of the first device drivers and a name of corresponding substitute device drivers from said list; and

replace the first device drivers with the substitute device drivers that corresponds to said matched substitute device drivers from said list.

12. The computing apparatus as claimed in claim 9 being further configured to:

search said first computer code for calls to device drivers; and

substitute said calls to device drivers with calls to said executable runtime component.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2025
From: ZT IP, LLC
To: ZT IP II LLC
Reel/Frame 071668/0650 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2022
From: ZEIDMAN TECHNOLOGIES INC
To: ZT IP, LLC
Reel/Frame 059388/0196 →