Compare two eprom load files for equality
\*(n) [ option... ] filename...
\*(n) -Help
\*(n) -VERSion
The \*(n) program is used to compare two EPROM load files for equality. This comparison is performed irrespective of the load order of the data in each of the files.
Input may be qualified in two ways: you may specify a data file or a data generator. format and you may specify filters to apply to them. An input file specification looks like this:
data\[hy]file [ filter ... ]
data\[hy]generator [ filter ... ]
Input from data files is specified by file name and format name. An input file specification looks like this:
filename [ format ][ -ignore\[hy]checksums ]
The default format is Motorola S\[hy]Record format, but many others are also understood.
It is also possible to generate data, rather than read it from a file. You may use a generator anywhere you could use a file. An input generator specification looks like this:
-GENerate address\[hy]range -data\[hy]source
Generators include random data and various forms of constant data.
See srec_input(1) for complete details of input specifiers. This description is in a separate manual page because it is common to more than one SRecord command.
The following options are understood:
@filename
The named text file is read for additional command line arguments. Arguments are separated by white space (space, tab, newline, etc). There is no wildcard mechanism. There is no quoting mechanism. Comments, which start with '#' and extend to the end of the line, are ignored. Blank lines are ignored.
-Help
Provide some help with using the \*(n) program.
-IGnore_Checksums
The -IGnore\[hy]Checksums option may be used to disable checksum validation of input files, for those formats which have checksums at all. Note that the checksum values are still read in and parsed (so it is still an error if they are missing) but their values are not checked. Used after an input file name, the option affects that file alone; used anywhere else on the command line, it applies to all following files.
-Enable_Sequence_Warnings
This option may be used to enable warnings about input files where the data records are not in strictly ascending address order. Only one warning is issued per input file. This is the default.
Note: the output of srec_cat(1) is always in this order.
Note: This option must be used before the input file. This is because if there are several files on the command line, each may need different settings. The setting remains in force until the next -Disable_Sequence_Warnings option.
-Disable_Sequence_Warnings
This option may be used to disable warnings about input files where the data records are not in strictly ascending address order.
Note: This option must be used before the offending input file. This is because if there are several files on the command line, each may need different settings. The setting remains in force until the next -Ensable_Sequence_Warnings option.
-MULTiple
Use this option to permit a file to contain multiple (contradictory) values for some memory locations. A warning will be printed. The last value in the file will be used. The default is for this condition to be a fatal error.
-VERSion
Print the version of the \*(n) program being executed.
-Verbose
This option may be used to obtain more information about how and where the two files differ. Please note that this takes longer, and the output can be voluminous.
All other options will produce a diagnostic error.
All options may be abbreviated; the abbreviation is documented as the upper case letters, all lower case letters and underscores (_) are optional. You must use consecutive sequences of optional letters.
All options are case insensitive, you may type them in upper case or lower case or a combination of both, case is not important.
For example: the arguments \[lq]-help\[rq], \[lq]-HEL\[rq] and \[lq]-h\[rq] are all interpreted to mean the -Help option. The argument \[lq]-hlp\[rq] will not be understood, because consecutive optional characters were not supplied.
Options and other command line arguments may be mixed arbitrarily on the command line.
The GNU long option names are understood. Since all option names for \*(n) are long, this means ignoring the extra leading \[lq]-\[rq]. The \[lq]--option=value\[rq] convention is also understood.
The \*(n) command will exit with a status of 1 on any error. The \*(n) command will only exit with a status of 0 if there are no errors.
A common use for the \*(n) command is to verify that a particular signature is present in the code. In this example, the signature is in a file called\[lq]signature[rq], and the EPROM image is in a file called \[lq]image[rq]. We assume they are both Motorola S\[hy]Record format, although this will work for all formats:
\*(n) signature image -crop -within signature
The signature need not be at the start of memory, nor need it be one single contiguous piece of memory. In the above example, the portions of the image which have the same address range as the signature are compared with the signature.
\*(n) version \*(v)
Copyright \*(Y) Peter Miller
The \*(n) program comes with ABSOLUTELY NO WARRANTY; for details use the '\*(n) -VERSion License' command. This is free software and you are welcome to redistribute it under certain conditions; for details use the '\*(n) -VERSion License' command.
Peter Miller | E\[hy]Mail: | [email protected] |
---|---|---|
/\ | /\ | * |
WWW: | http://miller.emu.id.au/pmiller/ |