Method and article of manufacture for differentiating...

Error detection/correction and fault detection/recovery – Pulse or data error handling – Memory testing

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C714S719000, C714S723000

Reexamination Certificate

active

06550027

ABSTRACT:

FIELD OF THE INVENTION
The present invention relates generally to the field of software. More specifically, this invention relates to a method and apparatus for identifying the software execution environment for the purpose of software program development.
BACKGROUND OF THE INVENTION
Software engineers often use read-only memory (“ROM”) emulators to simplify the software development process. A ROM emulator is connected to the target system in place of the non-volatile memory devices that contain the executable code and certain types of data. This emulator also connects to a computer, and through this communication link the engineer can download revised, altered or additional code from the computer to the ROM emulator quickly and easily. The alternative is to program actual non-volatile memory devices with each code change, which is much more tedious and time consuming.
A problem with this approach has arisen in a system containing in-circuit programmable non-volatile memory devices (e.g., EEPROM or FLASH) that are replaced with a ROM emulator during software program development. The emulator does not behave like the actual non-volatile memory device. For example, a FLASH or EEPROM device requires special command sequences to be written to it to invoke the erase and reprogram algorithms. An emulator does not require any such command sequences. An emulator behaves just like RAM, with no special commands needed to alter its memory. Sending FLASH commands to an emulator would, in fact, alter the emulator memory in an undesirable way. Thus, it is a principle aspect of the present invention to determine whether a program is executing in a non-volatile memory device or an emulator.
SUMMARY OF THE INVENTION
The present invention relates to a method and an article of manufacture for differentiating between an in-circuit programmable read-only, non-volatile memory (“NVROM”) and a ROM emulator for purposes of in-circuit programming. In one aspect, the invention relates to a method for determining whether a software program is executing in a non-volatile memory device or an emulator. The method includes reading a binary representation of a first value stored at a predetermined test location and changing the binary representation of the first value to create a binary representation of a second value. The method further includes writing the binary representation of the second value to that same predetermined test location and reading a resulting value stored at the test location. The method further includes determining whether the resulting value corresponds to the first value or the second value.
In one embodiment, the method also includes writing the binary representation of the first value to the test location if the resulting value corresponds to the second value. In another embodiment, the step of changing includes inverting the binary representation of the first value to create the second value. In another embodiment, the step of changing includes subtracting one from the binary representation of the first value to create the second value. In another embodiment, the method also includes determining a memory location that is not being used by the software program and selecting the memory location as the test location. In another embodiment, the method also includes determining a memory location that is a fixed, non-executable location and selecting the memory location as the test location. In another embodiment, the method also includes determining a memory location that is used by the software program to store a checksum value and selecting the memory location as the test location.
In another aspect, the invention relates to a method to determine whether a software program is executing in a non-volatile memory device or an emulator. The method includes selecting a memory location as a test location and reading a binary representation of a first value stored at the test location. The method further includes changing the binary representation of the first value to create a binary representation of a second value and writing the binary representation of the second value to the test location. The method further includes reading a resulting value stored at the test location and determining whether the resulting value corresponds to the first value or the second value.
In one embodiment, the method also includes writing the binary representation of the first value to the test location if the resulting value corresponds to the second value. In another embodiment, the step of changing includes inverting the binary representation of the first value to create the second value. In another embodiment, the step of changing includes subtracting one from the binary representation of the first value to create the second value. In another embodiment, the step of selecting a test location further includes determining a memory location that is a fixed, non-executable location and selecting the memory location as the test location. In another embodiment, the step of selecting a test location further includes determining a memory location that is not being used by the software program and selecting the memory location as the test location. In another embodiment, the step of selecting a test location further includes determining a memory location that is used by the software program to store a checksum value and selecting the memory location as the test location.
In yet another aspect, the invention relates to an article of manufacture having computer-readable program means embodied therein to determine whether a software program is executing in a non-volatile memory device or an emulator. The article of manufacture includes computer-readable program means for reading a binary representation of a first value stored at a test location and computer-readable program means for changing the binary representation of the first value to create a binary representation of a second value. The article of manufacture further includes computer-readable program means for writing the binary representation of the second value to the test location and computer-readable program means for reading a resulting value stored at the test location. The article of manufacture further includes computer-readable program means for determining whether the resulting value corresponds to the first value or the second value and computer-readable program means for writing the binary representation of the first value to the test location if the resulting value corresponds to the second value.
In one embodiment, the computer-readable program means for changing includes computer-readable program means for inverting the binary representation of the first value to create the second value. In another embodiment, the computer-readable program means for changing includes computer-readable program means for subtracting one from the binary representation of the first value to create the second value. In another embodiment, the article of manufacture also includes computer-readable program means for determining a memory location that is a fixed, non-executable location and selecting the memory location as the test location. In another embodiment, the article of manufacture also includes computer-readable program means for determining a memory location that is not being used by the software program and computer-readable program means for selecting the memory location as the test location. In another embodiment, the article of manufacture also includes computer-readable program means for determining a memory location that is used by the software program to store a checksum value and computer-readable program means for selecting the memory location as the test location.


REFERENCES:
patent: 4691316 (1987-09-01), Phillips
patent: 4796258 (1989-01-01), Boyce et al.
patent: 5185882 (1993-02-01), White, Jr. et al.
patent: 5469443 (1995-11-01), Saxena
patent: 5528553 (1996-06-01), Saxena
patent: 5721877 (1998-02-01), Heflinger et al.
patent: 5768563 (1998-06-01), Porter et al.
patent: 5901330 (1999-05-01), Sun et al.
patent: 5964875 (1999-10-01), Autor et a

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and article of manufacture for differentiating... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and article of manufacture for differentiating..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and article of manufacture for differentiating... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3086737

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.