Removed old s19 files and installed new ones.
[freeems-vanilla.git] / src / regions.x
blob47d96286c631b0b8274b72d4e93b7f367f64ad8f
1 /*      FreeEMS - the open source engine management system
3         Copyright 2008 Fred Cooke
5         This file is part of the FreeEMS project.
7         FreeEMS software is free software: you can redistribute it and/or modify
8         it under the terms of the GNU General Public License as published by
9         the Free Software Foundation, either version 3 of the License, or
10         (at your option) any later version.
12         FreeEMS software is distributed in the hope that it will be useful,
13         but WITHOUT ANY WARRANTY; without even the implied warranty of
14         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15         GNU General Public License for more details.
17         You should have received a copy of the GNU General Public License
18         along with any FreeEMS software.  If not, see http://www.gnu.org/licenses/
20         We ask that if you make any changes to this file you email them upstream to
21         us at admin(at)diyefi(dot)org or, even better, fork the code on github.com!
23         Thank you for choosing FreeEMS to run your engine! */
26 /**     @file regions.x
27  *
28  * @brief Region mapping linker script
29  *
30  * Code section to memory region mapping definition file for inclusion
31  * into the linker script. This file provides rules which map pieces of
32  * code and data from named sections into specific named memory regions.
33  * See memory.x and hc9s12xdp512elfb.x for more information.
34  *
35  * A description of what some of this means can be found at the following URLs:
36  * - http://www.gnu.org/software/m68hc11/m68hc11_binutils.html
37  * - http://m68hc11.serveftp.org/wiki/index.php/FAQ:Link
38  *
39  * @cond regionsscript
40  */
43 SECTIONS
46 /*&&&&&&&&&&&&&& RAM Regions &&&&&&&&&&&&&&*/
48 /* The main RAM region is called "data" and */
49 /* can be found in the main linker script   */
51 /* The RAM page window through which all tunable config is reached. */
52   .rpage :
53   {
54     *(.rpage)
55   } > rpage
57 /* Comms transmission buffer */
58   .txbuf :
59   {
60     *(.txbuf)
61   } > txbuf
63 /* Comms reception buffer */
64   .rxbuf :
65   {
66     *(.rxbuf)
67   } > rxbuf
70 /*&&&&&&&&&&&&&& Linear Flash Regions &&&&&&&&&&&&&&*/
72 /* Primary linear code and persistent data is called */
73 /* "text" and can be found in the main linker script */
75 /* Secondary linear code and persistent data */
76   .text1  :
77   {
78     *(.text1)
79   }  > text1
81 /* This is the flash page window. */
82 /* We use this as paged blocks not directly so it's commented out. */
83 /*  .text2  :
84   {
85     *(.text2)
86   }  > text2 */
88 /* Non live tunable configuration items 1 */
89   .fixedconf1  :
90   {
91     *(.fixedconf1)
92   }  > fixedconf1
94 /* Non live tunable configuration items 1 */
95   .fixedconf2  :
96   {
97     *(.fixedconf2)
98   }  > fixedconf2
101 /*&&&&&&&&&&&&&& Paged Flash Regions &&&&&&&&&&&&&&*/
103 /* PPAGE FA is used for fuel tables and setup function */
104   .dpageFA  :
105   {
106     *(.dpageFA)
107   }  > dpageFA
109   .fpageFA  :
110   {
111     *(.fpageFA)
112   }  > fpageFA
114 /* PPAGE FB is used for smaller tunables and setup function */
115   .fpageFB  :
116   {
117     *(.fpageFB)
118   }  > fpageFB
120 /* Data split up into eight chunks to catch size mistakes better */
121   .dpageFB1 :
122   {
123     *(.dpageFB1)
124   }  > dpageFB1
126   .dpageFB2  :
127   {
128     *(.dpageFB2)
129   }  > dpageFB2
131   .dpageFB3  :
132   {
133     *(.dpageFB3)
134   }  > dpageFB3
136   .dpageFB4  :
137   {
138     *(.dpageFB4)
139   }  > dpageFB4
141   .dpageFB5  :
142   {
143     *(.dpageFB5)
144   }  > dpageFB5
146   .dpageFB6  :
147   {
148     *(.dpageFB6)
149   }  > dpageFB6
151   .dpageFB7  :
152   {
153     *(.dpageFB7)
154   }  > dpageFB7
156   .dpageFB8  :
157   {
158     *(.dpageFB8)
159   }  > dpageFB8
161 /* PPAGE FC is used for timing tables and setup function */
162   .dpageFC  :
163   {
164     *(.dpageFC)
165   }  > dpageFC
167   .fpageFC  :
168   {
169     *(.fpageFC)
170   }  > fpageFC
172 /* The rest from this 128k flash module for general code */
173   .ppageF8  :
174   {
175     *(.fpageF8)
176     *(.dpageF8)
177   }  > ppageF8
179   .fpageF9  :
180   {
181     *(.fpageF9)
182   }  > fpageF9
184   .dpageF9  :
185   {
186     *(.dpageF9)
187   }  > dpageF9
189   .ppageFE  :
190   {
191     *(.ppageFE)
192   }  > ppageFE
194 /* The following two blocks are included just for clarity */
195 /* and are the same as text1 and text when paged.         */
196 /*  .ppageFD  : (text1 / 0x4000 - 0x7FFF)
197   {
198     *(.ppageFD)
199   }  > ppageFD
201   .ppageFF  : (text / 0xC000 - 0xFFFF)
202   {
203     *(.ppageFF)
204   } > ppageFF */
207 /* The rest from the other 3 128k flash modules - can't use yet */
208   .ppageE0  :
209   {
210     *(.ppageE0)
211   }  > ppageE0
213   .ppageE1  :
214   {
215     *(.ppageE1)
216   }  > ppageE1
218   .ppageE2  :
219   {
220     *(.ppageE2)
221   }  > ppageE2
223   .ppageE3  :
224   {
225     *(.ppageE3)
226   }  > ppageE3
228   .ppageE4  :
229   {
230     *(.ppageE4)
231   }  > ppageE4
233   .ppageE5  :
234   {
235     *(.ppageE5)
236   }  > ppageE5
238   .ppageE6  :
239   {
240     *(.ppageE6)
241   }  > ppageE6
243   .ppageE7  :
244   {
245     *(.ppageE7)
246   }  > ppageE7
248   .ppageE8  :
249   {
250     *(.ppageE8)
251   }  > ppageE8
253   .ppageE9  :
254   {
255     *(.ppageE9)
256   }  > ppageE9
258   .ppageEA  :
259   {
260     *(.ppageEA)
261   }  > ppageEA
263   .ppageEB  :
264   {
265     *(.ppageEB)
266   }  > ppageEB
268   .ppageEC  :
269   {
270     *(.ppageEC)
271   }  > ppageEC
273   .ppageED  :
274   {
275     *(.ppageED)
276   }  > ppageED
278   .ppageEE  :
279   {
280     *(.ppageEE)
281   }  > ppageEE
283   .ppageEF  :
284   {
285     *(.ppageEF)
286   }  > ppageEF
288   .ppageF0  :
289   {
290     *(.ppageF0)
291   }  > ppageF0
293   .ppageF1  :
294   {
295     *(.ppageF1)
296   }  > ppageF1
298   .ppageF2  :
299   {
300     *(.ppageF2)
301   }  > ppageF2
303   .ppageF3  :
304   {
305     *(.ppageF3)
306   }  > ppageF3
308   .ppageF4  :
309   {
310     *(.ppageF4)
311   }  > ppageF4
313   .ppageF5  :
314   {
315     *(.ppageF5)
316   }  > ppageF5
318   .ppageF6  :
319   {
320     *(.ppageF6)
321   }  > ppageF6
323   .ppageF7  :
324   {
325     *(.ppageF7)
326   }  > ppageF7
330 /** @endcond */