change default target from TS to BB.

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/twl_wrapsdk/trunk@13 4ee2a332-4b2b-5046-8439-1ba90f034370
This commit is contained in:
nakasima 2007-04-10 06:29:00 +00:00
parent 876ca11f4a
commit b8b8ea0074
13 changed files with 122 additions and 1776 deletions

View File

@ -5,7 +5,7 @@
0x4002,,ROM_DEV,8,rw,CFG,volatile,WE,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
0x4004,,CLK,16,rw,CFG,volatile,SND,8,1,WRAM,7,1,AES,2,1,WSD,1,0,SD,0,1,,,,,,,,,,,,,,,,,,,,,,,,
0x4006,,DSP_JTAG,8,rw,CFG,volatile,E,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
0x4007,,CPU_JTAG,8,rw,CFG,volatile,E,1,1,A7,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
0x4007,,CPU_JTAG,8,rw,CFG,volatile,E,1,1,A7,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
0x4008,,DS_MDY,8,rw,CFG,volatile,MC,7,1,SND,2,1,SDMA,1,1,DMA,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,
0x4009,,DS_EX,8,rw,CFG,volatile,MAIM_MEM,6,2,VRAM,5,1,LCDC,4,1,SIO,3,1,SDMA2,2,1,SPI,1,1,INTC,0,1,,,,,,,,,,,,,,,,,,
0x400a,,TWL_EX,16,rw,CFG,volatile,CFG_E,15,1,WSD_PU,13,1,SD_PU,12,1,WRAM,9,0,MC_B,8,1,GPIO,7,1,I2C,6,1,I2S,5,1,MIC,4,1,WSD,3,1,SD,2,1,AES,1,1,DMA4,0,1

1 #offset condition name bit rw category volatile/permanent fieldname shift bit
5 0x4002 ROM_DEV 8 rw CFG volatile WE 0 1
6 0x4004 CLK 16 rw CFG volatile SND 8 1 WRAM 7 1 AES 2 1 WSD 1 0 SD 0 1
7 0x4006 DSP_JTAG 8 rw CFG volatile E 0 1
8 0x4007 CPU_JTAG 8 rw CFG volatile E 1 1 A7 1 0 1
9 0x4008 DS_MDY 8 rw CFG volatile MC 7 1 SND 2 1 SDMA 1 1 DMA 0 1
10 0x4009 DS_EX 8 rw CFG volatile MAIM_MEM 6 2 VRAM 5 1 LCDC 4 1 SIO 3 1 SDMA2 2 1 SPI 1 1 INTC 0 1
11 0x400a TWL_EX 16 rw CFG volatile CFG_E 15 1 WSD_PU 13 1 SD_PU 12 1 WRAM 9 0 MC_B 8 1 GPIO 7 1 I2C 6 1 I2S 5 1 MIC 4 1 WSD 3 1 SD 2 1 AES 1 1 DMA4 0 1

View File

@ -31,18 +31,18 @@ TWLSDK_VERSION_MAJOR ?= 0
#
# CodeGen Target
#
# TWL_PLATFORM = [TEG/TS]
# TWL_PLATFORM = [BB/TEG/TS]
# TWL_MEMSIZE = [4M/8M]
# TWL_CODEGEN = [ARM/THUMB]
# TWL_PROC = [ARM9/ARM7]
#
TWL_PLATFORM ?= TS
TWL_PLATFORM ?= BB
TWL_MEMSIZE ?= 8M
TWL_CODEGEN ?= ARM
TWL_PROC ?= ARM9
NITRO_PLATFORM = $(TWL_PLATFORM)
NITRO_PLATFORM = TS
NITRO_MEMSIZE = $(TWL_MEMSIZE)
NITRO_CODEGEN = $(TWL_CODEGEN)
NITRO_PROC = $(TWL_PROC)
@ -62,6 +62,32 @@ else # ($(TWL_CODEGEN),THUMB)
TWL_CODEGEN_ARCH = .thumb
endif
#
# SDK build type
#
# one of [TWL_DEBUG/TWL_RELEASE/TWL_FINALROM]
#
ifdef TWL_DEBUG
TWL_BUILD_TYPE ?= DEBUG
TWL_BUILD_DIR ?= Debug
else
ifdef TWL_FINALROM
TWL_BUILD_TYPE ?= FINALROM
TWL_BUILD_DIR ?= Rom
else # TWL_RELEASE (default)
TWL_BUILD_TYPE ?= RELEASE
TWL_BUILD_DIR ?= Release
endif
endif
NITRO_BUILD_TYPE ?= $(TWL_BUILD_TYPE)
NITRO_BUILD_DIR ?= $(TWL_BUILD_DIR)
#
# Debugger Type
#

View File

@ -23,7 +23,11 @@ include $(NITROSDK_ROOT)/build/buildtools/modulerules
# .axf
$(BINDIR)/$(TARGET_BIN_BASENAME).axf: $(OBJS) $(LCFILE) $(MAKEFILE) $(LDEPENDS_NEF) $(EDEPENDS_NEF) $(ALIBRARIES) $(LDRES_FILE) $(CW_LIBCXX)
ifeq ($(NITRO_CCTYPE),RVCT)
$(LD) $(LDFLAGS) $(LIBRARY_DIRS) -o $@ $(GLIBRARIES) $(OBJS)
else
$(LD) $(LDFLAGS) $(LIBRARY_DIRS) @$(LDRES_FILE) $(LCFILE) -o $@
endif
#----------------------------------------------------------------------------
TWLSDK_MODULERULES_ = TRUE

View File

@ -1,8 +1,8 @@
#---------------------------------------------------------------------------
# Project: NitroSDK - tools - makelcf
# Project: TwlSDK - tools - makelcf
# File: ARM7-TS.lcf.template
#
# Copyright 2003-2006 Nintendo. All rights reserved.
# Copyright 2007 Nintendo. All rights reserved.
#
# These coded instructions, statements, and computer programs contain
# proprietary information of Nintendo of America Inc. and/or Nintendo
@ -10,79 +10,7 @@
# not be disclosed to third parties or copied or duplicated in any form,
# in whole or in part, without the prior written consent of Nintendo.
#
# $Log: ARM7-TS.lcf.template,v $
# Revision 1.24 2006/05/10 03:19:47 yasu
# CodeWarrior 2.x のオーバーレイ拡張への対応
#
# Revision 1.23 2006/04/07 04:45:14 kitase_hirotake
# .wram.bss の追加
#
# Revision 1.22 2006/03/30 00:43:20 yasu
# 著作年度の変更
#
# Revision 1.21 2006/03/29 13:19:14 yasu
# NUMBER_OVERLAYS -> NUMBER.OVERLAYS への修正
#
# Revision 1.20 2005/09/02 04:14:22 yasu
# SDK2.2 でも使用可能のように古いシンボルを再定義した
#
# Revision 1.19 2005/08/31 09:34:57 yasu
# section_BSS というようなセクション名を使ったときに正常に動作しない場合があるのを修正
#
# Revision 1.18 2005/06/20 12:29:20 yasu
# Surffix -> Suffix 修正
#
# Revision 1.17 2005/06/14 09:03:42 yada
# fix around minus value of SDK_STACKSIZE
#
# Revision 1.16 2005/04/14 00:04:17 terui
# Update copyright.
#
# Revision 1.15 2005/04/13 12:52:50 terui
# Change SDK_AUTOLOAD.MAIN.START 0x027c0000 -> 0x027e0000
#
# Revision 1.14 2004/09/08 01:27:18 yasu
# Add * (.wram) on static segment
#
# Revision 1.13 2004/08/18 01:50:40 yasu
# Support SDK_SUBPRIV_ARENA_LO
#
# Revision 1.12 2004/08/02 10:38:53 yasu
# Add autoload-done callback address in overlaydefs
#
# Revision 1.11 2004/07/26 00:08:27 yasu
# Fix label of exception table
#
# Revision 1.10 2004/07/24 05:42:25 yasu
# Set default values for SDK_AUTOGEN_xTCM_START
#
# Revision 1.9 2004/07/23 11:32:14 yasu
# Define labels for __exception_table_start__ and _end__
#
# Revision 1.8 2004/07/12 12:24:12 yasu
# Fix checking WRAM
#
# Revision 1.7 2004/07/10 04:10:26 yasu
# Support command 'Library'
#
# Revision 1.6 2004/07/02 08:13:02 yasu
# Support OBJECT( )
#
# Revision 1.5 2004/07/01 12:54:38 yasu
# support ITCM/DTCM/WRAM autoload
#
# Revision 1.4 2004/07/01 10:41:46 yasu
# support autoload
#
# Revision 1.3 2004/05/28 02:11:15 yasu
# set WRAM arena region correctly
#
# Revision 1.2 2004/04/26 12:17:49 yasu
# add KEEP_SECTIONS
#
# Revision 1.1 2004/04/06 01:59:54 yasu
# newly added
#
# $Log: $
# $NoKeywords: $
#---------------------------------------------------------------------------
MEMORY

View File

@ -0,0 +1,40 @@
#----------------------------------------------------------------------------
# Project: TwlSDK - include
# File: ARM7-BB.lsf
#
# Copyright 2007 Nintendo. All rights reserved.
#
# These coded insructions, statements, and computer programs contain
# proprietary information of Nintendo of America Inc. and/or Nintendo
# Company Ltd., and are protected by Federal copyright law. They may
# not be disclosed to third parties or copied or duplicated in any form,
# in whole or in part, without the prior written consent of Nintendo.
#
# $Log: $
# $NoKeywords: $
#----------------------------------------------------------------------------
#
# Nitro LCF SPEC FILE
#
Static $(TARGET_NAME)
{
Address 0x02f80000
Library crt0.o
StackSize 1024 512
}
#Objects on MAIN RAM # nothing for elf2bin
#Autoload MAIN
#{
# Address 0x027e0000
# Library
#}
Autoload WRAM
{
Address 0x037f8000
Object $(OBJS_STATIC)
Library $(LLIBS) $(GLIBS) $(CW_LIBS)
Object * (.wram)
}

View File

