System and a method for checking lock step consistency between an in circuit emulation and a microcontroller while debugging process is in progress
First Claim
1. A system for check consistency of a lock-step process comprising:
- a production microcontroller installed on a test circuit, the production microcontroller running a microcontroller code and producing a first value;
an ICE (in circuit emulator) coupled to a host device, wherein the ICE emulates the production microcontroller to form a virtual microcontroller, the virtual microcontroller running the microcontroller code simultaneously with the production microcontroller and producing a second value; and
an interface for coupling the production microcontroller and the ICE enabling transmission of the first value to the ICE, where the production microcontroller sends to the ICE a result of an execution of a line of code, and wherein the ICE compares the first value against the second value.
5 Assignments
0 Petitions
Accused Products
Abstract
Checking the consistency of a lock step process while debugging a microcontroller code is in progress. A method provides a production microcontroller to execute an instruction code and provides the result of the instruction code to an ICE. The ICE, independent from the production microcontroller and simultaneously, executes the same instruction code and produces a result. The ICE compares the result of its computation and the result received from the production microcontroller. The ICE issues a “lock step error” when the result of the comparison is a mismatch. A trace buffer residing in the host device provides the location of the line of code causing the mismatch. After identifying the line of code causing the mismatch the user debugs the erroneous line of code. The debugging process resumes on the next line of code in the microcontroller code under test.
98 Citations
25 Claims
-
1. A system for check consistency of a lock-step process comprising:
-
a production microcontroller installed on a test circuit, the production microcontroller running a microcontroller code and producing a first value;
an ICE (in circuit emulator) coupled to a host device, wherein the ICE emulates the production microcontroller to form a virtual microcontroller, the virtual microcontroller running the microcontroller code simultaneously with the production microcontroller and producing a second value; and
an interface for coupling the production microcontroller and the ICE enabling transmission of the first value to the ICE, where the production microcontroller sends to the ICE a result of an execution of a line of code, and wherein the ICE compares the first value against the second value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for verifying lock step microcontroller code execution in a code debugging process comprising:
-
a) initializing a first memory of an ICE (in circuit emulator) and a second memory of a microcontroller with microcontroller test code;
b) executing the microcontroller test code on the microcontroller and on the ICE in lock step;
c) computing an ICE current instruction result and a microcontroller current instruction result;
d) verifying lock step execution by comparing the ICE current instruction result and the microcontroller current instruction result;
d) if lock step execution is not verified, halting the execution of the microcontroller test code and reporting an error; and
e) if lock step execution is verified, continuing execution of the microcontroller test code. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A lock step code execution microcontroller testing system comprising:
-
a microcontroller installed on a test circuit, the microcontroller running microcontroller code, the microcontroller installed on a pod;
an ICE (in circuit emulator) coupled to a host device, wherein the ICE emulates the microcontroller using a field programmable gate array (FPGA) in the ICE, the ICE running the microcontroller code simultaneously with the microcontroller; and
an interface for coupling the microcontroller and the ICE enabling data transmission between the ICE and the microcontroller, wherein the ICE compares a microcontroller execution result with an ICE execution result to verify lock step microcontroller code execution. - View Dependent Claims (21, 22, 23, 24, 25)
-
Specification