On Mon, Mar 03, 2008 at 03:48:11PM +0900, ?????? wrote:
>
> To solve this, I even used link script. Like following,
>
> .mysection 0x802000: AT (LOADADDR (.text) + SIZEOF (.text))
> {
> PROVIDE (__begin_mysection = .) ;
> *(.mysection)
> PROVIDE (__end_mysection = .);
> } > data
>
> .data 0x801100: AT (LOADADDR (.mysection) + SIZEOF (.mysection))
> {
> PROVIDE (__data_start = .) ;
> *(.data)
>
No other answers yet? Hopefully this will help a little.
Your script should set the VMA to 0x801100, with the LMA remaining
abutted to the end of .mysection, apparently at 0x800100, as intended.
To diagnose, it would be helpful to see a map file, generated by ld,
during your build.
Alternatively, you could try to work around the problem, using an
additional MEMORY region. Something like:
MEMORY
{
...
data (rw!x) : ORIGIN = ..., LENGTH = ...
extdata (rw!x) : ORIGIN = 0x801100, LENGTH = HowMuchDoYouHave
}
SECTIONS
{
...
.data : AT (LOADADDR (.mysection) + SIZEOF (.mysection))
{
...
} > extdata
This has the advantage of documenting your memory architecture
explicitly. ;-)
Erik
_______________________________________________
AVR-GCC-list mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list