@ -1,606 +0,0 @@
#---------------------------------------------------------------------------
# Project: NitroSDK - tools - makelcf
# File: ARM7-TEG.lcf.template
#
# Copyright 2003-2006 Nintendo. All rights reserved.
#
# These coded instructions, statements, and computer programs contain
# proprietary information of Nintendo of America Inc. and/or Nintendo
# Company Ltd., and are protected by Federal copyright law. They may
# not be disclosed to third parties or copied or duplicated in any form,
# in whole or in part, without the prior written consent of Nintendo.
#
# $Log: ARM7-TEG.lcf.template,v $
# Revision 1.31 2006/05/10 03:19:47 yasu
# CodeWarrior 2.x のオーバーレイ拡張への対応
#
# Revision 1.30 2006/03/30 00:43:20 yasu
# 著作年度の変更
#
# Revision 1.29 2006/03/29 13:19:14 yasu
# NUMBER_OVERLAYS -> NUMBER.OVERLAYS への修正
#
# Revision 1.28 2005/09/02 04:14:22 yasu
# SDK2.2 でも使用可能のように古いシンボルを再定義した
#
# Revision 1.27 2005/08/31 09:34:57 yasu
# section_BSS というようなセクション名を使ったときに正常に動作しない場合があるのを修正
#
# Revision 1.26 2005/06/20 12:29:20 yasu
# Surffix -> Suffix 修正
#
# Revision 1.25 2005/06/17 03:16:11 yasu
# fix copyright header
#
# Revision 1.24 2005/06/14 09:03:42 yada
# fix around minus value of SDK_STACKSIZE
#
# Revision 1.23 2004/09/08 01:27:18 yasu
# Add * (.wram) on static segment
#
# Revision 1.22 2004/08/18 02:00:34 yasu
# Fix address of SDK_AUTOLOAD.MAIN.START
#
# Revision 1.21 2004/08/18 01:50:40 yasu
# Support SDK_SUBPRIV_ARENA_LO
#
# Revision 1.20 2004/08/02 10:38:53 yasu
# Add autoload-done callback address in overlaydefs
#
# Revision 1.19 2004/07/26 00:08:27 yasu
# Fix label of exception table
#
# Revision 1.18 2004/07/24 05:42:25 yasu
# Set default values for SDK_AUTOGEN_xTCM_START
#
# Revision 1.17 2004/07/23 11:32:14 yasu
# Define labels for __exception_table_start__ and _end__
#
# Revision 1.16 2004/07/10 04:10:26 yasu
# Support command 'Library'
#
# Revision 1.15 2004/07/08 04:04:59 yasu
# fix small typo
#
# Revision 1.14 2004/07/02 08:13:02 yasu
# Support OBJECT( )
#
# Revision 1.13 2004/07/01 12:54:38 yasu
# support ITCM/DTCM/WRAM autoload
#
# Revision 1.12 2004/07/01 10:41:46 yasu
# support autoload
#
# Revision 1.11 2004/07/01 09:41:50 yasu
# support autoload
#
# Revision 1.10 2004/06/14 11:28:15 yasu
# support section filter "FOREACH.STATIC.OBJECTS=.sectionName"
#
# Revision 1.9 2004/05/27 04:06:42 yasu
# fix SDK_WRAM_ARENA_LO
#
# Revision 1.8 2004/04/26 11:41:38 yasu
# add KEEP_SECTION { .ctor }
#
# Revision 1.7 2004/04/19 06:39:41 yasu
# fix workram checker
#
# Revision 1.6 2004/04/19 04:27:30 yasu
# support WRAM overflow check
#
# Revision 1.5 2004/04/06 01:53:34 yasu
# move rodata section into text section
#
# Revision 1.4 2004/04/06 01:39:24 miya
# modify overlay module size
#
# Revision 1.3 2004/03/29 11:40:48 yasu
# delete ROM SIZE parameter on overlay table
#
# Revision 1.2 2004/03/26 09:32:48 yasu
# delete useless ALIGN
#
# Revision 1.1 2004/03/26 06:04:32 yasu
# move spec files
#
# Revision 1.3 2004/03/23 00:15:35 yasu
# add WRITEW 0 for the termination of __OVERLAY_static_init__
#
# Revision 1.2 2004/03/22 02:15:49 yasu
# set _start as entry address in rom header
#
# Revision 1.1 2004/03/16 10:06:07 yasu
# copy ARM9s template file
#
# $NoKeywords: $
#---------------------------------------------------------------------------
MEMORY
{
<STATIC.NAME> (RWX) : ORIGIN = <STATIC.ADDRESS>, LENGTH = 0x0 # > <STATIC.NAME><PROPERTY.SUFFIX>
<FOREACH.AUTOLOADS>
<AUTOLOAD.NAME> (RWX) : ORIGIN = <AUTOLOAD.ADDRESS>, LENGTH = 0x0 # >> <STATIC.NAME><PROPERTY.SUFFIX>
<END.AUTOLOADS>
binary.AUTOLOAD_INFO (RWX) : ORIGIN = 0, LENGTH = 0x0 # >> <STATIC.NAME><PROPERTY.SUFFIX>
<PROPERTY.OVERLAYDEFS> (RW) : ORIGIN = AFTER(<STATIC.NAME>), LENGTH = 0x0 # > <PROPERTY.OVERLAYDEFS><PROPERTY.SUFFIX>
<PROPERTY.OVERLAYTABLE> (RW) : ORIGIN = AFTER(<STATIC.NAME>), LENGTH = 0x0 # > <PROPERTY.OVERLAYTABLE><PROPERTY.SUFFIX>
<FOREACH.OVERLAYS>
<OVERLAY.NAME> (RWXO): ORIGIN = <OVERLAY.ADDRESS>, LENGTH = 0x0 # > <OVERLAY.NAME><PROPERTY.SUFFIX>
<END.OVERLAYS>
arena.MAIN (RW) : ORIGIN = AFTER(<STATIC.NAME><FOREACH.OVERLAYS>,<OVERLAY.NAME><END.OVERLAYS>), LENGTH = 0x0
check.WORKRAM (RWX) : ORIGIN = <STATIC.ADDRESS>, LENGTH = 0x10000 # > workram.check
}
KEEP_SECTION
{
.ctor
}
SECTIONS
{
############################ STATIC #################################
.<STATIC.NAME>:
{
ALIGNALL(4); . = ALIGN(4); # Fit to cache line
<IF.NITRO_LCFSPEC.GE.2>
<FOREACH.STATIC.SEARCHSYMBOLS>
SEARCH_SYMBOL <STATIC.SEARCHSYMBOL>;
<END.STATIC.SEARCHSYMBOLS>
<ENDIF>
#
# TEXT BLOCK: READ ONLY
#
SDK_STATIC_START =.;
SDK_STATIC_TEXT_START =.;
#:::::::::: text/rodata
OBJECT(_start,*)
crt0.o (.text)
<FOREACH.STATIC.OBJECTS=.text>
<STATIC.OBJECT=.text:t>
<END.STATIC.OBJECTS>
<FOREACH.STATIC.LIBRARIES=.text>
<STATIC.LIBRARY=.text:t>
<END.STATIC.LIBRARIES>
. = ALIGN(4);
* (.exception)
. = ALIGN(4);
SDK_STATIC_ETABLE_START =.;
EXCEPTION
SDK_STATIC_ETABLE_END =.;
. = ALIGN(4);
<FOREACH.STATIC.OBJECTS=.init>
<STATIC.OBJECT=.init:t>
<END.STATIC.OBJECTS>
<FOREACH.STATIC.LIBRARIES=.init>
<STATIC.LIBRARY=.init:t>
<END.STATIC.LIBRARIES>
. = ALIGN(4);
<FOREACH.STATIC.OBJECTS=.rodata>
<STATIC.OBJECT=.rodata:t>
<END.STATIC.OBJECTS>
<FOREACH.STATIC.LIBRARIES=.rodata>
<STATIC.LIBRARY=.rodata:t>
<END.STATIC.LIBRARIES>
. = ALIGN(4);
SDK_STATIC_SINIT_START =.;
#:::::::::: ctor
<FOREACH.STATIC.OBJECTS=.ctor>
<STATIC.OBJECT=.ctor:t>
<END.STATIC.OBJECTS>
<FOREACH.STATIC.LIBRARIES=.ctor>
<STATIC.LIBRARY=.ctor:t>
<END.STATIC.LIBRARIES>
WRITEW 0;
#:::::::::: ctor
SDK_STATIC_SINIT_END =.;
#:::::::::: text/rodata
. = ALIGN(4);
SDK_STATIC_TEXT_END =.;
#
# DATA BLOCK: READ WRITE
#
SDK_STATIC_DATA_START =.;
#:::::::::: data
<FOREACH.STATIC.OBJECTS=.wram>
<STATIC.OBJECT=.wram:t>
<END.STATIC.OBJECTS>
<FOREACH.STATIC.LIBRARIES=.wram>
<STATIC.LIBRARY=.wram:t>
<END.STATIC.LIBRARIES>
. = ALIGN(4);
<FOREACH.STATIC.OBJECTS=.sdata>
<STATIC.OBJECT=.sdata:t>
<END.STATIC.OBJECTS>
<FOREACH.STATIC.LIBRARIES=.sdata>
<STATIC.LIBRARY=.sdata:t>
<END.STATIC.LIBRARIES>
. = ALIGN(4);
<FOREACH.STATIC.OBJECTS=.data>
<STATIC.OBJECT=.data:t>
<END.STATIC.OBJECTS>
<FOREACH.STATIC.LIBRARIES=.data>
<STATIC.LIBRARY=.data:t>
<END.STATIC.LIBRARIES>
. = ALIGN(4);
#:::::::::: data
. = ALIGN(4);
SDK_STATIC_DATA_END =.;
SDK_STATIC_END =.;
SDK_STATIC_TEXT_SIZE = SDK_STATIC_TEXT_END - SDK_STATIC_TEXT_START;
SDK_STATIC_DATA_SIZE = SDK_STATIC_DATA_END - SDK_STATIC_DATA_START;
SDK_STATIC_SIZE = SDK_STATIC_END - SDK_STATIC_START;
__sinit__ = SDK_STATIC_SINIT_START; # for static initializer
__exception_table_start__ = SDK_STATIC_ETABLE_START; # for exception table
__exception_table_end__ = SDK_STATIC_ETABLE_END; # for exception table
} > <STATIC.NAME>
.<STATIC.NAME>.bss:
{
ALIGNALL(4); . = ALIGN(4);
<IF.NITRO_LCFSPEC.GE.2>
<FOREACH.STATIC.SEARCHSYMBOLS>
SEARCH_SYMBOL <STATIC.SEARCHSYMBOL>;
<END.STATIC.SEARCHSYMBOLS>
<ENDIF>
#
# BSS BLOCK
#
SDK_STATIC_BSS_START =.;
#:::::::::: bss
<FOREACH.STATIC.OBJECTS=.sbss>
<STATIC.OBJECT=.sbss:t>
<END.STATIC.OBJECTS>
<FOREACH.STATIC.LIBRARIES=.sbss>
<STATIC.LIBRARY=.sbss:t>
<END.STATIC.LIBRARIES>
. = ALIGN(4);
<FOREACH.STATIC.OBJECTS=.bss>
<STATIC.OBJECT=.bss:t>
<END.STATIC.OBJECTS>
<FOREACH.STATIC.LIBRARIES=.bss>
<STATIC.LIBRARY=.bss:t>
<END.STATIC.LIBRARIES>
. = ALIGN(4);
#:::::::::: bss
. = ALIGN(4);
SDK_STATIC_BSS_END = .;
SDK_STATIC_BSS_SIZE = SDK_STATIC_BSS_END - SDK_STATIC_BSS_START;
} >> <STATIC.NAME>
############################ AUTOLOADS ##############################
SDK_AUTOLOAD.MAIN.START = 0x02380000;
SDK_AUTOLOAD.MAIN.END = SDK_AUTOLOAD.MAIN.START;
SDK_AUTOLOAD.MAIN.BSS_END = SDK_AUTOLOAD.MAIN.START;
SDK_AUTOLOAD.MAIN.SIZE = 0;
SDK_AUTOLOAD.MAIN.BSS_SIZE = 0;
SDK_AUTOLOAD.WRAM.START = 0x037f8000;
SDK_AUTOLOAD.WRAM.END = SDK_AUTOLOAD.WRAM.START;
SDK_AUTOLOAD.WRAM.BSS_END = SDK_AUTOLOAD.WRAM.START;
SDK_AUTOLOAD.WRAM.SIZE = 0;
SDK_AUTOLOAD.WRAM.BSS_SIZE = 0;
SDK_AUTOLOAD_START = SDK_STATIC_END;
SDK_AUTOLOAD_SIZE = 0;
SDK_AUTOLOAD_NUMBER = <NUMBER.AUTOLOADS>;
<FOREACH.AUTOLOADS>
.<AUTOLOAD.NAME>:
{
ALIGNALL(4); . = ALIGN(4);
<IF.NITRO_LCFSPEC.GE.2>
<FOREACH.AUTOLOAD.SEARCHSYMBOLS>
SEARCH_SYMBOL <AUTOLOAD.SEARCHSYMBOL>;
<END.AUTOLOAD.SEARCHSYMBOLS>
<ENDIF>
#
# TEXT BLOCK: READ ONLY
#
SDK_AUTOLOAD_<AUTOLOAD.NAME>_ID =<AUTOLOAD.ID>;
SDK_AUTOLOAD.<AUTOLOAD.NAME>.ID =<AUTOLOAD.ID>;
SDK_AUTOLOAD.<AUTOLOAD.NAME>.START =.;
SDK_AUTOLOAD.<AUTOLOAD.NAME>.TEXT_START =.;
#:::::::::: text/rodata
<FOREACH.AUTOLOAD.OBJECTS=.text>
<AUTOLOAD.OBJECT=.text:t>
<END.AUTOLOAD.OBJECTS>
<FOREACH.AUTOLOAD.LIBRARIES=.text>
<AUTOLOAD.LIBRARY=.text:t>
<END.AUTOLOAD.LIBRARIES>
. = ALIGN(4);
<FOREACH.AUTOLOAD.OBJECTS=.rodata>
<AUTOLOAD.OBJECT=.rodata:t>
<END.AUTOLOAD.OBJECTS>
<FOREACH.AUTOLOAD.LIBRARIES=.rodata>
<AUTOLOAD.LIBRARY=.rodata:t>
<END.AUTOLOAD.LIBRARIES>
. = ALIGN(4);
#:::::::::: text/rodata
SDK_AUTOLOAD.<AUTOLOAD.NAME>.TEXT_END =.;
#
# DATA BLOCK: READ WRITE BLOCK
#
SDK_AUTOLOAD.<AUTOLOAD.NAME>.DATA_START =.;
#:::::::::: data
<FOREACH.AUTOLOAD.OBJECTS=.wram>
<AUTOLOAD.OBJECT=.wram:t>
<END.AUTOLOAD.OBJECTS>
<FOREACH.AUTOLOAD.LIBRARIES=.wram>
<AUTOLOAD.LIBRARY=.wram:t>
<END.AUTOLOAD.LIBRARIES>
. = ALIGN(4);
<FOREACH.AUTOLOAD.OBJECTS=.sdata>
<AUTOLOAD.OBJECT=.sdata:t>
<END.AUTOLOAD.OBJECTS>
<FOREACH.AUTOLOAD.LIBRARIES=.sdata>
<AUTOLOAD.LIBRARY=.sdata:t>
<END.AUTOLOAD.LIBRARIES>
. = ALIGN(4);
<FOREACH.AUTOLOAD.OBJECTS=.data>
<AUTOLOAD.OBJECT=.data:t>
<END.AUTOLOAD.OBJECTS>
<FOREACH.AUTOLOAD.LIBRARIES=.data>
<AUTOLOAD.LIBRARY=.data:t>
<END.AUTOLOAD.LIBRARIES>
. = ALIGN(4);
#:::::::::: data
SDK_AUTOLOAD.<AUTOLOAD.NAME>.DATA_END =.;
SDK_AUTOLOAD.<AUTOLOAD.NAME>.END =.;
SDK_AUTOLOAD.<AUTOLOAD.NAME>.TEXT_SIZE = SDK_AUTOLOAD.<AUTOLOAD.NAME>.TEXT_END - SDK_AUTOLOAD.<AUTOLOAD.NAME>.TEXT_START;
SDK_AUTOLOAD.<AUTOLOAD.NAME>.DATA_SIZE = SDK_AUTOLOAD.<AUTOLOAD.NAME>.DATA_END - SDK_AUTOLOAD.<AUTOLOAD.NAME>.DATA_START;
SDK_AUTOLOAD.<AUTOLOAD.NAME>.SIZE = SDK_AUTOLOAD.<AUTOLOAD.NAME>.END - SDK_AUTOLOAD.<AUTOLOAD.NAME>.START;
SDK_AUTOLOAD_SIZE = SDK_AUTOLOAD_SIZE + SDK_AUTOLOAD.<AUTOLOAD.NAME>.SIZE;
} > <AUTOLOAD.NAME>
.<AUTOLOAD.NAME>.bss:
{
ALIGNALL(4); . = ALIGN(4);
<IF.NITRO_LCFSPEC.GE.2>
<FOREACH.AUTOLOAD.SEARCHSYMBOLS>
SEARCH_SYMBOL <AUTOLOAD.SEARCHSYMBOL>;
<END.AUTOLOAD.SEARCHSYMBOLS>
<ENDIF>
#
# BSS BLOCK
#
SDK_AUTOLOAD.<AUTOLOAD.NAME>.BSS_START = .;
#:::::::::: bss
<FOREACH.AUTOLOAD.OBJECTS=.sbss>
<AUTOLOAD.OBJECT=.sbss:t>
<END.AUTOLOAD.OBJECTS>
<FOREACH.AUTOLOAD.LIBRARIES=.sbss>
<AUTOLOAD.LIBRARY=.sbss:t>
<END.AUTOLOAD.LIBRARIES>
. = ALIGN(4);
<FOREACH.AUTOLOAD.OBJECTS=.bss>
<AUTOLOAD.OBJECT=.bss:t>
<END.AUTOLOAD.OBJECTS>
<FOREACH.AUTOLOAD.LIBRARIES=.bss>
<AUTOLOAD.LIBRARY=.bss:t>
<END.AUTOLOAD.LIBRARIES>
. = ALIGN(4);
#:::::::::: bss
. = ALIGN(4);
SDK_AUTOLOAD.<AUTOLOAD.NAME>.BSS_END = .;
SDK_AUTOLOAD.<AUTOLOAD.NAME>.BSS_SIZE = SDK_AUTOLOAD.<AUTOLOAD.NAME>.BSS_END - SDK_AUTOLOAD.<AUTOLOAD.NAME>.BSS_START;
} >> <AUTOLOAD.NAME>
<END.AUTOLOADS>
SDK_AUTOLOAD_MAIN_START = SDK_AUTOLOAD.MAIN.START;
SDK_AUTOLOAD_MAIN_END = SDK_AUTOLOAD.MAIN.END;
SDK_AUTOLOAD_MAIN_BSS_END = SDK_AUTOLOAD.MAIN.BSS_END;
SDK_AUTOLOAD_MAIN_SIZE = SDK_AUTOLOAD.MAIN.SIZE;
SDK_AUTOLOAD_MAIN_BSS_SIZE = SDK_AUTOLOAD.MAIN.BSS_SIZE;
SDK_AUTOLOAD_WRAM_START = SDK_AUTOLOAD.WRAM.START;
SDK_AUTOLOAD_WRAM_END = SDK_AUTOLOAD.WRAM.END;
SDK_AUTOLOAD_WRAM_BSS_END = SDK_AUTOLOAD.WRAM.BSS_END;
SDK_AUTOLOAD_WRAM_SIZE = SDK_AUTOLOAD.WRAM.SIZE;
SDK_AUTOLOAD_WRAM_BSS_SIZE = SDK_AUTOLOAD.WRAM.BSS_SIZE;
############################ AUTOLOAD_INFO ##########################
.binary.AUTOLOAD_INFO:
{
<FOREACH.AUTOLOADS>
WRITEW ADDR(.<AUTOLOAD.NAME>);
WRITEW SDK_AUTOLOAD.<AUTOLOAD.NAME>.SIZE;
WRITEW SDK_AUTOLOAD.<AUTOLOAD.NAME>.BSS_SIZE;
<END.AUTOLOADS>
} > binary.AUTOLOAD_INFO
SDK_AUTOLOAD_LIST = SDK_AUTOLOAD_START + SDK_AUTOLOAD_SIZE;
SDK_AUTOLOAD_LIST_END = SDK_AUTOLOAD_START + SDK_AUTOLOAD_SIZE + SIZEOF(.binary.AUTOLOAD_INFO);
SDK_AUTOLOAD_SIZE = SDK_AUTOLOAD_SIZE + SIZEOF(.binary.AUTOLOAD_INFO);
############################ OVERLAYS ###############################
SDK_OVERLAY_NUMBER = <NUMBER.OVERLAYS>;
<FOREACH.OVERLAYS>
.<OVERLAY.NAME>:<IF.NITRO_LCFSPEC.GE.2><OVERLAY.NAME><ENDIF>
{
ALIGNALL(4); . = ALIGN(4);
<IF.NITRO_LCFSPEC.GE.2>
<FOREACH.OVERLAY.SEARCHSYMBOLS>
SEARCH_SYMBOL <OVERLAY.SEARCHSYMBOL>;
<END.OVERLAY.SEARCHSYMBOLS>
<ENDIF>
#
# TEXT BLOCK: READ ONLY
#
SDK_OVERLAY_<OVERLAY.NAME>_ID =<OVERLAY.ID>; ### SEGMENT <OVERLAY.NAME> OVERLAY ID
SDK_OVERLAY.<OVERLAY.NAME>.ID =<OVERLAY.ID>;
SDK_OVERLAY.<OVERLAY.NAME>.START =.;
SDK_OVERLAY.<OVERLAY.NAME>.TEXT_START =.;
#:::::::::: text/rodata
<FOREACH.OVERLAY.OBJECTS=.text>
<OVERLAY.OBJECT=.text:t>
<END.OVERLAY.OBJECTS>
<FOREACH.OVERLAY.LIBRARIES=.text>
<OVERLAY.LIBRARY=.text:t>
<END.OVERLAY.LIBRARIES>
. = ALIGN(4);
<FOREACH.OVERLAY.OBJECTS=.rodata>
<OVERLAY.OBJECT=.rodata:t>
<END.OVERLAY.OBJECTS>
<FOREACH.OVERLAY.LIBRARIES=.rodata>
<OVERLAY.LIBRARY=.rodata:t>
<END.OVERLAY.LIBRARIES>
. = ALIGN(4);
<FOREACH.OVERLAY.OBJECTS=.init>
<OVERLAY.OBJECT=.init:t>
<END.OVERLAY.OBJECTS>
<FOREACH.OVERLAY.LIBRARIES=.init>
<OVERLAY.LIBRARY=.init:t>
<END.OVERLAY.LIBRARIES>
. = ALIGN(4);
SDK_OVERLAY.<OVERLAY.NAME>.SINIT_START =.;
#:::::::::: ctor
<FOREACH.OVERLAY.OBJECTS=.ctor>
<OVERLAY.OBJECT=.ctor:t>
<END.OVERLAY.OBJECTS>
<FOREACH.OVERLAY.LIBRARIES=.ctor>
<OVERLAY.LIBRARY=.ctor:t>
<END.OVERLAY.LIBRARIES>
WRITEW 0;
#:::::::::: ctor
SDK_OVERLAY.<OVERLAY.NAME>.SINIT_END =.;
#:::::::::: text/rodata
. = ALIGN(4);
SDK_OVERLAY.<OVERLAY.NAME>.TEXT_END =.;
#
# DATA BLOCK: READ WRITE
#
SDK_OVERLAY.<OVERLAY.NAME>.DATA_START =.;
#:::::::::: data
<FOREACH.OVERLAY.OBJECTS=.sdata>
<OVERLAY.OBJECT=.sdata:t>
<END.OVERLAY.OBJECTS>
<FOREACH.OVERLAY.LIBRARIES=.sdata>
<OVERLAY.LIBRARY=.sdata:t>
<END.OVERLAY.LIBRARIES>
. = ALIGN(4);
<FOREACH.OVERLAY.OBJECTS=.data>
<OVERLAY.OBJECT=.data:t>
<END.OVERLAY.OBJECTS>
<FOREACH.OVERLAY.LIBRARIES=.data>
<OVERLAY.LIBRARY=.data:t>
<END.OVERLAY.LIBRARIES>
. = ALIGN(4);
#:::::::::: data
. = ALIGN(4);
SDK_OVERLAY.<OVERLAY.NAME>.DATA_END =.;
SDK_OVERLAY.<OVERLAY.NAME>.END =.;
SDK_OVERLAY.<OVERLAY.NAME>.TEXT_SIZE = SDK_OVERLAY.<OVERLAY.NAME>.TEXT_END - SDK_OVERLAY.<OVERLAY.NAME>.TEXT_START;
SDK_OVERLAY.<OVERLAY.NAME>.DATA_SIZE = SDK_OVERLAY.<OVERLAY.NAME>.DATA_END - SDK_OVERLAY.<OVERLAY.NAME>.DATA_START;
SDK_OVERLAY.<OVERLAY.NAME>.SIZE = SDK_OVERLAY.<OVERLAY.NAME>.END - SDK_OVERLAY.<OVERLAY.NAME>.START;
} > <OVERLAY.NAME>
.<OVERLAY.NAME>.bss:<IF.NITRO_LCFSPEC.GE.2><OVERLAY.NAME><ENDIF>
{
ALIGNALL(4); . = ALIGN(4);
<IF.NITRO_LCFSPEC.GE.2>
<FOREACH.OVERLAY.SEARCHSYMBOLS>
SEARCH_SYMBOL <OVERLAY.SEARCHSYMBOL>;
<END.OVERLAY.SEARCHSYMBOLS>
<ENDIF>
#
# BSS BLOCK
#
SDK_OVERLAY.<OVERLAY.NAME>.BSS_START = .;
#:::::::::: bss
<FOREACH.OVERLAY.OBJECTS=.bss>
<OVERLAY.OBJECT=.bss:t>
<END.OVERLAY.OBJECTS>
<FOREACH.OVERLAY.LIBRARIES=.bss>
<OVERLAY.LIBRARY=.bss:t>
<END.OVERLAY.LIBRARIES>
. = ALIGN(4);
<FOREACH.OVERLAY.OBJECTS=.sbss>
<OVERLAY.OBJECT=.sbss:t>
<END.OVERLAY.OBJECTS>
<FOREACH.OVERLAY.LIBRARIES=.sbss>
<OVERLAY.LIBRARY=.sbss:t>
<END.OVERLAY.LIBRARIES>
. = ALIGN(4);
#:::::::::: bss
. = ALIGN(4);
SDK_OVERLAY.<OVERLAY.NAME>.BSS_END = .;
SDK_OVERLAY.<OVERLAY.NAME>.BSS_SIZE = SDK_OVERLAY.<OVERLAY.NAME>.BSS_END - SDK_OVERLAY.<OVERLAY.NAME>.BSS_START;
} >> <OVERLAY.NAME>
<END.OVERLAYS>
############################ ARENA ##################################
.arena.MAIN:
{
. = ALIGN(4);
SDK_SECTION_ARENA_START =.;
} > arena.MAIN
############################ OVERLAYDEFS ############################
.<PROPERTY.OVERLAYDEFS>:
{
### <STATIC.NAME> module information
WRITEW ADDR(.<STATIC.NAME>); # load address
WRITEW _start; # entry address
WRITEW SDK_STATIC_SIZE + SDK_AUTOLOAD_SIZE; # size of module
WRITEW _start_AutoloadDoneCallback; # callback autoload done
### overlay filename
<FOREACH.OVERLAYS>
WRITES ("<OVERLAY.NAME><PROPERTY.SUFFIX>"); # Overlay <OVERLAY.ID>
<END.OVERLAYS>
} > <PROPERTY.OVERLAYDEFS>
############################ OVERLAYTABLE ###########################
.<PROPERTY.OVERLAYTABLE>:
{
<FOREACH.OVERLAYS>
# Overlay <OVERLAY.ID>
WRITEW <OVERLAY.ID>; # overlay ID
WRITEW ADDR(.<OVERLAY.NAME>); # load address
WRITEW SDK_OVERLAY.<OVERLAY.NAME>.SIZE; # size of module
WRITEW SDK_OVERLAY.<OVERLAY.NAME>.BSS_SIZE; # size of bss
WRITEW SDK_OVERLAY.<OVERLAY.NAME>.SINIT_START; # start address of static init
WRITEW SDK_OVERLAY.<OVERLAY.NAME>.SINIT_END; # end address of static init
WRITEW <OVERLAY.ID>; # ROM file ID
WRITEW 0; # Reserved
<END.OVERLAYS>
} > <PROPERTY.OVERLAYTABLE>
############################ OTHERS #################################
SDK_SUBPRIV_ARENA_LO = SDK_AUTOLOAD.MAIN.BSS_END;
SDK_WRAM_ARENA_LO = SDK_SECTION_ARENA_START;
SDK_IRQ_STACKSIZE = <STATIC.IRQSTACKSIZE>; # allocated in WRAM
SDK_SYS_STACKSIZE = <STATIC.STACKSIZE>; # allocated in WRAM
# work ram size checker
SDK_SYS_STACKSIZE_SIGN = (SDK_SYS_STACKSIZE < 0x80000000) * 2 - 1;
.check.WORKRAM:
{
. = . + SDK_SECTION_ARENA_START - <STATIC.ADDRESS> + SDK_IRQ_STACKSIZE + SDK_SYS_STACKSIZE * SDK_SYS_STACKSIZE_SIGN;
} > check.WORKRAM
}

View File

@ -1,60 +0,0 @@
#----------------------------------------------------------------------------
# Project: NitroSDK - include
# File: ARM7-TEG.lsf
#
# Copyright 2003,2004 Nintendo. All rights reserved.
#
# These coded insructions, statements, and computer programs contain
# proprietary information of Nintendo of America Inc. and/or Nintendo
# Company Ltd., and are protected by Federal copyright law. They may
# not be disclosed to third parties or copied or duplicated in any form,
# in whole or in part, without the prior written consent of Nintendo.
#
# $Log: ARM7-TEG.lsf,v $
# Revision 1.10 2004/07/10 12:17:51 yasu
# delete GROUP(ROOT)
#
# Revision 1.9 2004/07/10 04:11:17 yasu
# Add GROUP(xxx) as object group
#
# Revision 1.8 2004/07/02 08:33:49 yasu
# Add .wram
#
# Revision 1.7 2004/07/02 01:12:11 yasu
# clean up comments
#
# Revision 1.6 2004/07/01 10:41:46 yasu
# support autoload
#
# Revision 1.5 2004/06/28 10:46:45 yasu
# avoid to use '*' as wildcard
#
# Revision 1.4 2004/04/19 04:27:30 yasu
# support WRAM overflow check
#
# Revision 1.3 2004/04/14 10:25:09 yasu
# delete LIBRARIES group
#
# Revision 1.2 2004/03/26 13:16:17 yasu
# use variables
#
# Revision 1.1 2004/03/26 06:04:32 yasu
# move spec files
#
# Revision 1.2 2004/03/18 12:43:38 yasu
# set top address for static segment
#
# $NoKeywords: $
#----------------------------------------------------------------------------
#
# Nitro LCF SPEC FILE
#
Static $(TARGET_NAME)
{
Address 0x037f8000
Object $(OBJS_STATIC)
Library $(LLIBS) $(GLIBS) $(CW_LIBS)
Object * (.wram)
StackSize 1024 512
}

