avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avr-gcc-list] How not to use special memory area


From: Adib Taraben
Subject: Re: [avr-gcc-list] How not to use special memory area
Date: Tue, 30 Mar 2004 09:53:02 +0200
User-agent: Mozilla Thunderbird 0.5 (Windows/20040207)

<x-flowed>
Hello Eric,

sorry for the delay.

Your solution is that what I'm  looked for! Many thanks.
The linker script is very cryptic for me. It's a little monster;-)

Thanks again,

Adib.

Erik Christiansen wrote:
On Fri, Mar 19, 2004 at 09:47:59AM +0100, Adib Taraben wrote:

The RAM is via glue-logik selected in the memory area 0x2000-0xffff.
The area from 0x1000-0x1fff is used for external IO-Chips.


I see the linkerscript from the ldscrips directory avrmega103.x etc.
I have no glue how to extend the data section, so that it has a hole from 0x1000-0x1fff.


Hmmm ..., if internal and external RAM are treated uniformly, then you
lose control of which variables reside in the faster internal RAM. (That
could have ugly performance consequences.) Perhaps it would be better to
employ two memory segments, especially since that also provides the
hole, without additional effort? In the linker script then, one could
try something like:

MEMORY
{ text (rx) : ORIGIN = 0, LENGTH = 64K
  data   (rw!x) : ORIGIN = 0x800100, LENGTH = 4K      /* Internal RAM */
  data2  (rw!x) : ORIGIN = 0x802000, LENGTH = 0xe000  /* External RAM */
  eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 2K
}

SECTIONS {
   ...
                    /* Between .data & .bss sections is a good place: */
  .data2 :
  {
    *(.data2)           /* You may prefer other names. */
    *(.ext_ram)         /* Feel free to change them.   */
  } > data2

   ...
}
Now, if you're programming in C, __attribute__ ((section(".ext_ram")))
should put your variable outside, above the hole. In assembler (with
which I have more avr experience), you'd use:  .section .ext_ram,"aw"

Please post on how it goes. :-)

HTH,
Erik

_______________________________________________
avr-gcc-list mailing list
address@hidden
http://www.avr1.org/mailman/listinfo/avr-gcc-list

</x-flowed>

reply via email to

[Prev in Thread] Current Thread [Next in Thread]