Error detection/correction and fault detection/recovery – Data processing system error or fault handling – Reliability and availability
Reexamination Certificate
1998-09-15
2001-08-21
Beausoleil, Robert (Department: 2184)
Error detection/correction and fault detection/recovery
Data processing system error or fault handling
Reliability and availability
C714S030000, C714S034000, C714S045000, C714S726000, C703S020000, C717S152000, C717S152000
Reexamination Certificate
active
06279123
ABSTRACT:
FIELD OF THE INVENTION
The present invention relates to a system for monitoring the operation of a target device and, more particularly, to a system for monitoring an embedded processor in real-time and without stopping the operation of the processor.
BACKGROUND OF THE INVENTION
In designing electronic circuits and equipment, for example, digital processors (DSP's), fundamental steps in the design process include the testing of the equipment (the target device), the diagnosis of problems, and the correction of the problems.
Presently, complex software tools are used to evaluate the equipment and enable corrective measures to be taken. The software tools are used with an assembler and loader. Typically, the software tools comprise hundreds of thousands of lines of code. These software tools let the user load diagnostic programs into, for example, an embedded processor such as a DSP. The loaded programs are executed, with outputs from the diagnostic program being output to the host computer at various breakpoints.
The testing and diagnosis process requires that all the software tools be in place before test programs can be written and the new hardware debugged. Delays are prevalent because conventional software tools, which are extremely complex and lengthy, may not be available when the hardware is in the early testing or prototype phase. They must be written for each new device being developed, i.e., they are project specific. The assembler and linker, however, are usually available much earlier because they are standard tools requiring little or no modification and because they are needed in several earlier modeling and simulation steps in the development of the more complex software tool sets.
In addition to the above, the use of the final software tools package requires several other steps and files to be set up in order to operate properly. Obviously there is more chance of confusion on the part of the board designers when simultaneously developing hardware and the software to test it in parallel.
Breakpoints are locations in a program that allow the host computer to interrupt the normal instruction flow to look at results of a test or tests being performed. The breakpoints typically are designed into the chip architecture and are, thus, unchangeable once the chip is constructed. In operation, the diagnostic program will run up to any breakpoint and stop the processor. Then, results obtained by the diagnostic program up to that breakpoint are transmitted back to the host computer. The software tool package will then await further input from the host computer before proceeding.
With such systems there are several problems. First, the stopping of the processor results in a significant amount of wasted time. The entire processing operation stops while the host computer evaluates the input from the embedded processor and sends an instruction back to the embedded processor or awaits human intervention in the form of input keystrokes. In addition, since the processor stops while awaiting these additional instructions, the monitoring of real-time test results is not possible.
Further, since the breakpoints are fixed by the chip architecture, they are limited in number and their locations are loaded by the host, i.e., there is limited flexibility regarding the number or locations of the breakpoints.
In view of the above constraints, it is desirable to have a process available that will allow designers to design devices using a simple procedure. It would also be desirable to utilize standard assemblers and linkers from the existing software tool sets since they are available in advance of the completion of entire software tools package. It would be further desirable to have breakpoints embedded into downloadable target software so that the breakpoints could be moved or changed at any time.
It would also be desirable to be able to download a data file, such as a debugging file or a calibration file, from the host to the target device and store the downloaded program for use during the running of the target software.
SUMMARY OF THE INVENTION
The above-identified problems with the prior art systems are corrected by the present invention in which a single computer program, e.g., a Microsoft C/C++
3
program, is used to test the scan chain, check the link to the target device, set up the target devices on the scan chain, load the program into the device, run the program, and display the results of the program. The present invention monitors the target processor activity, such as data flow in and out of the target processor, tracking of routines running on the target processor, and the like. Instead of relying on fixed breakpoints, the present invention utilizes breakpoints embedded in the program, enabling the user to use as many breakpoints as desired and to place them and move them wherever they are needed. The breakpoints are defined and set up in the target code (e.g. a diagnostic program) and not by the host. This allows runtime flexibility because the number and location of the breakpoints can be changed easily.
According to the present invention, the host computer monitors the real-time operation of a target device having a scan chain by identifying devices connected to the scan chain, downloading from the host computer to the target device, target programs associated with the identified devices; synchronously running all of the target programs; and transmitting results data, compiled as a result of running the target programs, in real-time to the host computer without interrupting the operation of the target device.
In a more preferred embodiment, breakpoints are embedded in the target program and the results data is transmitted to the host computer when the target program reaches the breakpoints.
In another embodiment, a separate data file containing, for example, calibration data or debugging data is downloaded to the target device from the host device, and the downloaded data is used by the target device when running the target program. Thus, the system of the present invention can transmit data files from the host to the target or from the target to the host in real-time without the need to stop the target program.
REFERENCES:
patent: 5321828 (1994-06-01), Phillips et al.
patent: 5355369 (1994-10-01), Greenbergerl et al.
patent: 5590354 (1996-12-01), Klapproth et al.
patent: 5598421 (1997-01-01), Tran et al.
patent: 5600790 (1997-02-01), Barnstijn et al.
patent: 5636227 (1997-06-01), Segars
patent: 5872909 (1999-02-01), Wilner et al.
patent: 5884023 (1999-03-01), Swoboda et al.
patent: 5911059 (1999-06-01), Profit, Jr.
patent: 5933641 (1999-08-01), Ma
patent: 5978902 (1999-11-01), Mann
Baderman Scott
Beausoleil Robert
Lucent Technologies - Inc.
Synnestvedt & Lechner LLP
LandOfFree
System for viewing and monitoring embedded processor operation does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with System for viewing and monitoring embedded processor operation, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System for viewing and monitoring embedded processor operation will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2497028