View File

@ -1,76 +0,0 @@
#----------------------------------------------------------------------------
# Project: NitroSDK - include
# File: ARM7-TS.lsf
#
# Copyright 2003-2005 Nintendo. All rights reserved.
#
# These coded insructions, statements, and computer programs contain
# proprietary information of Nintendo of America Inc. and/or Nintendo
# Company Ltd., and are protected by Federal copyright law. They may
# not be disclosed to third parties or copied or duplicated in any form,
# in whole or in part, without the prior written consent of Nintendo.
#
# $Log: ARM7-TS.lsf,v $
# Revision 1.12 2005/04/14 00:04:17 terui
# Update copyright.
#
# Revision 1.11 2005/04/13 12:49:24 terui
# Change Autoload MAIN Address 0x027c0000 -> 0x027e0000
#
# Revision 1.10 2004/08/18 01:51:02 yasu
# Rename autoload section name
#
# Revision 1.9 2004/07/26 02:21:48 yasu
# Add comment for autoload on 0x027c0000
#
# Revision 1.8 2004/07/12 12:23:14 yasu
# Delete GROUP(ROOT)
#
# Revision 1.7 2004/07/10 04:11:17 yasu
# Add GROUP(xxx) as object group
#
# Revision 1.6 2004/07/02 01:12:11 yasu
# clean up comments
#
# Revision 1.5 2004/07/01 12:54:38 yasu
# support ITCM/DTCM/WRAM autoload
#
# Revision 1.4 2004/07/01 10:41:46 yasu
# support autoload
#
# Revision 1.3 2004/06/28 10:46:45 yasu
# avoid to use '*' as wildcard
#
# Revision 1.2 2004/04/14 10:25:09 yasu
# delete LIBRARIES group
#
# Revision 1.1 2004/04/06 01:59:54 yasu
# newly added
#
# $NoKeywords: $
#----------------------------------------------------------------------------
#
# Nitro LCF SPEC FILE
#
Static $(TARGET_NAME)
{
Address 0x02f80000
Library crt0.o
StackSize 1024 512
}
#Objects on MAIN RAM # nothing for elf2bin
#Autoload MAIN
#{
# Address 0x027e0000
# Library
#}
Autoload WRAM
{
Address 0x037f8000
Object $(OBJS_STATIC)
Library $(LLIBS) $(GLIBS) $(CW_LIBS)
Object * (.wram)
}

View File

