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

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Getting linker script memory info from the code


> Is there any way I can obtain info from the linker script's MEMORY spec
> from within my code? Are the parameters made available as symbols by the
> linker or anything?
>
> - Toralf
>

You can certainly do it if you have your own linker script.  For example,
you might have something like this in your linker file:

 .bss (NOLOAD) :
 {
  . = ALIGN(0x4);
  __bss_start = .;
  *(.shbss)
  *(.bss)
  *(COMMON)
  _end =  ALIGN (0x8);   /* Used by sbrk() as start of heap */
  __bss_end = _end;
 } > IRam


You can then have C code like:

extern unsigned long int __bss_start, __bss_end;
void clearBss(void)
{
    unsigned long int *p;
    unsigned short int n;

    p = &__bss_start;      // Source for clear
    n = &__bss_end - &__bss_start;   // Total size (in 32-bit dwords)
    while (n--) {
        *p++ = 0;       // Clear bss
    };
}





------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


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