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