@ -1,8 +1,8 @@
#---------------------------------------------------------------------------
# Project: NitroSDK - tools - makelcf
# File: ARM9-TS.lcf.template
# Project: TwlSDK - tools - makelcf
# File: ARM9-BB.lcf.template
#
# Copyright 2003-2006 Nintendo. All rights reserved.
# Copyright 2007 Nintendo. All rights reserved.
#
# These coded instructions, statements, and computer programs contain
# proprietary information of Nintendo of America Inc. and/or Nintendo
@ -10,113 +10,7 @@
# not be disclosed to third parties or copied or duplicated in any form,
# in whole or in part, without the prior written consent of Nintendo.
#
# $Log: ARM9-TS.lcf.template,v $
# Revision 1.35 2006/05/10 03:19:47 yasu
# CodeWarrior 2.x のオーバーレイ拡張への対応
#
# Revision 1.34 2006/04/06 09:02:36 kitase_hirotake
# .itcm.bss .dtcm.bss に対応
#
# Revision 1.33 2006/03/30 23:59:22 yasu
# 著作年度の変更
#
# Revision 1.32 2006/03/29 13:14:22 yasu
# CWVER 2.x でのオーバーレイのサポート
#
# Revision 1.31 2005/11/24 01:16:47 yada
# change start address of mainEX arena from 0x2400000 to 0x23e0000
#
# Revision 1.30 2005/09/02 04:14:22 yasu
# SDK2.2 でも使用可能のように古いシンボルを再定義した
#
# Revision 1.29 2005/08/31 09:34:57 yasu
# section_BSS というようなセクション名を使ったときに正常に動作しない場合があるのを修正
#
# Revision 1.28 2005/08/26 11:22:16 yasu
# ITCM/DTCM への overlay の対応
#
# Revision 1.27 2005/06/20 12:29:20 yasu
# Surffix -> Suffix 修正
#
# Revision 1.26 2005/06/14 09:03:42 yada
# fix around minus value of SDK_STACKSIZE
#
# Revision 1.25 2005/04/13 12:51:00 terui
# Change SDK_AUTOLOAD.DTCM.START 0x027c0000 -> 0x027e0000
#
# Revision 1.24 2005/03/30 00:02:14 yosizaki
# fix copyright header.
#
# Revision 1.23 2005/03/25 12:54:59 yasu
# Include .version section
#
# Revision 1.22 2004/10/03 02:00:56 yasu
# Output component file list for compstatic tool
#
# Revision 1.21 2004/09/27 05:28:21 yasu
# Support .sinit
#
# Revision 1.20 2004/09/09 11:49:20 yasu
# Support compstatic in default
#
# Revision 1.19 2004/09/06 06:40:00 yasu
# Add labels for digest
#
# Revision 1.18 2004/08/20 06:19:59 yasu
# DTCM moves to 0x027c0000 at default
#
# Revision 1.17 2004/08/02 10:38:53 yasu
# Add autoload-done callback address in overlaydefs
#
# Revision 1.16 2004/07/26 02:22:32 yasu
# Change DTCM address to 0x023c0000
#
# Revision 1.15 2004/07/26 00:08:27 yasu
# Fix label of exception table
#
# Revision 1.14 2004/07/24 05:42:25 yasu
# Set default values for SDK_AUTOGEN_xTCM_START
#
# Revision 1.13 2004/07/23 11:32:14 yasu
# Define labels for __exception_table_start__ and _end__
#
# Revision 1.12 2004/07/12 12:21:08 yasu
# Check size of ITCM/DTCM
#
# Revision 1.11 2004/07/10 04:10:26 yasu
# Support command 'Library'
#
# Revision 1.10 2004/07/02 08:13:02 yasu
# Support OBJECT( )
#
# Revision 1.9 2004/07/01 12:54:38 yasu
# support ITCM/DTCM/WRAM autoload
#
# Revision 1.8 2004/07/01 10:41:46 yasu
# support autoload
#
# Revision 1.7 2004/06/02 07:35:37 yasu
# Set libsyscall.a in FORCE_ACTIVE
# Put NitroMain at the top of ROM image
#
# Revision 1.6 2004/06/02 04:56:28 yasu
# Change to fit to new ROM map of TS
#
# Revision 1.5 2004/06/01 06:12:00 miya
# add padding at top of ROM image.
#
# Revision 1.4 2004/04/26 12:16:48 yasu
# add KEEP_SECTIONS
#
# Revision 1.3 2004/04/20 07:41:32 yasu
# Set STATICINIT instead of .ctor temporarily
#
# Revision 1.2 2004/04/14 07:16:42 yasu
# add ALIGN(32) for convenience to handle cache line
#
# Revision 1.1 2004/04/06 01:59:54 yasu
# newly added
#
# $Log: $
# $NoKeywords: $
#---------------------------------------------------------------------------
MEMORY

View File

@ -0,0 +1,41 @@
#----------------------------------------------------------------------------
# Project: TwlSDK - include
# File: ARM9-BB.lsf
#
# Copyright 2007 Nintendo. All rights reserved.
#
# These coded insructions, statements, and computer programs contain
# proprietary information of Nintendo of America Inc. and/or Nintendo
# Company Ltd., and are protected by Federal copyright law. They may
# not be disclosed to third parties or copied or duplicated in any form,
# in whole or in part, without the prior written consent of Nintendo.
#
# $Log: $
# $NoKeywords: $
#----------------------------------------------------------------------------
#
# Nitro LCF SPEC FILE
#
Static $(TARGET_NAME)
{
Address 0x02000000
Object $(OBJS_STATIC)
Library $(LLIBS) $(GLIBS) $(CW_LIBS)
}
Autoload ITCM
{
Address 0x01ff8000
Object * (.itcm)
Object $(OBJS_AUTOLOAD) (.text)
}
Autoload DTCM
{
Address 0x027e0000
Object * (.dtcm)
Object $(OBJS_AUTOLOAD) (.data)
Object $(OBJS_AUTOLOAD) (.bss)
}

View File

