diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2009-02-20 02:33:40 +0000 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2009-02-20 02:33:40 +0000 |
commit | ec67912b638e0fae3cae7b4182d23db6d36c5135 (patch) | |
tree | 8101f45d02947a828d20174a45d1a6d19fafa3b2 /firmware/target/coldfire/iaudio/app.lds | |
parent | 07ae1e4fb9a1fd9d6ce9c48c5300b53e87303937 (diff) | |
download | rockbox-ec67912b638e0fae3cae7b4182d23db6d36c5135.tar.gz rockbox-ec67912b638e0fae3cae7b4182d23db6d36c5135.zip |
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
Diffstat (limited to 'firmware/target/coldfire/iaudio/app.lds')
-rw-r--r-- | firmware/target/coldfire/iaudio/app.lds | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/firmware/target/coldfire/iaudio/app.lds b/firmware/target/coldfire/iaudio/app.lds index d3ccce24f0..5cb2f6cb3f 100644 --- a/firmware/target/coldfire/iaudio/app.lds +++ b/firmware/target/coldfire/iaudio/app.lds | |||
@@ -94,6 +94,7 @@ SECTIONS | |||
94 | } > IRAM AT> DRAM | 94 | } > IRAM AT> DRAM |
95 | 95 | ||
96 | _iramcopy = LOADADDR(.iram); | 96 | _iramcopy = LOADADDR(.iram); |
97 | _noloaddram = LOADADDR(.iram); | ||
97 | 98 | ||
98 | .ibss (NOLOAD) : | 99 | .ibss (NOLOAD) : |
99 | { | 100 | { |
@@ -103,7 +104,7 @@ SECTIONS | |||
103 | _iend = .; | 104 | _iend = .; |
104 | } > IRAM | 105 | } > IRAM |
105 | 106 | ||
106 | .stack : | 107 | .stack (NOLOAD) : |
107 | { | 108 | { |
108 | *(.stack) | 109 | *(.stack) |
109 | stackbegin = .; | 110 | stackbegin = .; |
@@ -111,7 +112,7 @@ SECTIONS | |||
111 | stackend = .; | 112 | stackend = .; |
112 | } > IRAM | 113 | } > IRAM |
113 | 114 | ||
114 | .bss ADDR(.data) + SIZEOF(.data) + SIZEOF(.iram): | 115 | .bss _noloaddram (NOLOAD): |
115 | { | 116 | { |
116 | _edata = .; | 117 | _edata = .; |
117 | *(.bss*) | 118 | *(.bss*) |
@@ -120,25 +121,26 @@ SECTIONS | |||
120 | _end = .; | 121 | _end = .; |
121 | } > DRAM | 122 | } > DRAM |
122 | 123 | ||
123 | .audiobuf ALIGN(4) : | 124 | .audiobuf (NOLOAD) : |
124 | { | 125 | { |
126 | . = ALIGN(4); | ||
125 | _audiobuffer = .; | 127 | _audiobuffer = .; |
126 | audiobuffer = .; | 128 | audiobuffer = .; |
127 | } > DRAM | 129 | } > DRAM |
128 | 130 | ||
129 | .audiobufend ENDAUDIOADDR: | 131 | .audiobufend ENDAUDIOADDR (NOLOAD) : |
130 | { | 132 | { |
131 | audiobufend = .; | 133 | audiobufend = .; |
132 | _audiobufend = .; | 134 | _audiobufend = .; |
133 | } > DRAM | 135 | } > DRAM |
134 | 136 | ||
135 | .codec ENDAUDIOADDR: | 137 | .codec ENDAUDIOADDR (NOLOAD) : |
136 | { | 138 | { |
137 | codecbuf = .; | 139 | codecbuf = .; |
138 | _codecbuf = .; | 140 | _codecbuf = .; |
139 | } | 141 | } |
140 | 142 | ||
141 | .plugin ENDADDR: | 143 | .plugin ENDADDR (NOLOAD) : |
142 | { | 144 | { |
143 | _pluginbuf = .; | 145 | _pluginbuf = .; |
144 | pluginbuf = .; | 146 | pluginbuf = .; |