aboutsummaryrefslogtreecommitdiff
path: root/AT91SAM7S256/SAM7S256/Tools/at91SAM7S256_Remap.xcl
blob: bca7a2ad49953f184d5c167518493f8d51d223cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
// ---------------------------------------------------------
//   ATMEL Microcontroller Software Support  -  ROUSSET  -
// ---------------------------------------------------------
// The software is delivered "AS IS" without warranty or 
// condition of any  kind, either express, implied or 
// statutory. This includes without limitation any warranty 
// or condition with respect to merchantability or fitness 
// for any particular purpose, or against the infringements of
// intellectual property rights of others.
// ---------------------------------------------------------
//  File: at91SAM7S64_Remap.xlc
//
//  1.2 04/Feb/05 JPP    : Creation for 4.11A
//  1.2 08/Feb/05 JPP    : Add Remap address and CODE_I for __ramfuc
//
//  $Revision: 1.2 $
//
// ---------------------------------------------------------

//*************************************************************************
// XLINK command file template for EWARM/ICCARM
//
// Usage:  xlink  -f lnkarm  <your_object_file(s)>
//                -s <program start label>  <C/C++ runtime library>
//
// $Revision: 1.2 $
//*************************************************************************

//************************************************
// Inform the linker about the CPU family used.
// AT91SAM7S64 Memory mapping
// No remap
//  ROMSTART
//  Start address 0x0000 0000 
//  Size  256 Kbo 0x0004 0000 
//  RAMSTART
//  Start address 0x0020 0000 
//  Size  64 Kbo  0x0001 0000 
// Remap done
//  RAMSTART
//  Start address 0x0000 0000 
//  Size  64 Kbo  0x0001 0000 
//  ROMSTART
//  Start address 0x0010 0000 
//  Size  256 Kbo 0x0004 0000 

//************************************************
-carm

//*************************************************************************
// Internal Ram segments mapped AFTER REMAP 64 K.
//*************************************************************************

// Base address used to stack before remap
-Z(CONST)INTRAMSTART=00200000
-Z(CONST)INTRAMEND_BEFORE_REMAP=00210000
// Base address used to RAM after Reamp
-Z(CONST)INTRAMEND_REMAP=00010000

//*************************************************************************
// Read-only segments mapped to Flash 256 K.
//*************************************************************************
-DROMSTART=00100000
-DROMEND=0013FFFF
//*************************************************************************
// Read/write segments mapped to RAM.
//*************************************************************************
// the first space it used for interrupt vector
-DRAMSTART=00000100
-DRAMEND=0000FFFF

//************************************************
// Address range for reset and exception
// vectors (INTVEC).
// The vector area is 32 bytes, 
// an additional 32 bytes is allocated for the
// constant table used by ldr PC in cstartup.s79.
//************************************************
-Z(CODE)INTVEC=00-3F

//************************************************
// Startup code and exception routines (ICODE).
//************************************************
-Z(CODE)ICODE,DIFUNCT=ROMSTART-ROMEND
-Z(CODE)SWITAB=ROMSTART-ROMEND

//************************************************
// Code segments may be placed anywhere.
//************************************************
-Z(CODE)CODE=ROMSTART-ROMEND
-Z(CODE)RAMCODE=RAMSTART-RAMEND

//************************************************
// Various constants and initializers.
//************************************************
-Z(CONST)INITTAB,DATA_ID,DATA_C=ROMSTART-ROMEND
-Z(CONST)CHECKSUM=ROMSTART-ROMEND


//************************************************
// Data segments.
//************************************************
-Z(DATA)DATA_I,DATA_Z,DATA_N=RAMSTART-RAMEND

//************************************************
// ICCARM produces code for __ramfunc functions in
// CODE_I segments. The -Q XLINK command line
// option redirects XLINK to emit the code in the
// debug information associated with the CODE_I
// segment, where the code will execute.
//************************************************
//************************************************
// __ramfunc code copied to and executed from RAM.
//************************************************
-Z(DATA)CODE_I=RAMSTART-RAMEND
-Z(CONST)CODE_ID=ROMSTART-ROMEND // Initializer for
-QCODE_I=CODE_ID


//*************************************************************************
// Stack and heap segments.
//*************************************************************************
-D_CSTACK_SIZE=(100*4)
-D_IRQ_STACK_SIZE=(3*8*4)

-Z(DATA)CSTACK+_CSTACK_SIZE=RAMSTART-RAMEND
-Z(DATA)IRQ_STACK+_IRQ_STACK_SIZE=RAMSTART-RAMEND

-D_HEAP_SIZE=1024
-Z(DATA)HEAP+_HEAP_SIZE=RAMSTART-RAMEND

//*************************************************************************
// ELF/DWARF support.
//
// Uncomment the line "-Felf" below to generate ELF/DWARF output.
// Available format specifiers are:
//
//   "-yn": Suppress DWARF debug output
//   "-yp": Multiple ELF program sections
//   "-yas": Format suitable for debuggers from ARM Ltd (also sets -p flag)
//
// "-Felf" and the format specifiers can also be supplied directly as
// command line options, or selected from the Xlink Output tab in the
// IAR Embedded Workbench.
//*************************************************************************

// -Felf