@ -1,692 +0,0 @@
#---------------------------------------------------------------------------
# Project: NitroSDK - tools - makelcf
# File: ARM9-TEG.lcf.template
#
# Copyright 2003-2006 Nintendo. All rights reserved.
#
# These coded instructions, statements, and computer programs contain
# proprietary information of Nintendo of America Inc. and/or Nintendo
# Company Ltd., and are protected by Federal copyright law. They may
# not be disclosed to third parties or copied or duplicated in any form,
# in whole or in part, without the prior written consent of Nintendo.
#
# $Log: ARM9-TEG.lcf.template,v $
# Revision 1.31 2006/05/10 03:19:47 yasu
# CodeWarrior 2.x のオーバーレイ拡張への対応
#
# Revision 1.30 2006/03/30 00:31:29 yasu
# NUMBER_OVERLAYS を NUMBER.OVERLAYS に修正
#
# Revision 1.29 2006/03/29 13:19:14 yasu
# NUMBER_OVERLAYS -> NUMBER.OVERLAYS への修正
#
# Revision 1.28 2005/09/02 04:14:22 yasu
# SDK2.2 でも使用可能のように古いシンボルを再定義した
#
# Revision 1.27 2005/08/31 09:34:57 yasu
# section_BSS というようなセクション名を使ったときに正常に動作しない場合があるのを修正
#
# Revision 1.26 2005/08/26 11:22:16 yasu
# ITCM/DTCM への overlay の対応
#
# Revision 1.25 2005/06/20 12:29:20 yasu
# Surffix -> Suffix 修正
#
# Revision 1.24 2005/06/17 03:16:11 yasu
# fix copyright header
#
# Revision 1.23 2005/06/14 09:03:42 yada
# fix around minus value of SDK_STACKSIZE
#
# Revision 1.22 2004/10/03 02:00:56 yasu
# Output component file list for compstatic tool
#
# Revision 1.21 2004/09/09 11:49:20 yasu
# Support compstatic in default
#
# Revision 1.20 2004/09/09 03:15:36 yasu
# Support NITRO_COMPRESS on TEG
#
# Revision 1.19 2004/08/02 10:38:53 yasu
# Add autoload-done callback address in overlaydefs
#
# Revision 1.18 2004/07/26 00:08:27 yasu
# Fix label of exception table
#
# Revision 1.17 2004/07/24 05:42:25 yasu
# Set default values for SDK_AUTOGEN_xTCM_START
#
# Revision 1.16 2004/07/23 11:32:14 yasu
# Define labels for __exception_table_start__ and _end__
#
# Revision 1.15 2004/07/12 12:21:08 yasu
# Check size of ITCM/DTCM
#
# Revision 1.14 2004/07/10 04:10:26 yasu
# Support command 'Library'
#
# Revision 1.13 2004/07/08 04:04:59 yasu
# fix small typo
#
# Revision 1.12 2004/07/02 08:13:02 yasu
# Support OBJECT( )
#
# Revision 1.11 2004/07/01 12:54:38 yasu
# support ITCM/DTCM/WRAM autoload
#
# Revision 1.10 2004/07/01 09:41:50 yasu
# support autoload
#
# Revision 1.9 2004/06/14 11:28:15 yasu
# support section filter "FOREACH.STATIC.OBJECTS=.sectionName"
#
# Revision 1.8 2004/04/26 11:41:38 yasu
# add KEEP_SECTION { .ctor }
#
# Revision 1.7 2004/04/20 07:41:32 yasu
# Set STATICINIT instead of .ctor temporarily
#
# Revision 1.6 2004/04/14 07:13:20 yasu
# add ALIGN(32) for convenience to handle cache line
#
# Revision 1.5 2004/04/06 01:53:34 yasu
# move rodata section into text section
#
# Revision 1.4 2004/04/06 01:39:43 miya
# modify overlay module size
#
# Revision 1.3 2004/03/29 11:40:48 yasu
# delete ROM SIZE parameter on overlay table
#
# Revision 1.2 2004/03/26 09:32:48 yasu
# delete useless ALIGN
#
# Revision 1.1 2004/03/26 06:04:32 yasu
# move spec files
#
# Revision 1.9 2004/03/23 00:15:35 yasu
# add WRITEW 0 for the termination of __OVERLAY_static_init__
#
# Revision 1.8 2004/03/22 02:15:49 yasu
# set _start as entry address in rom header
#
# Revision 1.7 2004/03/16 10:05:14 yasu
# add ALIGN(4) at end of section
#
# Revision 1.6 2004/02/14 03:34:00 yasu
# exchange .bss and .sbss
#
# Revision 1.5 2004/02/13 07:13:16 yasu
# support SDK_IRQ_STACKSIZE
#
# Revision 1.4 2004/02/05 12:21:14 yasu
# change SDK prefix iris -> nitro
#
# Revision 1.3 2004/01/16 01:34:01 yasu
# Clean up lcf to support ARENA functions
#
# Revision 1.2 2004/01/15 13:10:03 yasu
# clean unused variables
#
# Revision 1.1 2004/01/15 10:52:51 yasu
# lcf template for OVERLAY
#
# Revision 1.1 2004/01/14 01:59:02 yasu
# Change filename
#
# Revision 1.2 2004/01/07 13:11:08 yasu
# change command casing
#
# Revision 1.1 2004/01/05 02:32:59 yasu
# Initial version
#
# $NoKeywords: $
#---------------------------------------------------------------------------
MEMORY
{
<STATIC.NAME> (RWX) : ORIGIN = <STATIC.ADDRESS>, LENGTH = 0x0 # > <STATIC.NAME><PROPERTY.SUFFIX>
<FOREACH.AUTOLOADS>
<AUTOLOAD.NAME> (RWX) : ORIGIN = <AUTOLOAD.ADDRESS>, LENGTH = 0x0 # >> <STATIC.NAME><PROPERTY.SUFFIX>
<END.AUTOLOADS>
binary.AUTOLOAD_INFO (RWX) : ORIGIN = 0, LENGTH = 0x0 # >> <STATIC.NAME><PROPERTY.SUFFIX>
binary.STATIC_FOOTER (RWX) : ORIGIN = 0, LENGTH = 0x0 # >> <STATIC.NAME><PROPERTY.SUFFIX>
<PROPERTY.OVERLAYDEFS> (RW) : ORIGIN = AFTER(<STATIC.NAME>), LENGTH = 0x0 # > <PROPERTY.OVERLAYDEFS><PROPERTY.SUFFIX>
<PROPERTY.OVERLAYTABLE> (RW) : ORIGIN = AFTER(<STATIC.NAME>), LENGTH = 0x0 # > <PROPERTY.OVERLAYTABLE><PROPERTY.SUFFIX>
<FOREACH.OVERLAYS>
<OVERLAY.NAME> (RWXO): ORIGIN = <OVERLAY.ADDRESS>, LENGTH = 0x0 # > <OVERLAY.NAME><PROPERTY.SUFFIX>
<END.OVERLAYS>
dummy.MAIN_EX (RW) : ORIGIN = 0x02400000, LENGTH = 0x0
arena.MAIN (RW) : ORIGIN = AFTER(<STATIC.NAME><FOREACH.OVERLAYS=MAIN>,<OVERLAY.NAME><END.OVERLAYS>), LENGTH = 0x0
arena.MAIN_EX (RW) : ORIGIN = AFTER(dummy.MAIN_EX<FOREACH.OVERLAYS=MAINEX>,<OVERLAY.NAME><END.OVERLAYS>), LENGTH = 0x0
arena.ITCM (RW) : ORIGIN = AFTER(ITCM<FOREACH.OVERLAYS=ITCM>,<OVERLAY.NAME><END.OVERLAYS>), LENGTH = 0x0
arena.DTCM (RW) : ORIGIN = AFTER(DTCM<FOREACH.OVERLAYS=DTCM>,<OVERLAY.NAME><END.OVERLAYS>), LENGTH = 0x0
binary.MODULE_FILES (RW) : ORIGIN = 0x0, LENGTH = 0x0 # > component.files
check.ITCM (RWX) : ORIGIN = 0x0, LENGTH = 0x08000 # > itcm.check
check.DTCM (RW) : ORIGIN = 0x0, LENGTH = 0x04000 # > dtcm.check
}
SECTIONS
{
############################ STATIC #################################
.<STATIC.NAME>:
{
ALIGNALL(4); . = ALIGN(32); # Fit to cache line
<IF.NITRO_LCFSPEC.GE.2>
<FOREACH.STATIC.SEARCHSYMBOLS>
SEARCH_SYMBOL <STATIC.SEARCHSYMBOL>;
<END.STATIC.SEARCHSYMBOLS>
<ENDIF>
#
# TEXT BLOCK: READ ONLY
#
SDK_STATIC_START =.;
SDK_STATIC_TEXT_START =.;
#:::::::::: text/rodata
OBJECT(_start,*)
crt0.o (.text)
<FOREACH.STATIC.OBJECTS=.text>
<STATIC.OBJECT=.text:t>
<END.STATIC.OBJECTS>
<FOREACH.STATIC.LIBRARIES=.text>
<STATIC.LIBRARY=.text:t>
<END.STATIC.LIBRARIES>
. = ALIGN(4);
* (.exception)
. = ALIGN(4);
SDK_STATIC_ETABLE_START =.;
EXCEPTION
SDK_STATIC_ETABLE_END =.;
. = ALIGN(4);
<FOREACH.STATIC.OBJECTS=.init>
<STATIC.OBJECT=.init:t>
<END.STATIC.OBJECTS>
<FOREACH.STATIC.LIBRARIES=.init>
<STATIC.LIBRARY=.init:t>
<END.STATIC.LIBRARIES>
. = ALIGN(4);
<FOREACH.STATIC.OBJECTS=.rodata>
<STATIC.OBJECT=.rodata:t>
<END.STATIC.OBJECTS>
<FOREACH.STATIC.LIBRARIES=.rodata>
<STATIC.LIBRARY=.rodata:t>
<END.STATIC.LIBRARIES>
. = ALIGN(4);
SDK_STATIC_SINIT_START =.;
#:::::::::: ctor
<FOREACH.STATIC.OBJECTS=.ctor>
<STATIC.OBJECT=.ctor:t>
<END.STATIC.OBJECTS>
<FOREACH.STATIC.LIBRARIES=.ctor>
<STATIC.LIBRARY=.ctor:t>
<END.STATIC.LIBRARIES>
WRITEW 0;
#:::::::::: ctor
SDK_STATIC_SINIT_END =.;
#:::::::::: text/rodata
. = ALIGN(32);
SDK_STATIC_TEXT_END =.;
#
# DATA BLOCK: READ WRITE
#
SDK_STATIC_DATA_START =.;
#:::::::::: data
<FOREACH.STATIC.OBJECTS=.sdata>
<STATIC.OBJECT=.sdata:t>
<END.STATIC.OBJECTS>
<FOREACH.STATIC.LIBRARIES=.sdata>
<STATIC.LIBRARY=.sdata:t>
<END.STATIC.LIBRARIES>
. = ALIGN(4);
<FOREACH.STATIC.OBJECTS=.data>
<STATIC.OBJECT=.data:t>
<END.STATIC.OBJECTS>
<FOREACH.STATIC.LIBRARIES=.data>
<STATIC.LIBRARY=.data:t>
<END.STATIC.LIBRARIES>
. = ALIGN(4);
SDK_OVERLAY_DIGEST =.;
# NO DIGEST
SDK_OVERLAY_DIGEST_END =.;
#:::::::::: data
. = ALIGN(32);
SDK_STATIC_DATA_END =.;
SDK_STATIC_END =.;
SDK_STATIC_TEXT_SIZE = SDK_STATIC_TEXT_END - SDK_STATIC_TEXT_START;
SDK_STATIC_DATA_SIZE = SDK_STATIC_DATA_END - SDK_STATIC_DATA_START;
SDK_STATIC_SIZE = SDK_STATIC_END - SDK_STATIC_START;
__sinit__ = SDK_STATIC_SINIT_START; # for static initializer
__exception_table_start__ = SDK_STATIC_ETABLE_START; # for exception table
__exception_table_end__ = SDK_STATIC_ETABLE_END; # for exception table
} > <STATIC.NAME>
.<STATIC.NAME>.bss:
{
ALIGNALL(4); . = ALIGN(32);
<IF.NITRO_LCFSPEC.GE.2>
<FOREACH.STATIC.SEARCHSYMBOLS>
SEARCH_SYMBOL <STATIC.SEARCHSYMBOL>;
<END.STATIC.SEARCHSYMBOLS>
<ENDIF>
#
# BSS BLOCK
#
SDK_STATIC_BSS_START =.;
#:::::::::: bss
<FOREACH.STATIC.OBJECTS=.sbss>
<STATIC.OBJECT=.sbss:t>
<END.STATIC.OBJECTS>
<FOREACH.STATIC.LIBRARIES=.sbss>
<STATIC.LIBRARY=.sbss:t>
<END.STATIC.LIBRARIES>
. = ALIGN(4);
<FOREACH.STATIC.OBJECTS=.bss>
<STATIC.OBJECT=.bss:t>
<END.STATIC.OBJECTS>
<FOREACH.STATIC.LIBRARIES=.bss>
<STATIC.LIBRARY=.bss:t>
<END.STATIC.LIBRARIES>
. = ALIGN(4);
#:::::::::: bss
. = ALIGN(32);
SDK_STATIC_BSS_END = .;
SDK_STATIC_BSS_SIZE = SDK_STATIC_BSS_END - SDK_STATIC_BSS_START;
} >> <STATIC.NAME>
############################ AUTOLOADS ##############################
SDK_AUTOLOAD.ITCM.START = 0x01ff8000;
SDK_AUTOLOAD.ITCM.END = SDK_AUTOLOAD.ITCM.START;
SDK_AUTOLOAD.ITCM.BSS_END = SDK_AUTOLOAD.ITCM.START;
SDK_AUTOLOAD.ITCM.SIZE = 0;
SDK_AUTOLOAD.ITCM.BSS_SIZE = 0;
SDK_AUTOLOAD.DTCM.START = 0x02380000;
SDK_AUTOLOAD.DTCM.END = SDK_AUTOLOAD.DTCM.START;
SDK_AUTOLOAD.DTCM.BSS_END = SDK_AUTOLOAD.DTCM.START;
SDK_AUTOLOAD.DTCM.SIZE = 0;
SDK_AUTOLOAD.DTCM.BSS_SIZE = 0;
SDK_AUTOLOAD_START = SDK_STATIC_END;
SDK_AUTOLOAD_SIZE = 0;
SDK_AUTOLOAD_NUMBER = <NUMBER.AUTOLOADS>;
<FOREACH.AUTOLOADS>
.<AUTOLOAD.NAME>:
{
ALIGNALL(4); . = ALIGN(32);
<IF.NITRO_LCFSPEC.GE.2>
<FOREACH.AUTOLOAD.SEARCHSYMBOLS>
SEARCH_SYMBOL <AUTOLOAD.SEARCHSYMBOL>;
<END.AUTOLOAD.SEARCHSYMBOLS>
<ENDIF>
#
# TEXT BLOCK: READ ONLY
#
SDK_AUTOLOAD_<AUTOLOAD.NAME>_ID =<AUTOLOAD.ID>;
SDK_AUTOLOAD.<AUTOLOAD.NAME>.ID =<AUTOLOAD.ID>;
SDK_AUTOLOAD.<AUTOLOAD.NAME>.START =.;
SDK_AUTOLOAD.<AUTOLOAD.NAME>.TEXT_START =.;
#:::::::::: text/rodata
<FOREACH.AUTOLOAD.OBJECTS=.text>
<AUTOLOAD.OBJECT=.text:t>
<END.AUTOLOAD.OBJECTS>
<FOREACH.AUTOLOAD.LIBRARIES=.text>
<AUTOLOAD.LIBRARY=.text:t>
<END.AUTOLOAD.LIBRARIES>
. = ALIGN(4);
<FOREACH.AUTOLOAD.OBJECTS=.itcm>
<AUTOLOAD.OBJECT=.itcm:t>
<END.AUTOLOAD.OBJECTS>
<FOREACH.AUTOLOAD.LIBRARIES=.itcm>
<AUTOLOAD.LIBRARY=.itcm:t>
<END.AUTOLOAD.LIBRARIES>
. = ALIGN(4);
<FOREACH.AUTOLOAD.OBJECTS=.rodata>
<AUTOLOAD.OBJECT=.rodata:t>
<END.AUTOLOAD.OBJECTS>
<FOREACH.AUTOLOAD.LIBRARIES=.rodata>
<AUTOLOAD.LIBRARY=.rodata:t>
<END.AUTOLOAD.LIBRARIES>
. = ALIGN(4);
#:::::::::: text/rodata
SDK_AUTOLOAD.<AUTOLOAD.NAME>.TEXT_END =.;
#
# DATA BLOCK: READ WRITE BLOCK
#
SDK_AUTOLOAD.<AUTOLOAD.NAME>.DATA_START =.;
#:::::::::: data
<FOREACH.AUTOLOAD.OBJECTS=.sdata>
<AUTOLOAD.OBJECT=.sdata:t>
<END.AUTOLOAD.OBJECTS>
<FOREACH.AUTOLOAD.LIBRARIES=.sdata>
<AUTOLOAD.LIBRARY=.sdata:t>
<END.AUTOLOAD.LIBRARIES>
. = ALIGN(4);
<FOREACH.AUTOLOAD.OBJECTS=.data>
<AUTOLOAD.OBJECT=.data:t>
<END.AUTOLOAD.OBJECTS>
<FOREACH.AUTOLOAD.LIBRARIES=.data>
<AUTOLOAD.LIBRARY=.data:t>
<END.AUTOLOAD.LIBRARIES>
. = ALIGN(4);
<FOREACH.AUTOLOAD.OBJECTS=.dtcm>
<AUTOLOAD.OBJECT=.dtcm:t>
<END.AUTOLOAD.OBJECTS>
<FOREACH.AUTOLOAD.LIBRARIES=.dtcm>
<AUTOLOAD.LIBRARY=.dtcm:t>
<END.AUTOLOAD.LIBRARIES>
. = ALIGN(4);
#:::::::::: data
. = ALIGN(32);
SDK_AUTOLOAD.<AUTOLOAD.NAME>.DATA_END =.;
SDK_AUTOLOAD.<AUTOLOAD.NAME>.END =.;
SDK_AUTOLOAD.<AUTOLOAD.NAME>.TEXT_SIZE = SDK_AUTOLOAD.<AUTOLOAD.NAME>.TEXT_END - SDK_AUTOLOAD.<AUTOLOAD.NAME>.TEXT_START;
SDK_AUTOLOAD.<AUTOLOAD.NAME>.DATA_SIZE = SDK_AUTOLOAD.<AUTOLOAD.NAME>.DATA_END - SDK_AUTOLOAD.<AUTOLOAD.NAME>.DATA_START;
SDK_AUTOLOAD.<AUTOLOAD.NAME>.SIZE = SDK_AUTOLOAD.<AUTOLOAD.NAME>.END - SDK_AUTOLOAD.<AUTOLOAD.NAME>.START;
SDK_AUTOLOAD_SIZE = SDK_AUTOLOAD_SIZE + SDK_AUTOLOAD.<AUTOLOAD.NAME>.SIZE;
} > <AUTOLOAD.NAME>
.<AUTOLOAD.NAME>.bss:
{
ALIGNALL(4); . = ALIGN(32);
<IF.NITRO_LCFSPEC.GE.2>
<FOREACH.AUTOLOAD.SEARCHSYMBOLS>
SEARCH_SYMBOL <AUTOLOAD.SEARCHSYMBOL>;
<END.AUTOLOAD.SEARCHSYMBOLS>
<ENDIF>
#
# BSS BLOCK
#
SDK_AUTOLOAD.<AUTOLOAD.NAME>.BSS_START = .;
#:::::::::: bss
<FOREACH.AUTOLOAD.OBJECTS=.sbss>
<AUTOLOAD.OBJECT=.sbss:t>
<END.AUTOLOAD.OBJECTS>
<FOREACH.AUTOLOAD.LIBRARIES=.sbss>
<AUTOLOAD.LIBRARY=.sbss:t>
<END.AUTOLOAD.LIBRARIES>
. = ALIGN(4);
<FOREACH.AUTOLOAD.OBJECTS=.bss>
<AUTOLOAD.OBJECT=.bss:t>
<END.AUTOLOAD.OBJECTS>
<FOREACH.AUTOLOAD.LIBRARIES=.bss>
<AUTOLOAD.LIBRARY=.bss:t>
<END.AUTOLOAD.LIBRARIES>
. = ALIGN(4);
#:::::::::: bss
. = ALIGN(32);
SDK_AUTOLOAD.<AUTOLOAD.NAME>.BSS_END = .;
SDK_AUTOLOAD.<AUTOLOAD.NAME>.BSS_SIZE = SDK_AUTOLOAD.<AUTOLOAD.NAME>.BSS_END - SDK_AUTOLOAD.<AUTOLOAD.NAME>.BSS_START;
} >> <AUTOLOAD.NAME>
<END.AUTOLOADS>
SDK_AUTOLOAD_ITCM_START = SDK_AUTOLOAD.ITCM.START;
SDK_AUTOLOAD_ITCM_END = SDK_AUTOLOAD.ITCM.END;
SDK_AUTOLOAD_ITCM_BSS_END = SDK_AUTOLOAD.ITCM.BSS_END;
SDK_AUTOLOAD_ITCM_SIZE = SDK_AUTOLOAD.ITCM.SIZE;
SDK_AUTOLOAD_ITCM_BSS_SIZE = SDK_AUTOLOAD.ITCM.BSS_SIZE;
SDK_AUTOLOAD_DTCM_START = SDK_AUTOLOAD.DTCM.START;
SDK_AUTOLOAD_DTCM_END = SDK_AUTOLOAD.DTCM.END;
SDK_AUTOLOAD_DTCM_BSS_END = SDK_AUTOLOAD.DTCM.BSS_END;
SDK_AUTOLOAD_DTCM_SIZE = SDK_AUTOLOAD.DTCM.SIZE;
SDK_AUTOLOAD_DTCM_BSS_SIZE = SDK_AUTOLOAD.DTCM.BSS_SIZE;
############################ AUTOLOAD_INFO ##########################
.binary.AUTOLOAD_INFO:
{
<FOREACH.AUTOLOADS>
WRITEW ADDR(.<AUTOLOAD.NAME>);
WRITEW SDK_AUTOLOAD.<AUTOLOAD.NAME>.SIZE;
WRITEW SDK_AUTOLOAD.<AUTOLOAD.NAME>.BSS_SIZE;
<END.AUTOLOADS>
} > binary.AUTOLOAD_INFO
SDK_AUTOLOAD_LIST = SDK_AUTOLOAD_START + SDK_AUTOLOAD_SIZE;
SDK_AUTOLOAD_LIST_END = SDK_AUTOLOAD_START + SDK_AUTOLOAD_SIZE + SIZEOF(.binary.AUTOLOAD_INFO);
SDK_AUTOLOAD_SIZE = SDK_AUTOLOAD_SIZE + SIZEOF(.binary.AUTOLOAD_INFO);
############################ STATIC_FOOTER ##########################
.binary.STATIC_FOOTER:
{
WRITEW 0xdec00621; # LE(0x2106C0DE) = NITRO CODE
WRITEW _start_ModuleParams - ADDR(.<STATIC.NAME>);
WRITEW 0; # NO DIGEST
} > binary.STATIC_FOOTER
############################ OVERLAYS ###############################
SDK_OVERLAY_NUMBER = <NUMBER.OVERLAYS>;
<FOREACH.OVERLAYS>
.<OVERLAY.NAME>:<IF.NITRO_LCFSPEC.GE.2><OVERLAY.NAME><ENDIF>
{
ALIGNALL(4); . = ALIGN(32);
<IF.NITRO_LCFSPEC.GE.2>
<FOREACH.OVERLAY.SEARCHSYMBOLS>
SEARCH_SYMBOL <OVERLAY.SEARCHSYMBOL>;
<END.OVERLAY.SEARCHSYMBOLS>
<ENDIF>
#
# TEXT BLOCK: READ ONLY
#
SDK_OVERLAY_<OVERLAY.NAME>_ID =<OVERLAY.ID>; ### SEGMENT <OVERLAY.NAME> OVERLAY ID
SDK_OVERLAY.<OVERLAY.NAME>.ID =<OVERLAY.ID>;
SDK_OVERLAY.<OVERLAY.NAME>.START =.;
SDK_OVERLAY.<OVERLAY.NAME>.TEXT_START =.;
#:::::::::: text/rodata
<FOREACH.OVERLAY.OBJECTS=.text>
<OVERLAY.OBJECT=.text:t>
<END.OVERLAY.OBJECTS>
<FOREACH.OVERLAY.LIBRARIES=.text>
<OVERLAY.LIBRARY=.text:t>
<END.OVERLAY.LIBRARIES>
. = ALIGN(4);
<FOREACH.OVERLAY.OBJECTS=.rodata>
<OVERLAY.OBJECT=.rodata:t>
<END.OVERLAY.OBJECTS>
<FOREACH.OVERLAY.LIBRARIES=.rodata>
<OVERLAY.LIBRARY=.rodata:t>
<END.OVERLAY.LIBRARIES>
. = ALIGN(4);
<FOREACH.OVERLAY.OBJECTS=.init>
<OVERLAY.OBJECT=.init:t>
<END.OVERLAY.OBJECTS>
<FOREACH.OVERLAY.LIBRARIES=.init>
<OVERLAY.LIBRARY=.init:t>
<END.OVERLAY.LIBRARIES>
. = ALIGN(4);
SDK_OVERLAY.<OVERLAY.NAME>.SINIT_START =.;
#:::::::::: ctor
<FOREACH.OVERLAY.OBJECTS=.ctor>
<OVERLAY.OBJECT=.ctor:t>
<END.OVERLAY.OBJECTS>
<FOREACH.OVERLAY.LIBRARIES=.ctor>
<OVERLAY.LIBRARY=.ctor:t>
<END.OVERLAY.LIBRARIES>
WRITEW 0;
#:::::::::: ctor
SDK_OVERLAY.<OVERLAY.NAME>.SINIT_END =.;
#:::::::::: text/rodata
. = ALIGN(32);
SDK_OVERLAY.<OVERLAY.NAME>.TEXT_END =.;
#
# DATA BLOCK: READ WRITE
#
SDK_OVERLAY.<OVERLAY.NAME>.DATA_START =.;
#:::::::::: data
<FOREACH.OVERLAY.OBJECTS=.sdata>
<OVERLAY.OBJECT=.sdata:t>
<END.OVERLAY.OBJECTS>
<FOREACH.OVERLAY.LIBRARIES=.sdata>
<OVERLAY.LIBRARY=.sdata:t>
<END.OVERLAY.LIBRARIES>
. = ALIGN(4);
<FOREACH.OVERLAY.OBJECTS=.data>
<OVERLAY.OBJECT=.data:t>
<END.OVERLAY.OBJECTS>
<FOREACH.OVERLAY.LIBRARIES=.data>
<OVERLAY.LIBRARY=.data:t>
<END.OVERLAY.LIBRARIES>
. = ALIGN(4);
#:::::::::: data
. = ALIGN(32);
SDK_OVERLAY.<OVERLAY.NAME>.DATA_END =.;
SDK_OVERLAY.<OVERLAY.NAME>.END =.;
SDK_OVERLAY.<OVERLAY.NAME>.TEXT_SIZE = SDK_OVERLAY.<OVERLAY.NAME>.TEXT_END - SDK_OVERLAY.<OVERLAY.NAME>.TEXT_START;
SDK_OVERLAY.<OVERLAY.NAME>.DATA_SIZE = SDK_OVERLAY.<OVERLAY.NAME>.DATA_END - SDK_OVERLAY.<OVERLAY.NAME>.DATA_START;
SDK_OVERLAY.<OVERLAY.NAME>.SIZE = SDK_OVERLAY.<OVERLAY.NAME>.END - SDK_OVERLAY.<OVERLAY.NAME>.START;
} > <OVERLAY.NAME>
.<OVERLAY.NAME>.bss:<IF.NITRO_LCFSPEC.GE.2><OVERLAY.NAME><ENDIF>
{
ALIGNALL(4); . = ALIGN(32);
<IF.NITRO_LCFSPEC.GE.2>
<FOREACH.OVERLAY.SEARCHSYMBOLS>
SEARCH_SYMBOL <OVERLAY.SEARCHSYMBOL>;
<END.OVERLAY.SEARCHSYMBOLS>
<ENDIF>
#
# BSS BLOCK
#
SDK_OVERLAY.<OVERLAY.NAME>.BSS_START = .;
#:::::::::: bss
<FOREACH.OVERLAY.OBJECTS=.bss>
<OVERLAY.OBJECT=.bss:t>
<END.OVERLAY.OBJECTS>
<FOREACH.OVERLAY.LIBRARIES=.bss>
<OVERLAY.LIBRARY=.bss:t>
<END.OVERLAY.LIBRARIES>
. = ALIGN(4);
<FOREACH.OVERLAY.OBJECTS=.sbss>
<OVERLAY.OBJECT=.sbss:t>
<END.OVERLAY.OBJECTS>
<FOREACH.OVERLAY.LIBRARIES=.sbss>
<OVERLAY.LIBRARY=.sbss:t>
<END.OVERLAY.LIBRARIES>
. = ALIGN(4);
#:::::::::: bss
. = ALIGN(32);
SDK_OVERLAY.<OVERLAY.NAME>.BSS_END = .;
SDK_OVERLAY.<OVERLAY.NAME>.BSS_SIZE = SDK_OVERLAY.<OVERLAY.NAME>.BSS_END - SDK_OVERLAY.<OVERLAY.NAME>.BSS_START;
} >> <OVERLAY.NAME>
<END.OVERLAYS>
############################ MAIN EX ##################################
.dummy.MAIN_EX:
{
. = ALIGN(32);
} > dummy.MAIN_EX
############################ ARENA ##################################
.arena.MAIN:
{
. = ALIGN(32);
SDK_SECTION_ARENA_START =.;
} > arena.MAIN
.arena.MAIN_EX:
{
. = ALIGN(32);
SDK_SECTION_ARENA_EX_START =.;
} > arena.MAIN_EX
.arena.ITCM:
{
. = ALIGN(32);
SDK_SECTION_ARENA_ITCM_START =.;
} > arena.ITCM
.arena.DTCM:
{
. = ALIGN(32);
SDK_SECTION_ARENA_DTCM_START =.;
} > arena.DTCM
############################ OVERLAYDEFS ############################
.<PROPERTY.OVERLAYDEFS>:
{
### <STATIC.NAME> module information
WRITEW ADDR(.<STATIC.NAME>); # load address
WRITEW _start; # entry address
WRITEW SDK_STATIC_SIZE + SDK_AUTOLOAD_SIZE; # size of module
WRITEW _start_AutoloadDoneCallback; # callback autoload done
### overlay filename
<FOREACH.OVERLAYS>
WRITES ("<OVERLAY.NAME><PROPERTY.SUFFIX>"); # Overlay <OVERLAY.ID>
<END.OVERLAYS>
} > <PROPERTY.OVERLAYDEFS>
############################ OVERLAYTABLE ###########################
.<PROPERTY.OVERLAYTABLE>:
{
<FOREACH.OVERLAYS>
# Overlay <OVERLAY.ID>
WRITEW <OVERLAY.ID>; # overlay ID
WRITEW ADDR(.<OVERLAY.NAME>); # load address
WRITEW SDK_OVERLAY.<OVERLAY.NAME>.SIZE; # size of module
WRITEW SDK_OVERLAY.<OVERLAY.NAME>.BSS_SIZE; # size of bss
WRITEW SDK_OVERLAY.<OVERLAY.NAME>.SINIT_START; # start address of static init
WRITEW SDK_OVERLAY.<OVERLAY.NAME>.SINIT_END; # end address of static init
WRITEW <OVERLAY.ID>; # ROM file ID
WRITEW 0; # Reserved
<END.OVERLAYS>
} > <PROPERTY.OVERLAYTABLE>
############################ OTHERS #################################
SDK_MAIN_ARENA_LO = SDK_SECTION_ARENA_START;
SDK_IRQ_STACKSIZE = <STATIC.IRQSTACKSIZE>; # allocated in DTCM
SDK_SYS_STACKSIZE = <STATIC.STACKSIZE>; # when 0 means all remains of DTCM
# Module filelist
.binary.MODULE_FILES:
{
WRITES ("<STATIC.NAME><PROPERTY.SUFFIX>");
WRITES ("<PROPERTY.OVERLAYDEFS><PROPERTY.SUFFIX>");
WRITES ("<PROPERTY.OVERLAYTABLE><PROPERTY.SUFFIX>");
} > binary.MODULE_FILES
# ITCM/DTCM size checker => check AUTOLOAD_ITCM/DTCM
.check.ITCM:
{
. = . + SDK_AUTOLOAD_ITCM_SIZE + SDK_AUTOLOAD_ITCM_BSS_SIZE;
<FOREACH.OVERLAYS=ITCM>
. = . + SDK_OVERLAY.<OVERLAY.NAME>.SIZE + SDK_OVERLAY.<OVERLAY.NAME>.BSS_SIZE;
<END.OVERLAYS>
} > check.ITCM
SDK_SYS_STACKSIZE_SIGN = (SDK_SYS_STACKSIZE < 0x80000000) * 2 - 1;
.check.DTCM:
{
. = . + SDK_AUTOLOAD_DTCM_SIZE + SDK_AUTOLOAD_DTCM_BSS_SIZE;
<FOREACH.OVERLAYS=DTCM>
. = . + SDK_OVERLAY.<OVERLAY.NAME>.SIZE + SDK_OVERLAY.<OVERLAY.NAME>.BSS_SIZE;
<END.OVERLAYS>
. = . + SDK_IRQ_STACKSIZE + SDK_SYS_STACKSIZE * SDK_SYS_STACKSIZE_SIGN;
} > check.DTCM
}

