Virtual machine for developing and testing target code for hardware designs
AssigneeThe Boeing Company
InventorJonathan Nicholas Hotra
Life of this patent
Estimating the term…
Abstract
A host computer includes a memory storing a proxy VM, and a host CPU. The proxy VM emulates target hardware having an incomplete design. The proxy VM includes a virtual processor for emulating a target processor. The proxy VM includes an emulated memory coupled to the virtual processor over a virtual memory bus. The emulated memory includes at least one portion storing the target code. The host CPU is configured to execute the proxy VM to emulate the target hardware. The proxy VM, upon execution by the host CPU, is configured to execute, by the virtual processor, the target code.
Claims23
A host computer comprising:
- a memory configured to store a proxy virtual machine (VM) for emulating target hardware having an incomplete design, the proxy VM including:
- an emulated Ethernet controller;
- a virtual processor for emulating a target processor;
- and
- emulated memory in communication with the virtual processor via a virtual memory bus, the emulated memory including at least one portion storing target code;
- and
- a host central processing unit (CPU) configured to:
- execute the proxy VM to emulate the target hardware, wherein the proxy VM, upon execution by the host CPU, is configured to execute, by the virtual processor, the target code to interact with at least the emulated Ethernet controller;
- and
- update the proxy VM to omit the emulated Ethernet controller and to include a target hardware I/O device, wherein the updated proxy VM is reconfigured to execute, by the virtual processor, the target code to interact with at least the target hardware I/O device.
A method of executing target code for target hardware having an incomplete design, the method comprising:
- executing a proxy virtual machine (VM) for emulating the target hardware for the incomplete design, the proxy VM including a virtual processor, an emulated memory, and a virtual communication interface comprising an emulated Ethernet controller;
- executing, within the proxy VM, the target code stored in the emulated memory to interact with at least the emulated Ethernet controller;
- gaining access to input data within the proxy VM;
- operating, by the target code, on the input data;
- writing output data over the virtual communication interface in response to execution of the target code;
- updating the virtual communication interface to omit the emulated Ethernet controller and to include a target hardware I/O device;
- and
- executing, within the proxy VM, the target code in the emulated memory to interact with at least the target hardware I/O device.
A non-transitory computer-readable memory storing a proxy virtual machine (VM) for emulating target hardware having an incomplete design, the proxy VM including:
- a virtual processor for emulating a target processor;
- emulated memory coupled to the virtual processor over a virtual memory bus, the emulated memory including at least one portion storing a board support package (BSP) and target code;
- and
- a virtual communication interface coupled to virtual processor via an emulated peripheral bus, wherein the virtual communication interface comprises an emulated Ethernet controller;
- wherein the proxy VM, upon execution by a host central processing unit (CPU), is configured to:
- execute the target code stored in the emulated memory to interact with at least the emulated Ethernet controller;
- gain access to input data within the proxy VM;
- operate, by the target code, on the input data;
- write output data over the virtual communication interface in response to execution of the target code;
- update the virtual communication interface to omit the emulated Ethernet controller and to include a target hardware I/O device;
- and
- execute the target code in the emulated memory to interact with at least the target hardware I/O device.
A host computer comprising:
- a memory configured to store a proxy virtual machine (VM) for emulating target hardware, the proxy VM including:
- a virtual communication interface comprising an emulated Ethernet controller;
- a virtual processor for emulating a target processor;
- and
- emulated memory coupled to the virtual processor over a virtual memory bus, the emulated memory including at least one portion storing target code;
- and
- a host central processing unit (CPU) configured to:
- execute the proxy VM to emulate the target hardware, wherein the proxy VM, upon execution by the host CPU, is configured to execute, by the virtual processor, the target code to interact with at least the emulated Ethernet controller;
- and
- update the virtual communication interface to omit the emulated Ethernet controller, wherein the updated proxy VM is reconfigured to execute the target code to interact with at least a target hardware I/O device.
A trainer system for a target hardware device, the trainer system comprising:
- a user interface configured to receive input data from a user;
- a host computer coupled to the user interface, the host computer comprising:
- a memory configured to store a proxy virtual machine (VM) for emulating the target hardware device, the proxy VM including:
- an emulated Ethernet controller;
- a virtual processor for emulating a target processor;
- and
- emulated memory coupled to the virtual processor over a virtual memory bus, the emulated memory including at least one portion storing target code;
- and
- a host central processing unit (CPU) configured to:
- execute the proxy VM to emulate the target hardware, wherein the proxy VM, upon execution by the host CPU, is configured to execute, by the virtual processor, the target code to interact with at least the emulated Ethernet controller;
- and
- update the proxy VM to omit the emulated Ethernet controller and to include a target hardware I/O device, wherein the updated proxy VM is reconfigured to execute the target code to interact with at least the target hardware I/O device.
A test bench for an embedded system, the test bench comprising:
- a host computer comprising:
- a host communication interface configured to receive input test data;
- a memory configured to store a proxy virtual machine (VM) for emulating a target hardware device having an incomplete design, the proxy VM including:
- an emulated Ethernet controller;
- a virtual processor for emulating a target processor;
- and
- emulated memory coupled to the virtual processor over a virtual memory bus, the emulated memory including at least one portion storing target code;
- and
- a host central processing unit (CPU) configured to:
- execute the proxy VM to emulate the target hardware, wherein the proxy VM, upon execution by the host CPU, is configured to execute, by the virtual processor, the target code to interact with at least the emulated Ethernet controller to operate on the input test data;
- and
- update the proxy VM to omit the emulated Ethernet controller and to include a target hardware I/O device, wherein the updated proxy VM is reconfigured to execute the target code to interact with at least the target hardware I/O device.
Dependencies are inferred from the claim text.