Sign in

Not a member? | Forgot your Password?


Search Comp.Arch.Embedded



Search tips

Free PDF Downloads

Advanced Linux Programming

What Every Programmer Should Know About Memory

Introduction to Embedded Systems

C++ Tutorial

Embedded Systems - Theory and Design Methodology

Recent Blogs on EmbeddedRelated

How to Analyze a Differential Amplifier
posted by Jason Sachs


Little to no benefit from C based HLS
posted by Christopher Felton


Unit Tests for Embedded Code
posted by Stephen Friederichs


DSPRelated and EmbeddedRelated now on Facebook & I will be at EE Live!
posted by Stephane Boucher


Using a RTLSDR dongle to validate NRF905 configuration
posted by fabien le mentec


Introduction to Microcontrollers

Chapter 1: Beginnings

Chapter 2: Further Beginnings

Chapter 3: Hello World

Chapter 4: More On GPIO

Chapter 5: Interrupts

Chapter 6: More On Interrupts

Chapter 7: Timers

Chapter 8: Adding Some Real-World Hardware

Chapter 9: More Timers and Displays

Chapter 10: Buttons and Bouncing

Chapter 11: Button Matrix & Auto Repeating

Chapter 12: Driving WS2812 RGB LEDs

See Also

ElectronicsDSPFPGA

Find us on Facebook





Discussion Groups | Comp.Arch.Embedded | Motorola S-Record Format

There are 15 messages in this thread.

You are currently looking at messages 11 to 15.


So far in April, you have voted 0 times ou of a total of 0 votes by the community.
Please help us clean the archives from unuseful discussion threads by using the voting system! Details here.

Re: Motorola S-Record Format - Everett M. Greene - 2006-02-08 13:38:00

"rickman" <s...@yahoo.com> writes:
> Everett M. Greene wrote:
> > "rickman" <s...@yahoo.com> writes:
> > > It was not obvious or even accurate.  The answer to the OP's question
> > > was not on the first link or likely any of the links.  He was asking
> > > what the tools put into the S0 record.  If you read the link it says
> > > that the S0 record contains among other things...
> > >
> > > description is char[0-36] and is a text comment
> >
> > Where did you find a supposed 36-character limit specified?
> 
> http://www.amelek.gda.pl/avr/uisp/srecord.htm
> 
> go to the description for the S0 record type...
> 
> S0 Record. The type of record is 'S0' (0x5330). The address field is
> unused and will be filled with zeros (0x0000). The header information
> within the data field is divided into the following subfields.
> 
> mname is char[20] and is the module name.
> ver is char[2] and is the version number.
> rev is char[2] and is the revision number.
> description is char[0-36] and is a text comment.
> 
> 36 is for just the text comment, but this may be the ascii which is
> represented by two char in the Srecord for a total of 72 char.  But
> that was my point.  There is a lot of info on the Srecord format, but
> much of it is incomplete and/or misleading.  I don't think much of
> being rude or even just negative in the forums.  This was an example
> that was completely unjustified.

The preceding sounds as if it's someone's specific S0 format
and not a general description.

> > The format allows up to 99 characters and S-recs date back
> > to (late) punchcard days, so being prepared for up to 80
> > characters would be wise.
> 
> Do you have a reference that describes this?  I have never found a
> complete, definitive description of Srecords.

Complete I've found -- definitive is questionable.  It
would be Motorola's place to be definitive and I've
never found anything from them.

_____________________________
 Free pdf download: Advanced Linux Programming.

Re: Motorola S-Record Format - Mel Wilson - 2006-02-08 15:08:00

Everett M. Greene wrote:
> "rickman" <s...@yahoo.com> writes:
>>Do you have a reference that describes this?  I have never found a
>>complete, definitive description of Srecords.
> 
> 
> Complete I've found -- definitive is questionable.  It
> would be Motorola's place to be definitive and I've
> never found anything from them.

I've got 6 pages from a Motorola Evaluation Module User's Manual.  But 
you've already found complete...

		Mel.

_____________________________
 Free pdf download: Introduction to Embedded Systems.

Re: Motorola S-Record Format - rickman - 2006-02-08 21:54:00

Mel Wilson wrote:
> Everett M. Greene wrote:
> > "rickman" <s...@yahoo.com> writes:
> >>Do you have a reference that describes this?  I have never found a
> >>complete, definitive description of Srecords.
> >
> >
> > Complete I've found -- definitive is questionable.  It
> > would be Motorola's place to be definitive and I've
> > never found anything from them.
>
> I've got 6 pages from a Motorola Evaluation Module User's Manual.  But
> you've already found complete...

I would love to see those 6 pages.  :-)


_____________________________
 Free pdf download: Advanced Linux Programming.

Re: Motorola S-Record Format - Mel Wilson - 2006-02-09 07:32:00

rickman wrote:
> Mel Wilson wrote:
>>I've got 6 pages from a Motorola Evaluation Module User's Manual.  But
>>you've already found complete...
> 
> 
> I would love to see those 6 pages.  :-)
>
Turns out it's actually 4.  The manual had one sheet of paper twice. 
I've scanned them, but haven't got them to my web space yet.  I'll 
announce here when it's done.

		Mel.

_____________________________
 Free pdf download: Advanced Linux Programming.