View File

@ -1,76 +0,0 @@
#----------------------------------------------------------------------------
# Project: NitroSDK - include
# File: ARM9-TEG.lsf
#
# Copyright 2003,2004 Nintendo. All rights reserved.
#
# These coded insructions, statements, and computer programs contain
# proprietary information of Nintendo of America Inc. and/or Nintendo
# Company Ltd., and are protected by Federal copyright law. They may
# not be disclosed to third parties or copied or duplicated in any form,
# in whole or in part, without the prior written consent of Nintendo.
#
# $Log: ARM9-TEG.lsf,v $
# Revision 1.9 2004/07/10 12:17:51 yasu
# delete GROUP(ROOT)
#
# Revision 1.8 2004/07/10 04:11:17 yasu
# Add GROUP(xxx) as object group
#
# Revision 1.7 2004/07/08 04:04:59 yasu
# fix small typo
#
# Revision 1.6 2004/07/01 12:54:38 yasu
# support ITCM/DTCM/WRAM autoload
#
# Revision 1.5 2004/07/01 09:41:50 yasu
# support autoload
#
# Revision 1.4 2004/06/28 10:53:23 yasu
# Avoid to use '*' as wildcard
#
# Revision 1.3 2004/04/14 10:25:09 yasu
# delete LIBRARIES group
#
# Revision 1.2 2004/03/26 13:16:17 yasu
# use variables
#
# Revision 1.1 2004/03/26 06:04:32 yasu
# move spec files
#
# Revision 1.1 2004/03/18 12:42:34 yasu
# default.lsf -> default.ARM[9/7]-TEG.lsf
#
# Revision 1.2 2004/03/18 03:11:26 yasu
# rename segment default -> main
#
# Revision 1.1 2004/03/18 02:51:51 yasu
# default lcf spec file
#
# $NoKeywords: $
#----------------------------------------------------------------------------
#
# Nitro LCF SPEC FILE
#
Static $(TARGET_NAME)
{
Address 0x02004000
Object $(OBJS_STATIC)
Library $(LLIBS) $(GLIBS) $(CW_LIBS)
}
Autoload ITCM
{
Address 0x01ff8000
Object * (.itcm)
Object $(OBJS_AUTOLOAD) (.text)
}
Autoload DTCM
{
Address 0x02380000
Object * (.dtcm)
Object $(OBJS_AUTOLOAD) (.data)
Object $(OBJS_AUTOLOAD) (.bss)
}

View File

@ -1,77 +0,0 @@
#----------------------------------------------------------------------------
# Project: NitroSDK - include
# File: ARM9-TS.lsf
#
# Copyright 2003-2005 Nintendo. All rights reserved.
#
# These coded insructions, statements, and computer programs contain
# proprietary information of Nintendo of America Inc. and/or Nintendo
# Company Ltd., and are protected by Federal copyright law. They may
# not be disclosed to third parties or copied or duplicated in any form,
# in whole or in part, without the prior written consent of Nintendo.
#
# $Log: ARM9-TS.lsf,v $
# Revision 1.12 2005/04/14 00:04:16 terui
# Update copyright.
#
# Revision 1.11 2005/04/13 12:49:59 terui
# Change Autoload DTCM Address 0x027c0000 -> 0x027e0000
#
# Revision 1.10 2004/08/18 01:50:09 yasu
# DTCM moves to 0x027c0000
#
# Revision 1.9 2004/07/26 02:22:32 yasu
# Change DTCM address to 0x023c0000
#
# Revision 1.8 2004/07/10 12:17:51 yasu
# delete GROUP(ROOT)
#
# Revision 1.7 2004/07/10 04:11:17 yasu
# Add GROUP(xxx) as object group
#
# Revision 1.6 2004/07/01 12:54:38 yasu
# support ITCM/DTCM/WRAM autoload
#
# Revision 1.5 2004/07/01 10:41:46 yasu
# support autoload
#
# Revision 1.4 2004/06/28 10:46:45 yasu
# avoid to use '*' as wildcard
#
# Revision 1.3 2004/06/08 07:46:40 yasu
# move start address 0x02004000 -> 0x02000000
#
# Revision 1.2 2004/04/14 10:25:09 yasu
# delete LIBRARIES group
#
# Revision 1.1 2004/04/06 01:59:54 yasu
# newly added
#
# $NoKeywords: $
#----------------------------------------------------------------------------
#
# Nitro LCF SPEC FILE
#
Static $(TARGET_NAME)
{
Address 0x02000000
Object $(OBJS_STATIC)
Library $(LLIBS) $(GLIBS) $(CW_LIBS)
}
Autoload ITCM
{
Address 0x01ff8000
Object * (.itcm)
Object $(OBJS_AUTOLOAD) (.text)
}
Autoload DTCM
{
Address 0x027e0000
Object * (.dtcm)
Object $(OBJS_AUTOLOAD) (.data)
Object $(OBJS_AUTOLOAD) (.bss)
}