This is the mail archive of the crossgcc@cygnus.com mailing list for the crossgcc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Need ORG donor


> Borawski Thomas G. wrote:
> 
> Can someone offer any work-around for the lack of an "ORG"
> directive in the m68k-rtems-as assembler MRI emulation mode ?  Are
> there any
> S-record manipulation utilities out there ?  Thanks.
> 
> *******************************************
> Tom Borawski
> PO Box 8418
> Philadelphia, PA 19101-8418
> 
> TomBorawski@IEEE.org
> *******************************************

We usually find it possible to use the linker to force code to
particular locations.  Put the code in question in its own special
section: 

; foobar.asm

; normal code

	section	.foosect

; some special code

	section	.text

; normal code


then use a linker script to place the code:

/* foobar.ld */

MEMORY
{
  FOOMEM       : ORIGIN = 0x001000,  LENGTH = 0x000200
  TEXT	       : ORIGIN = 0x002000,  LENGTH = 0x010000
}

SECTIONS
{
  FooSect :
  {
    *(.foosect)
  } > FOOMEM

  TextSect :
  {
    *(.text)
  } > TEXTMEM
}


The above forces the special code in .foosect to reside at address
0x1000, and puts the normal code in .text at 0x2000.  There are also
options for linking to one address and loading at another; see ld.info.

Regards,

David Querbach
Real-Time Systems Inc.
_______________________________________________
New CrossGCC FAQ: http://www.objsw.com/CrossGCC
_______________________________________________
To remove yourself from the crossgcc list, send
mail to crossgcc-request@cygnus.com with the
text 'unsubscribe' (without the quotes) in the
body of the message.