Reclaim .iram areas in DRAM by overlapping their load addresses with the uninitialized data sections. I did what I could test out-- not any flash image linker scripts or other target processors. Move any .iram copies in crt0.S's to be the first operation even if not _strictly_ necessary to be emphatic (aka. 'beware').

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20061 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Michael Sevakis 2009-02-20 02:33:40 +00:00
parent 07ae1e4fb9
commit ec67912b63
11 changed files with 76 additions and 65 deletions

View file

@ -90,6 +90,7 @@ SECTIONS
} > IRAM AT> DRAM
_iramcopy = LOADADDR(.iram);
_noloaddram = LOADADDR(.iram);
.ibss (NOLOAD) :
{
@ -99,7 +100,7 @@ SECTIONS
_iend = .;
} > IRAM
.stack :
.stack (NOLOAD) :
{
*(.stack)
stackbegin = .;
@ -107,7 +108,7 @@ SECTIONS
stackend = .;
} > IRAM
.bss ADDR(.data) + SIZEOF(.data) + SIZEOF(.iram):
.bss _noloaddram (NOLOAD) :
{
_edata = .;
*(.bss*)
@ -116,25 +117,26 @@ SECTIONS
_end = .;
} > DRAM
.audiobuf ALIGN(4) :
.audiobuf (NOLOAD) :
{
. = ALIGN(4);
_audiobuffer = .;
audiobuffer = .;
} > DRAM
.audiobufend ENDAUDIOADDR:
.audiobufend ENDAUDIOADDR (NOLOAD) :
{
audiobufend = .;
_audiobufend = .;
} > DRAM
.codec ENDAUDIOADDR:
.codec ENDAUDIOADDR (NOLOAD) :
{
codecbuf = .;
_codecbuf = .;
}
.plugin ENDADDR:
.plugin ENDADDR (NOLOAD) :
{
_pluginbuf = .;
pluginbuf = .;