NOLOAD, s-record and other questions

Nick Clifton nickc@redhat.com
Wed Feb 2 10:41:00 GMT 2005


Hi Massimiliano,

> using NOLOAD the external-ram addresses are no longer present in mot
> file (and I think in the elf too), but I wonder if the NOLOAD has some
> unwanted side effect.

It depends upon what you mean by "unwanted".  Any section with the 
NOLOAD qualifier will not have the ALLOCATE attribute set, which means 
that the program loader will not allocate memory space for that section, 
nor load it from the file when the program is started.  (This is why 
your .external section has no contents in the srec file - the elf to 
srec conversion has determined that the .external section does not 
contribute to the in-memory image of the running program and so has 
skipped it).

> I also found in the documentation the /DISCARD/ section name 
> http://sources.redhat.com/binutils/docs-2.15/ld/Output-Section-Discarding.html#Output%20Section%20Discarding
> but there is no example.
> How is used and what are the effects of /DISCARD/ section name?

If you have a look in the linker sources you will find examples of the 
/DISCARD/ section name being used.  eg in ld/scripttempl/pe.sc:

   /DISCARD/ :
   {
     *(.debug\$S)
     *(.debug\$T)
     *(.debug\$F)
     *(.drectve)
   }

Its affects are documented in the linker documentation which you have 
already quoted.  Basically it means that any input sections which are 
assigned to the output section with the /DISCARD/ name will be ignored 
when the final executable is generated.  So for example in the linker 
script fragment above any section named .drectve or .debug$S or .debug$T 
or .debug$F in any input file given to the linker will be ignored and 
not copied into the output file.

> finally: I wonder if mot file produced from elf with obj-copy, could
> have the addresses in the s1 or s2 record without an order.
> 
> All my mot file are sorted.
> Since I'm writing an s-record file interpreter to program the micro
> flash, I need to know if the s-record file specifications allows the
> unsorted records s1, s2 or s3.

The specification does allow for unsorted records.  This is mentioned at 
the start of the bfd/srec.c file:

	The only interesting thing is that S-Records may come out of
	order and there is no header, so an initial scan is required
	to discover the minimum and maximum addresses used to create
	the vma and size of the only section we create.

Cheers
   Nick






More information about the Binutils mailing list