Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

srec_binary(5) [debian man page]

srec_binary(5)							File Formats Manual						    srec_binary(5)

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
Peter Miller E-Mail: pmiller@opensource.org.au //* WWW: http://miller.emu.id.au/pmiller/ Reference Manual SRecord srec_binary(5)

Check Out this Related Man Page

srec_tektronix_extended(5)					File Formats Manual					srec_tektronix_extended(5)

NAME
srec_tektronix_extended - Tektronix Extended hexadecimal file format DESCRIPTION
This format allows binary files to be uploaded and downloaded between two computer systems, typically between a computer system (such as a PC, Macintosh, or workstation) and an emulator or evaluation board for microcontrollers and microprocessors. The Lines Lines always start with a percent (%) character. Each line consists of 5 fields. These are the length field, the type field, the check- sum, the address field (including address length), and the data field. The Fields +--+--------+------+----------+---------+------+ |% | Length | Type | Checksum | Address | Data | +--+--------+------+----------+---------+------+ Record Length The record length field is a 2 character (1 byte) field that specifies the number of characters (not bytes) in the record, exclud- ing the percent, the length field, the type field and the checksum. Type The type field is a 1 character field that specifies whether the record is data (6) or termination (8). Checksum The checksum is an 2 character (1 byte) field that represents the sum of all the nibbles on the line, excluding the checksum. Address This is a 9 character field. The first character is the address size; it is always 8. The remaining 8 chgaracters are the 4-byte address that specifies where the data is to be loaded into memory. Data The data field contains the executable code, memory-loadable data or descriptive information to be transferred. Record Types 6 A record containing data. The data is placed at the address specified. 8 A termination record. The address field may optionally contain the address of the instruction to which control is passed. There is no data field. Size Multiplier In general, binary data will expand in sized by approximately 2.5 times when represented with this format. EXAMPLE
Here is an example Tektronix extended file. It contains the data "Hello, World[rq] to be loaded at address 0x006B. %256D980000006B48656C6C6F2C20576F726C64210A %09819800000000 COPYRIGHT
srec_cat version 1.58 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Peter Miller The srec_cat program comes with ABSOLUTELY NO WARRANTY; for details use the 'srec_cat -VERSion License' command. This is free software and you are welcome to redistribute it under certain conditions; for details use the 'srec_cat -VERSion License' command. AUTHOR
Peter Miller E-Mail: pmiller@opensource.org.au //* WWW: http://miller.emu.id.au/pmiller/ Reference Manual SRecord srec_tektronix_extended(5)
Man Page