1#--------------------------------------------------------------------------- 2# Project: NitroSDK - tools - makelcf 3# File: ARM9-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: ARM9-TS.lcf,v $ 14# Revision 1.14 2005/04/14 00:04:17 terui 15# Update copyright. 16# 17# Revision 1.13 2005/04/13 12:51:15 terui 18# Change SDK_AUTOLOAD_DTCM_START 0x027c0000 -> 0x027e0000 19# 20# Revision 1.12 2004/08/18 01:59:16 yasu 21# DTCM moves to 0x027c0000 22# 23# Revision 1.11 2004/07/26 02:22:32 yasu 24# Change DTCM address to 0x023c0000 25# 26# Revision 1.10 2004/07/26 00:08:27 yasu 27# Fix label of exception table 28# 29# Revision 1.9 2004/07/24 05:42:25 yasu 30# Set default values for SDK_AUTOGEN_xTCM_START 31# 32# Revision 1.8 2004/07/23 11:32:14 yasu 33# Define labels for __exception_table_start__ and _end__ 34# 35# Revision 1.7 2004/07/13 00:03:46 yasu 36# Add SDK_AUTOLOAD_[ID]TCM_BSS_END 37# 38# Revision 1.6 2004/07/02 08:34:20 yasu 39# Add .itcm/.dtcm section 40# 41# Revision 1.5 2004/07/01 10:41:46 yasu 42# support autoload 43# 44# Revision 1.4 2004/06/08 07:46:40 yasu 45# move start address 0x02004000 -> 0x02000000 46# 47# Revision 1.3 2004/06/02 07:42:09 yasu 48# Set libsyscall.a in FORCE_ACTIVE 49# Put NitroMain at the top of ROM image 50# 51# Revision 1.2 2004/05/07 05:13:47 yasu 52# remove STATICINIT for cw0.5 53# 54# Revision 1.1 2004/04/06 01:59:54 yasu 55# newly added 56# 57# $NoKeywords: $ 58#--------------------------------------------------------------------------- 59MEMORY 60{ 61 main (RWX) : ORIGIN = 0x02000000, LENGTH = 0x0 62 bss (RWX) : ORIGIN = AFTER(main), LENGTH = 0x0 63 arena (RW) : ORIGIN = AFTER(bss), LENGTH = 0x0 64} 65 66KEEP_SECTION 67{ 68 .ctor 69} 70 71FORCE_ACTIVE 72{ 73 SVC_SoftReset 74} 75 76SECTIONS 77{ 78 .main: AT 0x02000000 79 { 80 ALIGNALL(4); . = ALIGN(32); 81 82 SDK_STATIC_START =.; 83 SDK_STATIC_TEXT_START =.; 84 #:::::::::: text 85 libsyscall.a (.text) 86 OBJECT (NitroMain,*) 87 * (.text) 88 * (.itcm) 89 * (.init) 90 * (.exception) 91 . = ALIGN(4); 92 __exception_table_start__ =.; 93 EXCEPTION 94 __exception_table_end__ =.; 95 . = ALIGN(4); 96 * (.rodata) 97 __sinit__ =.; 98 * (.ctor) 99 WRITEW 0; 100 #:::::::::: text 101 . = ALIGN(32); 102 SDK_STATIC_TEXT_END =.; 103 104 SDK_STATIC_DATA_START =.; 105 #:::::::::: data 106 * (.sdata) 107 * (.data) 108 * (.dtcm) 109 #:::::::::: data 110 . = ALIGN(32); 111 SDK_STATIC_DATA_END =.; 112 SDK_STATIC_END =.; 113 114 SDK_STATIC_TEXT_SIZE = SDK_STATIC_TEXT_END - SDK_STATIC_TEXT_START; 115 SDK_STATIC_DATA_SIZE = SDK_STATIC_DATA_END - SDK_STATIC_DATA_START; 116 SDK_STATIC_SIZE = SDK_STATIC_END - SDK_STATIC_START; 117 118 } > main 119 120 121 .bss: AT 0x02000000 + SIZEOF(main) 122 { 123 ALIGNALL(4); . = ALIGN(32); 124 125 SDK_STATIC_BSS_START =.; 126 #:::::::::: bss 127 * (.sbss) 128 * (.bss) 129 #:::::::::: bss 130 SDK_STATIC_BSS_END =.; 131 132 SDK_STATIC_BSS_SIZE = SDK_STATIC_BSS_END - SDK_STATIC_BSS_START; 133 134 } > bss 135 136 .area: 137 { 138 . = ALIGN(4); 139 SDK_SECTION_ARENA_START =.; 140 141 } > arena 142 143 ############################ AUTOLOAD_INFO ########################## 144 SDK_AUTOLOAD_ITCM_START = 0x01ff8000; 145 SDK_AUTOLOAD_ITCM_END = SDK_AUTOLOAD_ITCM_START; 146 SDK_AUTOLOAD_ITCM_BSS_END = SDK_AUTOLOAD_ITCM_START; 147 SDK_AUTOLOAD_DTCM_START = 0x027e0000; 148 SDK_AUTOLOAD_DTCM_END = SDK_AUTOLOAD_DTCM_START; 149 SDK_AUTOLOAD_DTCM_BSS_END = SDK_AUTOLOAD_DTCM_START; 150 SDK_AUTOLOAD_START = SDK_STATIC_END; 151 SDK_AUTOLOAD_SIZE = 0; 152 SDK_AUTOLOAD_NUMBER = 0; 153 SDK_AUTOLOAD_LIST = SDK_AUTOLOAD_START; 154 SDK_AUTOLOAD_LIST_END = SDK_AUTOLOAD_START; 155 156 ############################ OVERLAYS ############################### 157 SDK_OVERLAY_NUMBER = 0; 158 159 ############################ OTHERS ################################# 160 SDK_MAIN_ARENA_LO = SDK_SECTION_ARENA_START; 161 SDK_IRQ_STACKSIZE = 0x400; # allocated in DTCM 162 SDK_SYS_STACKSIZE = 0; # when 0 means all remains of DTCM 163} 164