NAME¶
srec_binary - binary file format
DESCRIPTION¶
It is possible to read and write binary files using
srec_cat(1).
File Holes¶
A file hole is a portion of a regular file that contains NUL characters and is
not stored in any data block on disk. Holes are a long‐standing feature
of Unix files. For instance, the following Unix command creates a file in
which the first bytes are a hole:
$ echo -n "X" | dd of=/tmp/hole bs=1024 seek=6
$
Now /tmp/hole has 6,145 characters (6,144 NUL characters plus an X character),
yet the file occupies just one data block on disk.
File holes were introduced to avoid wasting disk space. They are used
extensively by database applications and, more generally, by all applications
that perform hashing on files.
See
http://www.oreilly.com/catalog/linuxkernel2/chapter/ch17.pdf for more
information.
Reading¶
The size of binary files is taken from the size of the file on the file system.
If the file has holes these will read as blocks of NUL (zero) data, as there
is no elegant way to detect Unix file holes. In general, you probably want to
use the
-unfill filter to find and remove large swathes of zero bytes.
Writing¶
In producing a binary file,
srec_cat(1) honours the address information
and places the data into the binary file at the addresses specified in the hex
file. This usually results on holes in the file. Sometimes alarmingly large
file sizes are reported as a result.
If you are on a brain‐dead operating system without file holes then there
are going to be real data blocks containing real zero bytes, and consuming
real amounts of disk space. Upgrade - I suggest Linux.
To make a file of the size you expect, use
srec_info foo.s19
to find the lowest address, then use
srec_cat foo.s19 -intel -offset -n -o
foo.bin -binary
where
n is the lowest address present in the foo.s19 file, as reported by
srec_info(1). The
negative offset serves to move the data down
to have an origin of zero.
SEE ALSO¶
- srec_input(1)
- for a description of the -unfill filter
- srec_examples(1)
- has a section about binary files, and ways of automagically
offseting the data back to zero in a single command.
COPYRIGHT¶
SRrecord version 1.58
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
2009, 2010, 2011 Peter Miller
The
SRrecord program comes with ABSOLUTELY NO WARRANTY; for details use
the '
SRrecord -VERSion License' command. This is free software and you
are welcome to redistribute it under certain conditions; for details use the '
SRrecord -VERSion License' command.
AUTHOR¶