1#---------------------------------------------------------------------------
2#  Project:  NitroSDK - tools - makelcf
3#  File:     ARM7-TS.lcf
4#
5#  Copyright 2003-2008 Nintendo.  All rights reserved.
6#
7#  These coded instructions, statements, and computer programs contain
8#  proprietary information of Nintendo of America Inc. and/or Nintendo
9#  Company Ltd., and are protected by Federal copyright law.  They may
10#  not be disclosed to third parties or copied or duplicated in any form,
11#  in whole or in part, without the prior written consent of Nintendo.
12#
13#  $Log: ARM7-TS.lcf,v $
14#  Revision 1.10  2005/04/14 00:04:17  terui
15#  Update copyright.
16#
17#  Revision 1.9  2005/04/13 12:53:20  terui
18#  Change SDK_SUBPRIV_ARENA_LO 0x027c0000 -> 0x027e0000
19#
20#  Revision 1.8  2004/08/18 01:59:32  yasu
21#  Support SDK_SUBPRIV_ARENA_LO
22#
23#  Revision 1.7  2004/07/26 00:08:27  yasu
24#  Fix label of exception table
25#
26#  Revision 1.6  2004/07/23 11:32:14  yasu
27#  Define labels for __exception_table_start__ and _end__
28#
29#  Revision 1.5  2004/07/02 08:35:06  yasu
30#  Add .wram section
31#
32#  Revision 1.4  2004/07/01 10:41:46  yasu
33#  support autoload
34#
35#  Revision 1.3  2004/05/28 02:11:15  yasu
36#  set WRAM arena region correctly
37#
38#  Revision 1.2  2004/05/07 05:13:47  yasu
39#  remove STATICINIT for cw0.5
40#
41#  Revision 1.1  2004/04/06 01:59:54  yasu
42#  newly added
43#
44#  $NoKeywords: $
45#---------------------------------------------------------------------------
46MEMORY
47{
48	main       (RWX) : ORIGIN = 0x037f8000,  LENGTH = 0x0
49	bss        (RWX) : ORIGIN = AFTER(main), LENGTH = 0x0
50	arena      (RW)  : ORIGIN = AFTER(bss),  LENGTH = 0x0
51	workram    (RWX) : ORIGIN = 0x037f8000,  LENGTH = 0x10000 > workram.check
52}
53
54KEEP_SECTION
55{
56	.ctor
57}
58
59SECTIONS
60{
61	.main: AT 0x037f8000
62	{
63	ALIGNALL(4);		. = ALIGN(4);
64
65	SDK_STATIC_START	=.;
66	SDK_STATIC_TEXT_START	=.;
67				#:::::::::: text
68				crt0.o (.text)
69				* (.text)
70				* (.wram)
71				* (.init)
72				* (.exception)
73				. = ALIGN(4);
74	__exception_table_start__ =.;
75				EXCEPTION
76	__exception_table_end__	=.;
77				. = ALIGN(4);
78				* (.rodata)
79	__sinit__		=.;
80				* (.ctor)
81				WRITEW	0;
82				#:::::::::: text
83				. = ALIGN(4);
84	SDK_STATIC_TEXT_END	=.;
85
86	SDK_STATIC_DATA_START	=.;
87				#:::::::::: data
88				* (.sdata)
89				* (.data)
90				#:::::::::: data
91				. = ALIGN(4);
92	SDK_STATIC_DATA_END	=.;
93	SDK_STATIC_END		=.;
94
95	SDK_STATIC_TEXT_SIZE	= SDK_STATIC_TEXT_END - SDK_STATIC_TEXT_START;
96	SDK_STATIC_DATA_SIZE	= SDK_STATIC_DATA_END - SDK_STATIC_DATA_START;
97	SDK_STATIC_SIZE		= SDK_STATIC_END      - SDK_STATIC_START;
98
99	} > main
100
101
102	.bss: AT 0x037f8000 + SIZEOF(main)
103	{
104	ALIGNALL(4);		. = ALIGN(4);
105
106	SDK_STATIC_BSS_START	=.;
107				#:::::::::: bss
108				* (.sbss)
109				* (.bss)
110				#:::::::::: bss
111	SDK_STATIC_BSS_END	=.;
112
113	SDK_STATIC_BSS_SIZE	= SDK_STATIC_BSS_END - SDK_STATIC_BSS_START;
114
115	} > bss
116
117	.area:
118	{
119				. = ALIGN(4);
120	SDK_SECTION_ARENA_START = .;
121
122	} > arena
123
124	############################ AUTOLOAD_INFO ##########################
125	SDK_AUTOLOAD_START		= SDK_STATIC_END;
126	SDK_AUTOLOAD_SIZE		= 0;
127	SDK_AUTOLOAD_NUMBER		= 0;
128	SDK_AUTOLOAD_LIST		= SDK_AUTOLOAD_START;
129	SDK_AUTOLOAD_LIST_END		= SDK_AUTOLOAD_START;
130
131	############################ OVERLAYS ###############################
132	SDK_OVERLAY_NUMBER 		= 0;
133
134	############################ OTHERS #################################
135	SDK_SUBPRIV_ARENA_LO = 0x027e0000;
136	SDK_WRAM_ARENA_LO    = SDK_SECTION_ARENA_START;
137	SDK_IRQ_STACKSIZE = 0x200;	# allocated in PWRAM
138	SDK_SYS_STACKSIZE = 0x400;	# allocated in PWRAM
139
140	# work ram size checker
141	.workram:
142	{
143		. = . + SDK_SECTION_ARENA_START - 0x037f8000 + SDK_IRQ_STACKSIZE + SDK_SYS_STACKSIZE;
144	} > workram
145}
146