In-circuit emulator and pod synchronized boot
First Claim
1. A boot method for synchronizing a real microcontroller and a virtual microcontroller of an In-Circuit Emulation system in lock-step, comprising:
- in the real microcontroller, executing a set of boot code to carry out initialization;
in the virtual microcontroller, executing a set of timing code to enable a lock-step synchronization with the real microcontroller, wherein the set of timing code is a dummy code timed to take the same number of clock cycles as the real microcontroller uses to execute the set of boot code, wherein the set of timing code is functionally different from the set of boot code, and wherein the set of boot code is stored within the real microcontroller and the set of boot code is inaccessible to the virtual microcontroller;
simultaneously halting both the real microcontroller and the virtual microcontroller; and
restarting the real microcontroller and the virtual microcontroller to execute instructions in lock-stepped synchronization.
5 Assignments
0 Petitions
Accused Products
Abstract
A synchronized boot process for an In-Circuit Emulator system. A real microcontroller is operated in lock-step synchronization with a virtual microcontroller to permit In-Circuit Emulation that allows debugging of the real microcontroller without interfering with its real time operation. The synchronized boot is accomplished by running boot code in the real microcontroller while the virtual microcontroller runs dummy code with the same timing as the boot code. Registers and memory contents are then copied from the real microcontroller to the virtual microcontroller to complete initialization and enter a state of readiness for lock-step operation.
-
Citations
20 Claims
-
1. A boot method for synchronizing a real microcontroller and a virtual microcontroller of an In-Circuit Emulation system in lock-step, comprising:
-
in the real microcontroller, executing a set of boot code to carry out initialization; in the virtual microcontroller, executing a set of timing code to enable a lock-step synchronization with the real microcontroller, wherein the set of timing code is a dummy code timed to take the same number of clock cycles as the real microcontroller uses to execute the set of boot code, wherein the set of timing code is functionally different from the set of boot code, and wherein the set of boot code is stored within the real microcontroller and the set of boot code is inaccessible to the virtual microcontroller; simultaneously halting both the real microcontroller and the virtual microcontroller; and restarting the real microcontroller and the virtual microcontroller to execute instructions in lock-stepped synchronization. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A boot method for synchronizing a real microcontroller and a virtual microcontroller of an In-Circuit Emulation system in lock-step, comprising:
-
resetting the real microcontroller and the virtual microcontroller to a halt state; setting a break at an assembly instruction line 0; in the real microcontroller, executing a set of boot code to carry out initialization; in the virtual microcontroller, executing a set of timing code to enable a lock-step synchronization with the real microcontroller, wherein the set of timing code is a dummy code timed to take the same number of clock cycles as the real microcontroller uses to execute the set of boot code, wherein the set of timing code is functionally different from the set of boot code, and wherein the set of boot code is stored within the real microcontroller and the set of boot code is inaccessible to the virtual microcontroller; simultaneously halting both the real microcontroller and the virtual microcontroller by branching to the assembly instruction line 0; copying register contents from the real microcontroller to corresponding registers in the virtual microcontroller; copying memory contents from the real microcontroller to corresponding memory in the virtual microcontroller; and removing the break at the assembly line 0 after the copying the register-contents and the copying the memory contents.
-
-
12. A boot method for synchronizing a tested device and a virtual processor of an In-Circuit Emulation system in lock-step, comprising:
-
in the tested device, executing a set of boot code to carry out initialization; in the virtual processor, executing a set of timing code to enable a lock-step synchronization with the tested device, wherein the timing code is a dummy code timed to take the same number of clock cycles as the tested device uses to execute the set of boot code, wherein at least one portion of the set of timing code is different from the set of boot code, and wherein the set of boot code is stored within the tested device and the set of boot code is inaccessible to the virtual processor; simultaneously halting both the tested device and the virtual processor; and restarting the tested device and the virtual microprocessor to execute instructions in lock-stepped synchronization. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification