]> git.sur5r.net Git - openocd/blob - testing/examples/LPC2148Test/prj/lpc2148_rom.ld
- updated svn:eol-style prop to native
[openocd] / testing / examples / LPC2148Test / prj / lpc2148_rom.ld
1 /****************************************************************************
2 *  Copyright (c) 2006 by Michael Fischer. All rights reserved.
3 *
4 *  Redistribution and use in source and binary forms, with or without 
5 *  modification, are permitted provided that the following conditions 
6 *  are met:
7 *  
8 *  1. Redistributions of source code must retain the above copyright 
9 *     notice, this list of conditions and the following disclaimer.
10 *  2. Redistributions in binary form must reproduce the above copyright
11 *     notice, this list of conditions and the following disclaimer in the 
12 *     documentation and/or other materials provided with the distribution.
13 *  3. Neither the name of the author nor the names of its contributors may 
14 *     be used to endorse or promote products derived from this software 
15 *     without specific prior written permission.
16 *
17 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
18 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
19 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
20 *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 
21 *  THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
22 *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
23 *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 
24 *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
25 *  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
26 *  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 
27 *  THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
28 *  SUCH DAMAGE.
29 *
30 ****************************************************************************
31 *
32 *  History:
33 *
34 *  26.01.08  mifi   First Version
35 ****************************************************************************/
36
37
38 ENTRY(ResetHandler)
39 SEARCH_DIR(.)
40
41 /*
42  * Define stack size here
43  */
44 FIQ_STACK_SIZE = 0x0100;
45 IRQ_STACK_SIZE = 0x0100;
46 ABT_STACK_SIZE = 0x0100;
47 UND_STACK_SIZE = 0x0100;
48 SVC_STACK_SIZE = 0x0400;
49
50 /*
51  * This file, olimex_lpcp2148_ram.ld, locate the program in the internal
52  * ram of the LPC2148. For more information about the memory of the LPC2148
53  * take a look in the LPC2141/2142/2144/2146/2148 USER MANUAL.
54  * Reference is made to the user manual from 25 July 2006 Rev. 02
55  *
56  * Take a look at page 8, section 1.Memory maps
57  */
58  
59 MEMORY
60 {
61   rom : org = 0x00000000, len = 512k    
62   ram : org = 0x40000000, len = 32k
63 }
64
65 /*
66  * Do not change the next code
67  */
68 SECTIONS
69 {
70   .text :
71   {
72     *(.vectors);
73     . = ALIGN(4);
74     *(.init);
75     . = ALIGN(4);
76     *(.text);
77     . = ALIGN(4);
78     *(.rodata);
79     . = ALIGN(4);
80     *(.rodata*);
81     . = ALIGN(4);
82     *(.glue_7t);
83     . = ALIGN(4);
84     *(.glue_7);
85     . = ALIGN(4);
86     etext = .;
87   } > rom
88
89   .data :
90   {
91     PROVIDE (__data_start = .);
92     *(.data)
93     . = ALIGN(4);
94     edata = .;
95     _edata = .;
96     PROVIDE (__data_end = .);
97   } > ram
98
99   .bss :
100   {
101     PROVIDE (__bss_start = .);
102     *(.bss)
103     *(COMMON)
104     . = ALIGN(4);
105     PROVIDE (__bss_end = .);
106     
107     . = ALIGN(256);
108     
109     PROVIDE (__stack_start = .);
110     
111     PROVIDE (__stack_fiq_start = .);
112     . += FIQ_STACK_SIZE;
113     . = ALIGN(4);
114     PROVIDE (__stack_fiq_end = .);
115
116     PROVIDE (__stack_irq_start = .);
117     . += IRQ_STACK_SIZE;
118     . = ALIGN(4);
119     PROVIDE (__stack_irq_end = .);
120
121     PROVIDE (__stack_abt_start = .);
122     . += ABT_STACK_SIZE;
123     . = ALIGN(4);
124     PROVIDE (__stack_abt_end = .);
125
126     PROVIDE (__stack_und_start = .);
127     . += UND_STACK_SIZE;
128     . = ALIGN(4);
129     PROVIDE (__stack_und_end = .);
130
131     PROVIDE (__stack_svc_start = .);
132     . += SVC_STACK_SIZE;
133     . = ALIGN(4);
134     PROVIDE (__stack_svc_end = .);
135     PROVIDE (__stack_end = .);
136     PROVIDE (__heap_start = .);   
137   } > ram
138     
139 }
140 /*** EOF ***/
141