fd2a0c75e0d213fc1e93db2a30476a5637e8be98
[SCSI2SD-V6.git] / software / SCSI2SD / SCSI2SD.cydsn / Generated_Source / PSoC5 / Cm3RealView.scat
1 #! armcc -E\r
2 ; The first line specifies a preprocessor command that the linker invokes \r
3 ; to pass a scatter file through a C preprocessor.\r
4 \r
5 ;********************************************************************************\r
6 ;* File Name: Cm3RealView.scat\r
7 ;* Version 4.0\r
8 ;*\r
9 ;*  Description:\r
10 ;*  This Linker Descriptor file describes the memory layout of the PSoC5\r
11 ;*  device. The memory layout of the final binary and hex images as well as\r
12 ;*  the placement in PSoC5 memory is described.\r
13 ;*\r
14 ;*\r
15 ;*  Note:\r
16 ;*\r
17 ;*  romvectors: Cypress default Interrupt sevice routine vector table.\r
18 ;*\r
19 ;*      This is the ISR vector table at bootup. Used only for the reset vector.\r
20 ;*\r
21 ;*\r
22 ;*  ramvectors: Cypress ram interrupt service routine vector table.\r
23 ;*\r
24 ;*      This is the ISR vector table used by the application.\r
25 ;*\r
26 ;*\r
27 ;********************************************************************************\r
28 ;* Copyright 2008-2013, Cypress Semiconductor Corporation.  All rights reserved.\r
29 ;* You may use this file only in accordance with the license, terms, conditions,\r
30 ;* disclaimers, and limitations in the end user license agreement accompanying\r
31 ;* the software package with which this file was provided.\r
32 ;********************************************************************************/\r
33 #include "cyfitter.h"\r
34 \r
35 #define CY_FLASH_SIZE       131072\r
36 #define CY_APPL_ORIGIN      0\r
37 #define CY_FLASH_ROW_SIZE   256\r
38 #define CY_ECC_ROW_SIZE     32\r
39 #define CY_EE_SIZE          2048\r
40 #define CY_METADATA_SIZE    64\r
41 \r
42 \r
43 ; Define application base address\r
44 #if (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLE)\r
45     #define CY_APPL_NUM     1\r
46     #define CY_APPL_MAX     1\r
47     #define CY_EE_IN_BTLDR  0\r
48 \r
49     #if CY_APPL_ORIGIN\r
50         #define APPL1_START     CY_APPL_ORIGIN\r
51     #else\r
52         #define APPL1_START     AlignExpr(ImageLimit(CYBOOTLOADER), CY_FLASH_ROW_SIZE)\r
53     #endif\r
54 \r
55     #define APPL_START      (APPL1_START + AlignExpr(((CY_FLASH_SIZE - APPL1_START - 2 * CY_FLASH_ROW_SIZE) / 2 ) * (CY_APPL_NUM - 1), CY_FLASH_ROW_SIZE))\r
56     #define ECC_OFFSET      ((APPL_START / CY_FLASH_ROW_SIZE) * CY_ECC_ROW_SIZE)\r
57     #define EE_OFFSET       (CY_EE_IN_BTLDR ? 0 : (CY_EE_SIZE / CY_APPL_MAX) * (CY_APPL_NUM - 1))\r
58     #define EE_SIZE         (CY_EE_IN_BTLDR ? CY_EE_SIZE : (CY_EE_SIZE / CY_APPL_MAX))\r
59 \r
60 #else\r
61 \r
62     #define APPL_START      0\r
63     #define ECC_OFFSET      0\r
64     #define EE_OFFSET       0\r
65     #define EE_SIZE         CY_EE_SIZE\r
66 \r
67 #endif\r
68 \r
69 \r
70 ; Place Bootloader at the beginning of Flash\r
71 #if (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLE)\r
72 \r
73     CYBOOTLOADER 0\r
74     {\r
75         .cybootloader +0\r
76         {\r
77             * (.cybootloader)\r
78         }\r
79     }\r
80 \r
81     #if CY_APPL_ORIGIN\r
82         ScatterAssert(APPL_START > LoadLimit(CYBOOTLOADER))\r
83     #endif\r
84 \r
85 #endif\r
86 \r
87 \r
88 APPLICATION APPL_START (CY_FLASH_SIZE - APPL_START)\r
89 {\r
90     VECTORS +0\r
91     {\r
92         * (.romvectors)\r
93     }\r
94 \r
95     CODE +0\r
96     {\r
97         * (+RO)\r
98     }\r
99 \r
100     ISRVECTORS (0x20000000 - (32768 / 2)) UNINIT\r
101     {\r
102         * (.ramvectors)\r
103     }\r
104 \r
105     NOINIT_DATA +0 UNINIT\r
106     {\r
107         * (.noinit)\r
108     }\r
109 \r
110     DATA +0\r
111     {\r
112         .ANY (+RW, +ZI)\r
113     }\r
114 \r
115     ARM_LIB_HEAP (0x20000000 + (32768 / 2) - 0x0256 - 0x2000) EMPTY 0x0256\r
116     {\r
117     }\r
118 \r
119     ARM_LIB_STACK (0x20000000 + (32768 / 2)) EMPTY -0x2000\r
120     {\r
121     }\r
122 }\r
123 \r
124 \r
125 #if (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_BOOTLOADER || CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_MULTIAPPBOOTLOADER)\r
126 \r
127     CYLOADERMETA (CY_FLASH_SIZE - CY_METADATA_SIZE)\r
128     {\r
129         .cyloadermeta +0 { * (.cyloadermeta) }\r
130     }\r
131 \r
132 #else\r
133 \r
134     #if (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLE)\r
135 \r
136         CYLOADABLEMETA (CY_FLASH_SIZE - CY_FLASH_ROW_SIZE * (CY_APPL_NUM - 1) - CY_METADATA_SIZE)\r
137         {\r
138             .cyloadablemeta +0 { * (.cyloadablemeta) }\r
139         }\r
140     \r
141     #endif\r
142 \r
143 #endif\r
144 \r
145 #if (CYDEV_ECC_ENABLE == 0)\r
146 \r
147     CYCONFIGECC (0x80000000 + ECC_OFFSET)\r
148     {\r
149         .cyconfigecc +0 { * (.cyconfigecc) }\r
150     }\r
151 \r
152 #endif\r
153 \r
154 CYCUSTNVL 0x90000000\r
155 {\r
156     .cycustnvl +0 { * (.cycustnvl) }\r
157 }\r
158 \r
159 CYWOLATCH 0x90100000\r
160 {\r
161     .cywolatch +0 { * (.cywolatch) }\r
162 }\r
163 \r
164 #if defined(CYDEV_ALLOCATE_EEPROM)\r
165 \r
166     CYEEPROM 0x90200000 + EE_OFFSET (EE_SIZE)\r
167     {\r
168         .cyeeprom +0 { * (.cyeeprom) }\r
169     }\r
170 \r
171 #endif\r
172 \r
173 CYFLASHPROTECT 0x90400000\r
174 {\r
175     .cyflashprotect +0 { * (.cyflashprotect) }\r
176 }\r
177 \r
178 CYMETA 0x90500000\r
179 {\r
180     .cymeta +0 { * (.cymeta) }\r
181 }\r
182 \r
183 #if (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLE)\r
184 \r
185     CYLOADERMETA +0\r
186     {\r
187         .cyloadermeta +0 { * (.cyloadermeta) }\r
188     }\r
189 \r
190 #endif\r