Re: Motorola S-Record Format - Everett M. Greene - 2006-02-09 13:17:00

Mel Wilson <m...@the-wire.com> writes:
> rickman wrote:
> > Mel Wilson wrote:
> >>I've got 6 pages from a Motorola Evaluation Module User's Manual.  But
> >>you've already found complete...
> > 
> > I would love to see those 6 pages.  :-)
> >
> Turns out it's actually 4.  The manual had one sheet of paper twice. 
> I've scanned them, but haven't got them to my web space yet.  I'll 
> announce here when it's done.

I'll save you the trouble of scanning.  The following is
specially imported from Italy:

> From: r...@iol.it (Davide Rizzo)
> Newsgroups: comp.sys.m68k
> Subject: Re: Motorola S1 format
> Date: Mon, 17 Feb 1997 14:39:18 GMT
> Organization: Italia Online

All the following is from the freeware as32 motorola assembler manual

                              APPENDIX E
                         S-RECORD INFORMATION


E.1   INTRODUCTION

The S-record output format encodes program and data object modules
into a printable (ASCII) format.  This allows viewing of the object
file with standard tools and allows display of the module while
transferring from one computer to the next or during loads between a
host and target.  The S-record format also includes information for
use in error checking to insure the integrity of data transfers.


E.2   S-RECORD CONTENT

S-Records are character strings made of several fields which identify
the record type, record length, memory address, code/data, and
checksum.  Each byte of binary data is encoded as a 2-character
hexadecimal number:  the first character representing the high-order
4 bits, and the second the low-order 4 bits of the byte.

The 5 fields which comprise an S-record are:

      TYPE  RECORD LENGTH   ADDRESS   CODE/DATA  CHECKSUM

The fields are defined as follows:

     FIELD      CHARACTERS                   CONTENTS
     -----      ----------                   --------
     Type           2          S-record type - S0 through S9

     Record         2          The count of the character pairs in the
     length                    record, excluding the type and record
                               length.

     Address      4, 6,        The 2-, 3-, or 4-byte address at which
                  or 8         the data field is to be loaded into
                               memory.

     Code/data    0-2n         From 0 to n bytes of executable code,
                               memory loadable data, or descriptive
                               information.

     Checksum       2          The least significant byte of the one's
                               complement of the sum of the values
                               represented by the pairs of characters
                               making up the record length, address,
                               and the code/data fields.

Each record may be terminated with a CR/LF/NULL.


E.3   S-RECORD TYPES

Several types of s-records have been defined to accommodate various
encoding, transportation, and decoding needs.  The MC68332 Freeware
assembler uses the following types:

     S0	  A record containing the filename encoded in ASCII hex
	  characters.  This is a dummy header file which is not used by
	  Motorola evaluation systems.

     S1   A record containing code/data and the 2-byte
          address at which the code/data is to reside.

     S2   A record containing code/data and the 3-byte address at which
	  the code/data is to reside

     S3   A record containing code/data and the 4-byte address at which
	  the code/data is to reside

     S7   A termination record for a block of S3 records. The address
          field may optionally contain the 4-byte address of the
          instruction to which control is to be passed.  If not
          specified, the first entry point specification encountered in
	  the object module input will be used.  There is no code/data
	  field.

     S8   A termination record for a block of S2 records. The address
          field may optionally contain the 3-byte address of the
          instruction to which control is to be passed.  If not
          specified, the first entry point specification encountered in
	  the object module input will be used.  There is no code/data
	  field.

     S9   A termination record for a block of S1 records. The address
          field may optionally contain the 2-byte address of the
          instruction to which control is to be passed.  If not
          specified, the first entry point specifica
          tion encountered in the object module input will be used.
          There is no code/data field.

E.4   S-RECORD EXAMPLE

The following is a typical S-record module:

          S1130000285F245F2212226A000424290008237C2A
          S11300100002000800082629001853812341001813
          S113002041E900084E42234300182342000824A952
          S107003000144ED492
          S9030000FC

The module consists of four code/data records and an S9 termination
record.

The first S1 code/data record is explained as follows:
      S1   S-record type S1, indicating a code/data record to be
          loaded/verified at a 2-byte address.

     13   Hex 13 (decimal 19), indicating 19 character pairs,
          representing 19 bytes of  binary data, follow.

     00   Four-character 2-byte address field:  hex address 0000,
          indicates location where the following data is to be loaded.

     The next 16 character pairs are the ASCII bytes of the actual
     program code/data.

     2A   Checksum of the first S1 record.  The checksum is the
	  complemented sum of byte value of all fields following the S1
	  field.

The second and third S1 code/data records each also contain $13
character pairs and are ended with checksums.  The fourth S1 code/data
record contains 7 character pairs.  S2 and S3 records are similiar
except that the address field is 3 bytes and 4 bytes long,
respectively.

The S9 termination record is explained as follows:

     S9   S-record type S9, indicating a termination record.

     03   Hex 03, indicating three character pairs (3 bytes) to
          follow.

     00   Four character 2-byte address field, zeroes.
     00

     FC	  The two character, one-byte checksum field.

The S6 and S7 termination records are similiar except for the larger
address fields as noted earlier.

_____________________________
 Free pdf download: What Every Programmer Should Know About Memory.

| | 2