FreeEMS  0.2.0-SNAPSHOT-282-g9efc524
regions.x
Go to the documentation of this file.
1 /* FreeEMS - the open source engine management system
2 
3  Copyright 2008-2009 Fred Cooke
4 
5  This file is part of the FreeEMS project.
6 
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.
11 
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.
16 
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/
19 
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!
22 
23  Thank you for choosing FreeEMS to run your engine! */
24 
25 
26 /** @file
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  */
41 
42 
43 SECTIONS
44 {
45 
46 /*&&&&&&&&&&&&&& RAM Regions &&&&&&&&&&&&&&*/
47 
48 /* The main RAM region is called "data" and */
49 /* can be found in the main linker script */
50 
51 /* The RAM page window through which all tunable config is reached. */
52  .rpage :
53  {
54  *(.rpage)
55  } > rpage
56 
57 /* Comms transmission buffer */
58  .txbuf :
59  {
60  *(.txbuf)
61  } > txbuf
62 
63 /* Comms reception buffer */
64  .rxbuf :
65  {
66  *(.rxbuf)
67  } > rxbuf
68 
69 
70 /*&&&&&&&&&&&&&& Linear Flash Regions &&&&&&&&&&&&&&*/
71 
72 /* Primary linear code and persistent data is called */
73 /* "text" and can be found in the main linker script */
74 
75 /* Secondary linear code and persistent data */
76  .text1 :
77  {
78  *(.text1)
79  } > text1
80 
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 */
87 
88 /* Non live tunable configuration items 1 */
89  .fixedconf1 :
90  {
91  *(.fixedconf1)
92  } > fixedconf1
93 
94 /* Non live tunable configuration items 1 */
95  .fixedconf2 :
96  {
97  *(.fixedconf2)
98  } > fixedconf2
99 
100 
101 /*&&&&&&&&&&&&&& Paged Flash Regions &&&&&&&&&&&&&&*/
102 
103 /* PPAGE FA is used for fuel tables and setup function */
104  .dpageFA :
105  {
106  *(.dpageFA)
107  } > dpageFA
108 
109  .fpageFA :
110  {
111  *(.fpageFA)
112  } > fpageFA
113 
114 /* PPAGE FB is used for smaller tunables and setup function */
115  .fpageFB :
116  {
117  *(.fpageFB)
118  } > fpageFB
119 
120 /* Data split up into eight chunks to catch size mistakes better */
121  .dpageFB1 :
122  {
123  *(.dpageFB1)
124  } > dpageFB1
125 
126  .dpageFB2 :
127  {
128  *(.dpageFB2)
129  } > dpageFB2
130 
131  .dpageFB3 :
132  {
133  *(.dpageFB3)
134  } > dpageFB3
135 
136  .dpageFB4 :
137  {
138  *(.dpageFB4)
139  } > dpageFB4
140 
141  .dpageFB5 :
142  {
143  *(.dpageFB5)
144  } > dpageFB5
145 
146  .dpageFB6 :
147  {
148  *(.dpageFB6)
149  } > dpageFB6
150 
151  .dpageFB7 :
152  {
153  *(.dpageFB7)
154  } > dpageFB7
155 
156  .dpageFB8 :
157  {
158  *(.dpageFB8)
159  } > dpageFB8
160 
161 /* PPAGE FC is used for timing tables and setup function */
162  .dpageFC :
163  {
164  *(.dpageFC)
165  } > dpageFC
166 
167  .fpageFC :
168  {
169  *(.fpageFC)
170  } > fpageFC
171 
172 /* The rest from this 128k flash module for general code */
173  .ppageF8 :
174  {
175  *(.fpageF8)
176  *(.dpageF8)
177  } > ppageF8
178 
179  .fpageF9 :
180  {
181  *(.fpageF9)
182  } > fpageF9
183 
184  .dpageF9 :
185  {
186  *(.dpageF9)
187  } > dpageF9
188 
189  .ppageFE :
190  {
191  *(.ppageFE)
192  } > ppageFE
193 
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
200 
201  .ppageFF : (text / 0xC000 - 0xFFFF)
202  {
203  *(.ppageFF)
204  } > ppageFF */
205 
206 
207  .ppageE0X :
208  {
209  *(.ppageE0X)
210  } > ppageE0X
211 
212  .ppageE0S :
213  {
214  *(.ppageE0S)
215  } > ppageE0S
216 
217  .ppageE1 :
218  {
219  *(.ppageE1)
220  } > ppageE1
221 
222  .ppageE2 :
223  {
224  *(.ppageE2)
225  } > ppageE2
226 
227  .ppageE3 :
228  {
229  *(.ppageE3)
230  } > ppageE3
231 
232  .ppageE4 :
233  {
234  *(.ppageE4)
235  } > ppageE4
236 
237  .ppageE5 :
238  {
239  *(.ppageE5)
240  } > ppageE5
241 
242  .ppageE6 :
243  {
244  *(.ppageE6)
245  } > ppageE6
246 
247  .ppageE7 :
248  {
249  *(.ppageE7)
250  } > ppageE7
251 
252  .ppageE8 :
253  {
254  *(.ppageE8)
255  } > ppageE8
256 
257  .ppageE9 :
258  {
259  *(.ppageE9)
260  } > ppageE9
261 
262  .ppageEA :
263  {
264  *(.ppageEA)
265  } > ppageEA
266 
267  .ppageEB :
268  {
269  *(.ppageEB)
270  } > ppageEB
271 
272  .ppageEC :
273  {
274  *(.ppageEC)
275  } > ppageEC
276 
277  .ppageED :
278  {
279  *(.ppageED)
280  } > ppageED
281 
282  .ppageEE :
283  {
284  *(.ppageEE)
285  } > ppageEE
286 
287  .ppageEF :
288  {
289  *(.ppageEF)
290  } > ppageEF
291 
292  .ppageF0 :
293  {
294  *(.ppageF0)
295  } > ppageF0
296 
297  .ppageF1 :
298  {
299  *(.ppageF1)
300  } > ppageF1
301 
302  .ppageF2 :
303  {
304  *(.ppageF2)
305  } > ppageF2
306 
307  .ppageF3 :
308  {
309  *(.ppageF3)
310  } > ppageF3
311 
312  .ppageF4 :
313  {
314  *(.ppageF4)
315  } > ppageF4
316 
317  .ppageF5 :
318  {
319  *(.ppageF5)
320  } > ppageF5
321 
322  .ppageF6 :
323  {
324  *(.ppageF6)
325  } > ppageF6
326 
327  .ppageF7 :
328  {
329  *(.ppageF7)
330  } > ppageF7
331 }
332 
333 
334 /** @endcond */