.lf 1 ./man/man5/srec_ti_tagged.5 '\" t .\" srecord - manipulate eprom load files .\" Copyright (C) 2000, 2001, 2006-2009 Peter Miller .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 3 of the License, or .\" (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program. If not, see .\" . .\" .ds n) srec_ti_tagged .TH \*(n) 5 SRecord "Reference Manual" .SH NAME srec_ti_tagged \- Texas Instruments Tagged (SDSMAC) file format .if require_index \{ .XX "srec_ti_tagged(5)" "Texas Instruments Tagged (SDSMAC) file format" .\} .SH DESCRIPTION This format is also known as the \f[I]TI\[hy]Tagged\fP or \f[I]TI\[hy]SDSMAC\fP format. .PP .\" ------------------------------------------------------------------------ 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. .SS The Lines Unlike many other object formats, the lines themselves are not especially significant. The format consits of a number of \fItagged\fP fields, and lines are composed of a series of these fields. .TS center,tab(;); l l. Tag;Description _ *;T{ Data byte. T} :;T{ End of file. T} 0;T{ File header (optional). T} 7;T{ Checksum. T} 8;T{ Dummy checksum (ignored). T} 9;T{ Address. T} B;T{ Data word. T} F;T{ End of data record. T} K;T{ Program identifier (optional). T} .TE .\" ------------------------------------------------------------------------ .br .ne 2i .SS Data Byte .TS allbox,center,tab(;); lf(CW) lf(I) lf(I). B;n;n .TE .sp 0.5 One byte of data. The \fInn\fP is 8\[hy]bit big\[hy]endian hexadecimal. .\" ------------------------------------------------------------------------ .br .ne 2i .SS End of File .TS allbox,center,tab(;); lf(CW) l. :;CRLF .TE .sp 0.5 The end of data is indicated by this tag. The end of line sequence (LF on Unix systems, CRLF on PCs) follows this tag. .\" ------------------------------------------------------------------------ .br .ne 2i .SS File Header .TS allbox,center,tab(;); lf(CW) lf(I) lf(I). 0;length;filename .TE .sp 0.5 The optional start\[hy]of\[hy]file record begins with a tag character ('0') and a 12\[hy]character file header. The first four characters are the byte count of the file data. The remaining 8 characters are the name of the file and may be any ASCII characters, blank padded. .\" ------------------------------------------------------------------------ .br .ne 2i .SS Checksum .TS allbox,center,tab(;); lf(CW) lf(I) lf(I) lf(I) lf(I). 7;n;n;n;n .TE .sp 0.5 The checksum is the 2s complement sum of the 8\[hy]bit ASCII values of characters, beginning with the first tag character and ending with the checksum tag character (7). The \fInnnn\fP is 16\[hy]bit big\[hy]endian hexadecimal. .\" ------------------------------------------------------------------------ .br .ne 2i .SS Dummy Checksum .TS allbox,center,tab(;); lf(CW) lf(I) lf(I) lf(I) lf(I). 8;n;n;n;n .TE .sp 0.5 The checksum is the 2s complement sum of the 8\[hy]bit ASCII values of characters, beginning with the first tag character and ending with the checksum tag character (8). The \fInnnn\fP is 16\[hy]bit big\[hy]endian hexadecimal. .\" ------------------------------------------------------------------------ .br .ne 2i .SS Address .TS allbox,center,tab(;); lf(CW) lf(I) lf(I) lf(I) lf(I). 9;n;n;n;n .TE .sp 0.5 Addresses may be given for any data byte, but none is mandatory. The file begins at 0000 if no address is given before the first data field. The \fInnnn\fP is 16\[hy]bit big\[hy]endian hexadecimal. .\" ------------------------------------------------------------------------ .br .ne 2i .SS Data Word .TS allbox,center,tab(;); lf(CW) lf(I) lf(I) lf(I) lf(I). B;a;a;b;b .TE .sp 0.5 Two bytes of data. The \fIaa\fP and \fIbb\fP are each 8\[hy]bit big\[hy]endian hexadecimal. .\" ------------------------------------------------------------------------ .br .ne 2i .SS End of Record .TS allbox,center,tab(;); lf(CW) l. F;CRLF .TE .sp 0.5 The end of line sequence (LF on Unix systems, CRLF on PCs) is escaped using this tag. The checksum is reset to zero at this point. .\" ------------------------------------------------------------------------ .br .ne 2i .SS Program Identifier .TS allbox,center,tab(;); lf(CW) lf(I) lf(I) lf(I) lf(I) lf(I). K;n;n;n;n;text .TE .sp 0.5 The program identifier can contain a brief description of the program, or can be empty (\fIi.e.\fP the text portion is optional). The \fInnnn\fP length (hex) of the field includes the `K', the length and the text; it is at least 5. .\" ------------------------------------------------------------------------ .br .ne 21 .SS Size Multiplier In general, binary data will expand in sized by approximately 2.9 times when represented with this format. .\" ------------------------------------------------------------------------ .br .ne 2i .SH EXAMPLE Here is an example TI\[hy]Tagged file. It contains the data \[lq]Hello, World[rq] to be loaded at address 0x0100. .RS .nf .ft CW K000590080B4865B6C6CB6F2CB2057B6F72B6C64*0A7F648F : .ft P .fi .RE and here is another example from the reference below .RS .nf .ft CW 00050 7FDD4F 90000BFFFFBFFFFBFFFFBFFFFBFFFFBFFFFBFFFFBFFFF7F400F 90010BFFFFBFFFFBFFFFBFFFFBFFFFBFFFFBFFFFBFFFF7F3FFF 90020BFFFFBFFFFBFFFFBFFFFBFFFFBFFFFBFFFFBFFFF7F3FEF 90030BFFFFBFFFFBFFFFBFFFFBFFFFBFFFFBFFFFBFFFF7F3FDF 90040BFFFFBFFFFBFFFFBFFFFBFFFFBFFFFBFFFFBFFFF7F3FCF : .ft P .fi .RE .\" ------------------------------------------------------------------------ .ds n) srec_cat .SH SEE ALSO http://www.dataio.com/pdf/Manuals/Unifamily/981\[hy]0014\[hy]016.pdf (page 6\[hy]33) .lf 1 ./man/man1/z_copyright.so .\" .\" srecord - manipulate eprom load files .\" Copyright (C) 1998, 2006-2009 Peter Miller .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 3 of the License, or .\" (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program. If not, see .\" . .\" .br .ne 1i .SH COPYRIGHT .lf 1 ./etc/version.so .ds V) 1.58.D001 .ds v) 1.58 .ds Y) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 .lf 23 ./man/man1/z_copyright.so .I \*(n) version \*(v) .br Copyright .if n (C) .if t \(co \*(Y) Peter Miller .br .PP The .I \*(n) program comes with ABSOLUTELY NO WARRANTY; for details use the '\fI\*(n) \-VERSion License\fP' command. This is free software and you are welcome to redistribute it under certain conditions; for details use the '\fI\*(n) \-VERSion License\fP' command. .br .ne 1i .SH AUTHOR .TS tab(;); l r l. Peter Miller;E\[hy]Mail:;pmiller@opensource.org.au /\e/\e*;WWW:;http://miller.emu.id.au/pmiller/ .TE .lf 232 ./man/man5/srec_ti_tagged.5