mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
チェック用設定追加。その他細々。
5.ARM7StaticをWRAMに直接配置。(その後、更に一部をWRAMにオートロード) git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@349 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
31b6d74f9d
commit
7992c356ee
@ -108,6 +108,7 @@ static int banner_count = 0;
|
||||
static int selected = 0;
|
||||
static int bar_left = BAR_ZERO_X;
|
||||
static fx32 s_selected_banner_size;
|
||||
static BOOL s_wavstop = FALSE;
|
||||
|
||||
// const data -----------------------------------------
|
||||
|
||||
@ -249,7 +250,7 @@ static void SetAffineAnimation( int cursor )
|
||||
double s = sin(wav);
|
||||
s_selected_banner_size = FX32_HALF - (long)( 0x80 * ( s - 1 ) );
|
||||
mtx._00 = s_selected_banner_size;
|
||||
wav += 0.1;
|
||||
if(!s_wavstop) wav += 0.1;
|
||||
}else{ // 適当に大きさを変えてみる
|
||||
mtx._00 = FX32_HALF + FX32_HALF*(cursor%FRAME_PER_SELECT)/FRAME_PER_SELECT;
|
||||
wav = 0;
|
||||
@ -270,6 +271,7 @@ static void BannerDraw(int cursor, int selected, TitleProperty *titleprop)
|
||||
int l;
|
||||
int div1 = cursor / FRAME_PER_SELECT;
|
||||
int div2 = cursor % FRAME_PER_SELECT;
|
||||
static int fadecount = 0;
|
||||
|
||||
LoadBannerToVRAM( titleprop );
|
||||
|
||||
@ -313,6 +315,11 @@ static void BannerDraw(int cursor, int selected, TitleProperty *titleprop)
|
||||
NNSG2dTextRect rect = NNS_G2dTextCanvasGetTextRect( &gTextCanvas, str );
|
||||
PutStringUTF16( (WINDOW_WIDTH-rect.width)>>1, TITLE_V_CENTER - (rect.height>>1), TXT_COLOR_BLACK, str );
|
||||
}
|
||||
|
||||
if(fadecount < (FADE_COUNT_MAX - FADE_START)) {
|
||||
fadecount += 2;
|
||||
G2_ChangeBlendAlpha( ALPHA_MAX-((fadecount)/FADE_COUNT_PER_ALPHA), (fadecount)/FADE_COUNT_PER_ALPHA );
|
||||
}
|
||||
}
|
||||
|
||||
#endif //DBGBNR
|
||||
@ -351,7 +358,7 @@ void LauncherInit( TitleProperty *pTitleList )
|
||||
|
||||
GX_SetVisiblePlane( GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1 | GX_PLANEMASK_BG2 | GX_PLANEMASK_OBJ );
|
||||
G2_SetBlendAlpha(GX_BLEND_PLANEMASK_BG2,
|
||||
GX_BLEND_PLANEMASK_BG0 | GX_BLEND_PLANEMASK_BG1 | GX_BLEND_PLANEMASK_OBJ, 0,ALPHA_MAX);
|
||||
GX_BLEND_PLANEMASK_BG0 | GX_BLEND_PLANEMASK_BG1 | GX_BLEND_PLANEMASK_OBJ, ALPHA_MAX,0);
|
||||
|
||||
GX_DispOn();
|
||||
GXS_DispOn();
|
||||
@ -496,6 +503,15 @@ static TitleProperty *ProcessPads( TitleProperty *pTitleList )
|
||||
// その他のキー処理
|
||||
if( tpd.disp.touch )
|
||||
{
|
||||
int x = WINDOW_WIDTH/2 - BANNER_WIDTH;
|
||||
int y = BANNER_TOP - BANNER_HEIGHT/2;
|
||||
if(WithinRangeTP( x, y, x+BANNER_WIDTH*2, y+BANNER_HEIGHT*2, &tpd.disp ))
|
||||
{
|
||||
s_wavstop = TRUE;
|
||||
}else
|
||||
{
|
||||
s_wavstop = FALSE;
|
||||
}
|
||||
(void) SelectFunc( &tp_lr, &tpd.disp );
|
||||
}
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
SUBDIRS =
|
||||
SUBMAKES = Makefile.0 Makefile.1 Makefile.2 Makefile.3 Makefile.4
|
||||
SUBMAKES = Makefile.0 Makefile.1 Makefile.2 Makefile.3 Makefile.4 Makefile.5
|
||||
|
||||
include $(TWL_IPL_RED_ROOT)/build/tests/RelocateChecker/buildtools/commondefs
|
||||
|
||||
|
||||
79
build/tests/RelocateChecker/ARM7/Makefile.5
Normal file
79
build/tests/RelocateChecker/ARM7/Makefile.5
Normal file
@ -0,0 +1,79 @@
|
||||
#! make -f
|
||||
#----------------------------------------------------------------------------
|
||||
# Project: TwlIPL
|
||||
# File: Makefile
|
||||
#
|
||||
# Copyright 2007 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.
|
||||
#
|
||||
# $Date:: 2007-10-09#$
|
||||
# $Rev: 1499 $
|
||||
# $Author: hatamoto_minoru $
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
TARGET_FIRM = SYSTEMMENU
|
||||
override TARGET_PLATFORM = TWL
|
||||
override TWL_PROC = ARM7
|
||||
override TWL_ARCHGEN = LIMITED
|
||||
TWL_NO_STD_PCHDR = True
|
||||
TWL_CODEGEN ?= ARM
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
SRCS = main.c
|
||||
|
||||
TARGET_NAME = hyena_rc5
|
||||
BINDIR = ./bin/$(TWL_BUILDTYPE)/$(TARGET_NAME)
|
||||
|
||||
TARGET_NEF = $(TARGET_NAME).tef
|
||||
LCFILE_SPEC = hyena_rc5.lsf
|
||||
LCFILE_TEMPLATE = $(TARGET_NAME).lcf.template
|
||||
LDRES_TEMPLATE = $(TWLSDK_ROOT)/build/components/racoon.TWL/racoon.response.template
|
||||
|
||||
LLIBRARY_DIRS += ../crt/ARM7/obj/ARM7-TS.LTD/$(TWL_BUILD_DIR)
|
||||
|
||||
CRT0_O = crt0_rc.LTD.TWL.o
|
||||
|
||||
TARGET_FOB += ARM7FLX.fob
|
||||
FBDSIZE_ARM7FLX = 4
|
||||
TARGET_FOB += ARM7LTD.fob
|
||||
FBDSIZE_ARM7LTD = 4
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
include $(TWL_IPL_RED_ROOT)/build/tests/RelocateChecker/buildtools/commondefs
|
||||
include $(TWLSDK_ROOT)/build/libraries/reboot/commondefs.reboot
|
||||
|
||||
ifdef TWLSDK_NOCRYPTO
|
||||
CCFLAGS += -DSDK_NOCRYPTO
|
||||
endif
|
||||
|
||||
ifndef TWLSDK_NOCRYPTO
|
||||
MAKELCF_FLAGS += -DUSE_CRYPTO_LIBS='libaes_sp$(TWL_LIBSUFFIX).a'
|
||||
endif
|
||||
|
||||
#MACRO_FLAGS += -DSDK_ARM7COMP_LTD
|
||||
|
||||
MAKELCF_FLAGS += -DADDRESS_FLXMAIN='0x037c0000' \
|
||||
-DADDRESS_BOOTCORE='0x0380f000' \
|
||||
-DCRT0_O='$(CRT0_O)'
|
||||
|
||||
MAKELCF_FLAGS += -DISDBG_LIBS_TWL='$(if $(ISDBG_LIBS_TWL),$(ISDBG_LIBS_TWL),libstubsistd_sp$(TWL_LIBSUFFIX).a)' \
|
||||
-DISDBG_LIBS_NITRO='libstubsisd_sp$(TWL_LIBSUFFIX).a'
|
||||
|
||||
|
||||
LINCLUDES = $(ROOT)/build/libraries/spi/ARM7/include
|
||||
LLIBRARIES += libwl_sp.TWL.LTD.a
|
||||
LDEPENDS_NEF = $(TWL_LIBS) $(LLIBRARIES)
|
||||
|
||||
do-build: $(TARGETS)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
include $(TWL_IPL_RED_ROOT)/build/tests/RelocateChecker/buildtools/modulerules
|
||||
#include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
|
||||
|
||||
#===== End of Makefile =====
|
||||
915
build/tests/RelocateChecker/ARM7/hyena_rc5.lcf.template
Normal file
915
build/tests/RelocateChecker/ARM7/hyena_rc5.lcf.template
Normal file
@ -0,0 +1,915 @@
|
||||
#---------------------------------------------------------------------------
|
||||
# Project: TwlIPL
|
||||
# File: hyena.lcf.template
|
||||
#
|
||||
# Copyright 2007 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.
|
||||
#
|
||||
# $Date:: 2007-11-16#$
|
||||
# $Rev: 192 $
|
||||
# $Author: yosiokat $
|
||||
#---------------------------------------------------------------------------
|
||||
MEMORY
|
||||
{
|
||||
<STATIC.NAME> (RWX) : ORIGIN = <STATIC.ADDRESS>, LENGTH = 0x0 > <STATIC.NAME><PROPERTY.FLXSUFFIX>
|
||||
|
||||
<FOREACH.AUTOLOADS>
|
||||
<AUTOLOAD.NAME> (RWX) : ORIGIN = <AUTOLOAD.ADDRESS>, LENGTH = 0x0 >> <STATIC.NAME><PROPERTY.FLXSUFFIX>
|
||||
<END.AUTOLOADS>
|
||||
binary.AUTOLOAD_INFO (RWX) : ORIGIN = 0, LENGTH = 0x0 >> <STATIC.NAME><PROPERTY.FLXSUFFIX>
|
||||
binary.STATIC_FOOTER (RWX) : ORIGIN = 0, LENGTH = 0x0 >> <STATIC.NAME><PROPERTY.FLXSUFFIX>
|
||||
|
||||
<PROPERTY.OVERLAYDEFS>F (RW) : ORIGIN = 0, LENGTH = 0x0 > <PROPERTY.OVERLAYDEFS><PROPERTY.FLXSUFFIX>
|
||||
<PROPERTY.OVERLAYTABLE>F (RW) : ORIGIN = 0, LENGTH = 0x0 > <PROPERTY.OVERLAYTABLE><PROPERTY.FLXSUFFIX>
|
||||
<FOREACH.OVERLAYS>
|
||||
<OVERLAY.NAME> (RWXO): ORIGIN = <OVERLAY.ADDRESS>, LENGTH = 0x0 > <OVERLAY.NAME><PROPERTY.FLXSUFFIX>
|
||||
<END.OVERLAYS>
|
||||
|
||||
check.WORKRAM (RWX) : ORIGIN = 0x037c0000, LENGTH = 0x50000 > workram.check
|
||||
|
||||
binary.LTDAUTOLOAD_TOP (RW) : ORIGIN = 0, LENGTH = 0x0 > <STATIC.NAME><PROPERTY.LTDSUFFIX>
|
||||
<FOREACH.LTDAUTOLOADS>
|
||||
<LTDAUTOLOAD.NAME> (RWX) : ORIGIN = <LTDAUTOLOAD.ADDRESS>, LENGTH = 0x0 >> <STATIC.NAME><PROPERTY.LTDSUFFIX>
|
||||
<END.LTDAUTOLOADS>
|
||||
binary.LTDAUTOLOAD_INFO (RWX) : ORIGIN = 0, LENGTH = 0x0 >> <STATIC.NAME><PROPERTY.LTDSUFFIX>
|
||||
|
||||
<PROPERTY.LTDOVERLAYDEFS>L (RW) : ORIGIN = 0, LENGTH = 0x0 > <PROPERTY.LTDOVERLAYDEFS><PROPERTY.LTDSUFFIX>
|
||||
<PROPERTY.LTDOVERLAYTABLE>L (RW) : ORIGIN = 0, LENGTH = 0x0 > <PROPERTY.LTDOVERLAYTABLE><PROPERTY.LTDSUFFIX>
|
||||
<FOREACH.LTDOVERLAYS>
|
||||
<LTDOVERLAY.NAME> (RWXO): ORIGIN = <LTDOVERLAY.ADDRESS>, LENGTH = 0x0 > <LTDOVERLAY.NAME><PROPERTY.LTDSUFFIX>
|
||||
<END.LTDOVERLAYS>
|
||||
|
||||
check.LTDMAIN (RWX) : ORIGIN = 0x02d00000, LENGTH = 0x01080000 > ltdmain.check
|
||||
}
|
||||
|
||||
KEEP_SECTION
|
||||
{
|
||||
.sinit
|
||||
}
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
############################ STATIC #################################
|
||||
.<STATIC.NAME>:
|
||||
{
|
||||
ALIGNALL(4);
|
||||
. = ALIGN(4);
|
||||
|
||||
#
|
||||
# Definition to refer overlay segment, when same name symbols exist in multiple overlays.
|
||||
#
|
||||
<FOREACH.STATIC.SEARCHSYMBOLS>
|
||||
SEARCH_SYMBOL <STATIC.SEARCHSYMBOL>;
|
||||
<END.STATIC.SEARCHSYMBOLS>
|
||||
|
||||
#
|
||||
# TEXT BLOCK: READ ONLY
|
||||
#
|
||||
SDK_STATIC_START =.;
|
||||
SDK_STATIC_TEXT_START =.;
|
||||
#:::::::::: text/rodata
|
||||
OBJECT(_start,*)
|
||||
<FOREACH.STATIC.OBJECTS=.text>
|
||||
<STATIC.OBJECT=.text:t>
|
||||
<END.STATIC.OBJECTS>
|
||||
<FOREACH.STATIC.LIBRARIES=.text>
|
||||
<STATIC.LIBRARY=.text:t>
|
||||
<END.STATIC.LIBRARIES>
|
||||
<FOREACH.STATIC.OBJECTS=.rodata>
|
||||
<STATIC.OBJECT=.rodata:t>
|
||||
<END.STATIC.OBJECTS>
|
||||
<FOREACH.STATIC.LIBRARIES=.rodata>
|
||||
<STATIC.LIBRARY=.rodata:t>
|
||||
<END.STATIC.LIBRARIES>
|
||||
<FOREACH.STATIC.OBJECTS=.init>
|
||||
<STATIC.OBJECT=.init:t>
|
||||
<END.STATIC.OBJECTS>
|
||||
<FOREACH.STATIC.LIBRARIES=.init>
|
||||
<STATIC.LIBRARY=.init: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>
|
||||
<FOREACH.STATIC.OBJECTS=.sinit>
|
||||
<STATIC.OBJECT=.sinit:t>
|
||||
<END.STATIC.OBJECTS>
|
||||
<FOREACH.STATIC.LIBRARIES=.sinit>
|
||||
<STATIC.LIBRARY=.sinit:t>
|
||||
<END.STATIC.LIBRARIES>
|
||||
WRITEW 0;
|
||||
#:::::::::: ctor
|
||||
SDK_STATIC_SINIT_END =.;
|
||||
#:::::::::: text/rodata
|
||||
SDK_STATIC_TEXT_END =.;
|
||||
|
||||
#
|
||||
# DATA BLOCK: READ WRITE
|
||||
#
|
||||
. = ALIGN(4);
|
||||
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>
|
||||
<FOREACH.STATIC.OBJECTS=.data>
|
||||
<STATIC.OBJECT=.data:t>
|
||||
<END.STATIC.OBJECTS>
|
||||
<FOREACH.STATIC.LIBRARIES=.data>
|
||||
<STATIC.LIBRARY=.data:t>
|
||||
<END.STATIC.LIBRARIES>
|
||||
#:::::::::: data
|
||||
SDK_STATIC_DATA_END =.;
|
||||
. = ALIGN(4);
|
||||
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
|
||||
|
||||
} > <STATIC.NAME>
|
||||
|
||||
.<STATIC.NAME>.bss:
|
||||
{
|
||||
ALIGNALL(4);
|
||||
. = ALIGN(4);
|
||||
|
||||
#
|
||||
# Definition to refer overlay segment, when same name symbols exist in multiple overlays.
|
||||
#
|
||||
<FOREACH.STATIC.SEARCHSYMBOLS>
|
||||
SEARCH_SYMBOL <STATIC.SEARCHSYMBOL>;
|
||||
<END.STATIC.SEARCHSYMBOLS>
|
||||
|
||||
#
|
||||
# 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>
|
||||
<FOREACH.STATIC.OBJECTS=.bss>
|
||||
<STATIC.OBJECT=.bss:t>
|
||||
<END.STATIC.OBJECTS>
|
||||
<FOREACH.STATIC.LIBRARIES=.bss>
|
||||
<STATIC.LIBRARY=.bss:t>
|
||||
<END.STATIC.LIBRARIES>
|
||||
#:::::::::: bss
|
||||
. = ALIGN(4);
|
||||
SDK_STATIC_BSS_END = .;
|
||||
|
||||
SDK_STATIC_BSS_SIZE = SDK_STATIC_BSS_END - SDK_STATIC_BSS_START;
|
||||
|
||||
} >> <STATIC.NAME>
|
||||
|
||||
|
||||
############################ AUTOLOADS ##############################
|
||||
SDK_AUTOLOAD.WRAM.START = 0x037c0000;
|
||||
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);
|
||||
|
||||
#
|
||||
# Definition to refer overlay segment, when same name symbols exist in multiple overlays.
|
||||
#
|
||||
<FOREACH.AUTOLOAD.SEARCHSYMBOLS>
|
||||
SEARCH_SYMBOL <AUTOLOAD.SEARCHSYMBOL>;
|
||||
<END.AUTOLOAD.SEARCHSYMBOLS>
|
||||
|
||||
#
|
||||
# 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>
|
||||
<FOREACH.AUTOLOAD.OBJECTS=.etable>
|
||||
<AUTOLOAD.OBJECT=.exception:t>
|
||||
. = ALIGN(4);
|
||||
SDK_STATIC_ETABLE_START =.;
|
||||
__exception_table_start__ =.;
|
||||
EXCEPTION
|
||||
__exception_table_end__ =.;
|
||||
SDK_STATIC_ETABLE_END =.;
|
||||
<END.AUTOLOAD.OBJECTS>
|
||||
<FOREACH.AUTOLOAD.OBJECTS=.rodata>
|
||||
<AUTOLOAD.OBJECT=.rodata:t>
|
||||
<END.AUTOLOAD.OBJECTS>
|
||||
<FOREACH.AUTOLOAD.LIBRARIES=.rodata>
|
||||
<AUTOLOAD.LIBRARY=.rodata:t>
|
||||
<END.AUTOLOAD.LIBRARIES>
|
||||
<FOREACH.AUTOLOAD.OBJECTS=.init>
|
||||
<AUTOLOAD.OBJECT=.init:t>
|
||||
<END.AUTOLOAD.OBJECTS>
|
||||
<FOREACH.AUTOLOAD.LIBRARIES=.init>
|
||||
<AUTOLOAD.LIBRARY=.init:t>
|
||||
<END.AUTOLOAD.LIBRARIES>
|
||||
. = ALIGN(4);
|
||||
SDK_AUTOLOAD.<AUTOLOAD.NAME>.SINIT_START =.;
|
||||
#:::::::::: ctor
|
||||
<FOREACH.AUTOLOAD.OBJECTS=.ctor>
|
||||
<AUTOLOAD.OBJECT=.ctor:t>
|
||||
<END.AUTOLOAD.OBJECTS>
|
||||
<FOREACH.AUTOLOAD.LIBRARIES=.ctor>
|
||||
<AUTOLOAD.LIBRARY=.ctor:t>
|
||||
<END.AUTOLOAD.LIBRARIES>
|
||||
<FOREACH.AUTOLOAD.OBJECTS=.sinit>
|
||||
<AUTOLOAD.OBJECT=.sinit:t>
|
||||
<END.AUTOLOAD.OBJECTS>
|
||||
<FOREACH.AUTOLOAD.LIBRARIES=.sinit>
|
||||
<AUTOLOAD.LIBRARY=.sinit:t>
|
||||
<END.AUTOLOAD.LIBRARIES>
|
||||
WRITEW 0;
|
||||
#:::::::::: ctor
|
||||
SDK_AUTOLOAD.<AUTOLOAD.NAME>.SINIT_END =.;
|
||||
#:::::::::: text/rodata
|
||||
SDK_AUTOLOAD.<AUTOLOAD.NAME>.TEXT_END =.;
|
||||
|
||||
#
|
||||
# DATA BLOCK: READ WRITE BLOCK
|
||||
#
|
||||
. = ALIGN(4);
|
||||
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>
|
||||
<FOREACH.AUTOLOAD.OBJECTS=.ltdwram>
|
||||
<AUTOLOAD.OBJECT=.ltdwram:t>
|
||||
<END.AUTOLOAD.OBJECTS>
|
||||
<FOREACH.AUTOLOAD.LIBRARIES=.ltdwram>
|
||||
<AUTOLOAD.LIBRARY=.ltdwram:t>
|
||||
<END.AUTOLOAD.LIBRARIES>
|
||||
<FOREACH.AUTOLOAD.OBJECTS=.sdata>
|
||||
<AUTOLOAD.OBJECT=.sdata:t>
|
||||
<END.AUTOLOAD.OBJECTS>
|
||||
<FOREACH.AUTOLOAD.LIBRARIES=.sdata>
|
||||
<AUTOLOAD.LIBRARY=.sdata:t>
|
||||
<END.AUTOLOAD.LIBRARIES>
|
||||
<FOREACH.AUTOLOAD.OBJECTS=.data>
|
||||
<AUTOLOAD.OBJECT=.data:t>
|
||||
<END.AUTOLOAD.OBJECTS>
|
||||
<FOREACH.AUTOLOAD.LIBRARIES=.data>
|
||||
<AUTOLOAD.LIBRARY=.data:t>
|
||||
<END.AUTOLOAD.LIBRARIES>
|
||||
#:::::::::: data
|
||||
SDK_AUTOLOAD.<AUTOLOAD.NAME>.DATA_END =.;
|
||||
. = ALIGN(4);
|
||||
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);
|
||||
|
||||
#
|
||||
# Definition to refer overlay segment, when same name symbols exist in multiple overlays.
|
||||
#
|
||||
<FOREACH.AUTOLOAD.SEARCHSYMBOLS>
|
||||
SEARCH_SYMBOL <AUTOLOAD.SEARCHSYMBOL>;
|
||||
<END.AUTOLOAD.SEARCHSYMBOLS>
|
||||
|
||||
#
|
||||
# BSS BLOCK
|
||||
#
|
||||
SDK_AUTOLOAD.<AUTOLOAD.NAME>.BSS_START = .;
|
||||
#:::::::::: bss
|
||||
<FOREACH.AUTOLOAD.OBJECTS=.wram>
|
||||
<AUTOLOAD.OBJECT=.wram.bss:t>
|
||||
<END.AUTOLOAD.OBJECTS>
|
||||
<FOREACH.AUTOLOAD.LIBRARIES=.wram>
|
||||
<AUTOLOAD.LIBRARY=.wram.bss:t>
|
||||
<END.AUTOLOAD.LIBRARIES>
|
||||
<FOREACH.AUTOLOAD.OBJECTS=.ltdwram>
|
||||
<AUTOLOAD.OBJECT=.ltdwram.bss:t>
|
||||
<END.AUTOLOAD.OBJECTS>
|
||||
<FOREACH.AUTOLOAD.LIBRARIES=.ltdwram>
|
||||
<AUTOLOAD.LIBRARY=.ltdwram.bss:t>
|
||||
<END.AUTOLOAD.LIBRARIES>
|
||||
<FOREACH.AUTOLOAD.OBJECTS=.sbss>
|
||||
<AUTOLOAD.OBJECT=.sbss:t>
|
||||
<END.AUTOLOAD.OBJECTS>
|
||||
<FOREACH.AUTOLOAD.LIBRARIES=.sbss>
|
||||
<AUTOLOAD.LIBRARY=.sbss:t>
|
||||
<END.AUTOLOAD.LIBRARIES>
|
||||
<FOREACH.AUTOLOAD.OBJECTS=.bss>
|
||||
<AUTOLOAD.OBJECT=.bss:t>
|
||||
<END.AUTOLOAD.OBJECTS>
|
||||
<FOREACH.AUTOLOAD.LIBRARIES=.bss>
|
||||
<AUTOLOAD.LIBRARY=.bss:t>
|
||||
<END.AUTOLOAD.LIBRARIES>
|
||||
#:::::::::: 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_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>.SINIT_START;
|
||||
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
|
||||
WRITEW _start_LtdModuleParams - ADDR(.<STATIC.NAME>);
|
||||
} > binary.STATIC_FOOTER
|
||||
|
||||
############################ OVERLAYS ###############################
|
||||
SDK_OVERLAY_NUMBER = <NUMBER.OVERLAYS>;
|
||||
|
||||
<FOREACH.OVERLAYS>
|
||||
.<OVERLAY.NAME>:<OVERLAY.NAME>
|
||||
{
|
||||
ALIGNALL(4);
|
||||
. = ALIGN(4);
|
||||
|
||||
#
|
||||
# Definition to refer overlay segment, when same name symbols exist in multiple overlays.
|
||||
#
|
||||
<FOREACH.OVERLAY.SEARCHSYMBOLS>
|
||||
SEARCH_SYMBOL <OVERLAY.SEARCHSYMBOL>;
|
||||
<END.OVERLAY.SEARCHSYMBOLS>
|
||||
|
||||
#
|
||||
# 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>
|
||||
<FOREACH.OVERLAY.OBJECTS=.rodata>
|
||||
<OVERLAY.OBJECT=.rodata:t>
|
||||
<END.OVERLAY.OBJECTS>
|
||||
<FOREACH.OVERLAY.LIBRARIES=.rodata>
|
||||
<OVERLAY.LIBRARY=.rodata:t>
|
||||
<END.OVERLAY.LIBRARIES>
|
||||
<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>
|
||||
<FOREACH.OVERLAY.OBJECTS=.sinit>
|
||||
<OVERLAY.OBJECT=.sinit:t>
|
||||
<END.OVERLAY.OBJECTS>
|
||||
<FOREACH.OVERLAY.LIBRARIES=.sinit>
|
||||
<OVERLAY.LIBRARY=.sinit:t>
|
||||
<END.OVERLAY.LIBRARIES>
|
||||
WRITEW 0;
|
||||
#:::::::::: ctor
|
||||
SDK_OVERLAY.<OVERLAY.NAME>.SINIT_END =.;
|
||||
#:::::::::: text/rodata
|
||||
SDK_OVERLAY.<OVERLAY.NAME>.TEXT_END =.;
|
||||
|
||||
#
|
||||
# DATA BLOCK: READ WRITE
|
||||
#
|
||||
. = ALIGN(4);
|
||||
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>
|
||||
<FOREACH.OVERLAY.OBJECTS=.data>
|
||||
<OVERLAY.OBJECT=.data:t>
|
||||
<END.OVERLAY.OBJECTS>
|
||||
<FOREACH.OVERLAY.LIBRARIES=.data>
|
||||
<OVERLAY.LIBRARY=.data:t>
|
||||
<END.OVERLAY.LIBRARIES>
|
||||
#:::::::::: data
|
||||
SDK_OVERLAY.<OVERLAY.NAME>.DATA_END =.;
|
||||
. = ALIGN(4);
|
||||
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:<OVERLAY.NAME>
|
||||
{
|
||||
ALIGNALL(4);
|
||||
. = ALIGN(4);
|
||||
|
||||
#
|
||||
# Definition to refer overlay segment, when same name symbols exist in multiple overlays.
|
||||
#
|
||||
<FOREACH.OVERLAY.SEARCHSYMBOLS>
|
||||
SEARCH_SYMBOL <OVERLAY.SEARCHSYMBOL>;
|
||||
<END.OVERLAY.SEARCHSYMBOLS>
|
||||
|
||||
#
|
||||
# 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>
|
||||
<FOREACH.OVERLAY.OBJECTS=.sbss>
|
||||
<OVERLAY.OBJECT=.sbss:t>
|
||||
<END.OVERLAY.OBJECTS>
|
||||
<FOREACH.OVERLAY.LIBRARIES=.sbss>
|
||||
<OVERLAY.LIBRARY=.sbss:t>
|
||||
<END.OVERLAY.LIBRARIES>
|
||||
#:::::::::: 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>
|
||||
|
||||
############################ OVERLAYDEFS ############################
|
||||
.<PROPERTY.OVERLAYDEFS>F:
|
||||
{
|
||||
### <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.FLXSUFFIX>"); # Overlay <OVERLAY.ID>
|
||||
<END.OVERLAYS>
|
||||
|
||||
} > <PROPERTY.OVERLAYDEFS>F
|
||||
|
||||
############################ OVERLAYTABLE ###########################
|
||||
.<PROPERTY.OVERLAYTABLE>F:
|
||||
{
|
||||
<FOREACH.OVERLAYS>
|
||||
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>F
|
||||
|
||||
############################ OTHERS #################################
|
||||
SDK_WRAM_ARENA_LO = SDK_AUTOLOAD.WRAM.BSS_END;
|
||||
|
||||
SDK_IRQ_STACKSIZE = <STATIC.IRQSTACKSIZE>; # allocated in WRAM
|
||||
SDK_SYS_STACKSIZE = <STATIC.STACKSIZE>; # allocated in WRAM
|
||||
SDK_SYS_STACKSIZE_SIGN = (SDK_SYS_STACKSIZE < 0x80000000) * 2 - 1;
|
||||
|
||||
.check.WORKRAM:
|
||||
{
|
||||
. = . + SDK_AUTOLOAD.WRAM.BSS_END - SDK_AUTOLOAD.WRAM.START + 0x080 + SDK_IRQ_STACKSIZE + SDK_SYS_STACKSIZE * SDK_SYS_STACKSIZE_SIGN;
|
||||
|
||||
} > check.WORKRAM
|
||||
|
||||
########################### LTDAUTOLOADS ############################
|
||||
SDK_LTDAUTOLOAD.LTDMAIN.START = SDK_STATIC_BSS_END;
|
||||
SDK_LTDAUTOLOAD.LTDMAIN.END = SDK_LTDAUTOLOAD.LTDMAIN.START;
|
||||
SDK_LTDAUTOLOAD.LTDMAIN.BSS_END = SDK_LTDAUTOLOAD.LTDMAIN.START;
|
||||
SDK_LTDAUTOLOAD.LTDMAIN.SIZE = 0;
|
||||
SDK_LTDAUTOLOAD.LTDMAIN.BSS_SIZE = 0;
|
||||
SDK_LTDAUTOLOAD_TOP_START = 0x02280000;
|
||||
SDK_LTDAUTOLOAD_TOP_SIZE = 4; # STATIC 領域が無い代わりに 4 bytes のダミーがバイナリファイルの先頭に入る #
|
||||
SDK_LTDAUTOLOAD_START = SDK_LTDAUTOLOAD_TOP_START + SDK_LTDAUTOLOAD_TOP_SIZE;
|
||||
SDK_LTDAUTOLOAD_SIZE = 0;
|
||||
SDK_LTDAUTOLOAD_NUMBER = <NUMBER.LTDAUTOLOADS>;
|
||||
|
||||
.binary.LTDAUTOLOAD_TOP:
|
||||
{
|
||||
WRITEW 0;
|
||||
|
||||
} > binary.LTDAUTOLOAD_TOP
|
||||
|
||||
<FOREACH.LTDAUTOLOADS>
|
||||
.<LTDAUTOLOAD.NAME>:
|
||||
{
|
||||
ALIGNALL(4);
|
||||
. = ALIGN(4);
|
||||
|
||||
#
|
||||
# Definition to refer overlay segment, when same name symbols exist in multiple overlays.
|
||||
#
|
||||
<FOREACH.LTDAUTOLOAD.SEARCHSYMBOLS>
|
||||
SEARCH_SYMBOL <LTDAUTOLOAD.SEARCHSYMBOL>;
|
||||
<END.LTDAUTOLOAD.SEARCHSYMBOLS>
|
||||
|
||||
SDK_LTDAUTOLOAD_<LTDAUTOLOAD.NAME>_ID =<LTDAUTOLOAD.ID>;
|
||||
SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.ID =<LTDAUTOLOAD.ID>;
|
||||
SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.START =.;
|
||||
#
|
||||
# TEXT BLOCK: READ ONLY
|
||||
#
|
||||
SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.TEXT_START =.;
|
||||
#:::::::::: text/rodata
|
||||
<FOREACH.LTDAUTOLOAD.OBJECTS=.text>
|
||||
<LTDAUTOLOAD.OBJECT=.text:t>
|
||||
<END.LTDAUTOLOAD.OBJECTS>
|
||||
<FOREACH.LTDAUTOLOAD.LIBRARIES=.text>
|
||||
<LTDAUTOLOAD.LIBRARY=.text:t>
|
||||
<END.LTDAUTOLOAD.LIBRARIES>
|
||||
<FOREACH.LTDAUTOLOAD.OBJECTS=.rodata>
|
||||
<LTDAUTOLOAD.OBJECT=.rodata:t>
|
||||
<END.LTDAUTOLOAD.OBJECTS>
|
||||
<FOREACH.LTDAUTOLOAD.LIBRARIES=.rodata>
|
||||
<LTDAUTOLOAD.LIBRARY=.rodata:t>
|
||||
<END.LTDAUTOLOAD.LIBRARIES>
|
||||
<FOREACH.LTDAUTOLOAD.OBJECTS=.init>
|
||||
<LTDAUTOLOAD.OBJECT=.init:t>
|
||||
<END.LTDAUTOLOAD.OBJECTS>
|
||||
<FOREACH.LTDAUTOLOAD.LIBRARIES=.init>
|
||||
<LTDAUTOLOAD.LIBRARY=.init:t>
|
||||
<END.LTDAUTOLOAD.LIBRARIES>
|
||||
. = ALIGN(4);
|
||||
SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.SINIT_START =.;
|
||||
#:::::::::: ctor
|
||||
<FOREACH.LTDAUTOLOAD.OBJECTS=.ctor>
|
||||
<LTDAUTOLOAD.OBJECT=.ctor:t>
|
||||
<END.LTDAUTOLOAD.OBJECTS>
|
||||
<FOREACH.LTDAUTOLOAD.LIBRARIES=.ctor>
|
||||
<LTDAUTOLOAD.LIBRARY=.ctor:t>
|
||||
<END.LTDAUTOLOAD.LIBRARIES>
|
||||
<FOREACH.LTDAUTOLOAD.OBJECTS=.sinit>
|
||||
<LTDAUTOLOAD.OBJECT=.sinit:t>
|
||||
<END.LTDAUTOLOAD.OBJECTS>
|
||||
<FOREACH.LTDAUTOLOAD.LIBRARIES=.sinit>
|
||||
<LTDAUTOLOAD.LIBRARY=.sinit:t>
|
||||
<END.LTDAUTOLOAD.LIBRARIES>
|
||||
WRITEW 0;
|
||||
#:::::::::: ctor
|
||||
SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.SINIT_END =.;
|
||||
#:::::::::: text/rodata
|
||||
SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.TEXT_END =.;
|
||||
|
||||
#
|
||||
# DATA BLOCK: READ WRITE BLOCK
|
||||
#
|
||||
. = ALIGN(4);
|
||||
SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.DATA_START =.;
|
||||
#:::::::::: data
|
||||
<FOREACH.LTDAUTOLOAD.OBJECTS=.sdata>
|
||||
<LTDAUTOLOAD.OBJECT=.sdata:t>
|
||||
<END.LTDAUTOLOAD.OBJECTS>
|
||||
<FOREACH.LTDAUTOLOAD.LIBRARIES=.sdata>
|
||||
<LTDAUTOLOAD.LIBRARY=.sdata:t>
|
||||
<END.LTDAUTOLOAD.LIBRARIES>
|
||||
<FOREACH.LTDAUTOLOAD.OBJECTS=.data>
|
||||
<LTDAUTOLOAD.OBJECT=.data:t>
|
||||
<END.LTDAUTOLOAD.OBJECTS>
|
||||
<FOREACH.LTDAUTOLOAD.LIBRARIES=.data>
|
||||
<LTDAUTOLOAD.LIBRARY=.data:t>
|
||||
<END.LTDAUTOLOAD.LIBRARIES>
|
||||
<FOREACH.LTDAUTOLOAD.OBJECTS=.ltdmain>
|
||||
<LTDAUTOLOAD.OBJECT=.ltdmain:t>
|
||||
<END.LTDAUTOLOAD.OBJECTS>
|
||||
<FOREACH.LTDAUTOLOAD.LIBRARIES=.ltdmain>
|
||||
<LTDAUTOLOAD.LIBRARY=.ltdmain:t>
|
||||
<END.LTDAUTOLOAD.LIBRARIES>
|
||||
#:::::::::: data
|
||||
SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.DATA_END =.;
|
||||
. = ALIGN(4);
|
||||
SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.END =.;
|
||||
|
||||
SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.TEXT_SIZE = SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.TEXT_END - SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.TEXT_START;
|
||||
SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.DATA_SIZE = SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.DATA_END - SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.DATA_START;
|
||||
SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.SIZE = SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.END - SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.START;
|
||||
SDK_LTDAUTOLOAD_SIZE = SDK_LTDAUTOLOAD_SIZE + SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.SIZE;
|
||||
|
||||
} > <LTDAUTOLOAD.NAME>
|
||||
|
||||
.<LTDAUTOLOAD.NAME>.bss:
|
||||
{
|
||||
ALIGNALL(4);
|
||||
. = ALIGN(4);
|
||||
|
||||
#
|
||||
# Definition to refer overlay segment, when same name symbols exist in multiple overlays.
|
||||
#
|
||||
<FOREACH.LTDAUTOLOAD.SEARCHSYMBOLS>
|
||||
SEARCH_SYMBOL <LTDAUTOLOAD.SEARCHSYMBOL>;
|
||||
<END.LTDAUTOLOAD.SEARCHSYMBOLS>
|
||||
|
||||
#
|
||||
# BSS BLOCK
|
||||
#
|
||||
SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.BSS_START =.;
|
||||
#:::::::::: bss
|
||||
<FOREACH.LTDAUTOLOAD.OBJECTS=.sbss>
|
||||
<LTDAUTOLOAD.OBJECT=.sbss:t>
|
||||
<END.LTDAUTOLOAD.OBJECTS>
|
||||
<FOREACH.LTDAUTOLOAD.LIBRARIES=.sbss>
|
||||
<LTDAUTOLOAD.LIBRARY=.sbss:t>
|
||||
<END.LTDAUTOLOAD.LIBRARIES>
|
||||
<FOREACH.LTDAUTOLOAD.OBJECTS=.bss>
|
||||
<LTDAUTOLOAD.OBJECT=.bss:t>
|
||||
<END.LTDAUTOLOAD.OBJECTS>
|
||||
<FOREACH.LTDAUTOLOAD.LIBRARIES=.bss>
|
||||
<LTDAUTOLOAD.LIBRARY=.bss:t>
|
||||
<END.LTDAUTOLOAD.LIBRARIES>
|
||||
<FOREACH.LTDAUTOLOAD.OBJECTS=.ltdmain>
|
||||
<LTDAUTOLOAD.OBJECT=.ltdmain.bss:t>
|
||||
<END.LTDAUTOLOAD.OBJECTS>
|
||||
<FOREACH.LTDAUTOLOAD.LIBRARIES=.ltdmain>
|
||||
<LTDAUTOLOAD.LIBRARY=.ltdmain.bss:t>
|
||||
<END.LTDAUTOLOAD.LIBRARIES>
|
||||
#:::::::::: bss
|
||||
. = ALIGN(4);
|
||||
SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.BSS_END =.;
|
||||
|
||||
SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.BSS_SIZE = SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.BSS_END - SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.BSS_START;
|
||||
|
||||
} >> <LTDAUTOLOAD.NAME>
|
||||
|
||||
<END.LTDAUTOLOADS>
|
||||
|
||||
SDK_LTDAUTOLOAD_LTDMAIN_START = SDK_LTDAUTOLOAD.LTDMAIN.START;
|
||||
SDK_LTDAUTOLOAD_LTDMAIN_END = SDK_LTDAUTOLOAD.LTDMAIN.END;
|
||||
SDK_LTDAUTOLOAD_LTDMAIN_BSS_END = SDK_LTDAUTOLOAD.LTDMAIN.BSS_END;
|
||||
SDK_LTDAUTOLOAD_LTDMAIN_SIZE = SDK_LTDAUTOLOAD.LTDMAIN.SIZE;
|
||||
SDK_LTDAUTOLOAD_LTDMAIN_BSS_SIZE = SDK_LTDAUTOLOAD.LTDMAIN.BSS_SIZE;
|
||||
|
||||
######################### LTDAUTOLOAD_INFO ##########################
|
||||
.binary.LTDAUTOLOAD_INFO:
|
||||
{
|
||||
<FOREACH.LTDAUTOLOADS>
|
||||
WRITEW ADDR(.<LTDAUTOLOAD.NAME>);
|
||||
WRITEW SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.SIZE;
|
||||
WRITEW SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.SINIT_START;
|
||||
WRITEW SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.BSS_SIZE;
|
||||
<END.LTDAUTOLOADS>
|
||||
|
||||
} > binary.LTDAUTOLOAD_INFO
|
||||
|
||||
SDK_LTDAUTOLOAD_LIST = SDK_LTDAUTOLOAD_START + SDK_LTDAUTOLOAD_SIZE;
|
||||
SDK_LTDAUTOLOAD_LIST_END = SDK_LTDAUTOLOAD_LIST + SIZEOF(.binary.LTDAUTOLOAD_INFO);
|
||||
SDK_LTDAUTOLOAD_SIZE = SDK_LTDAUTOLOAD_SIZE + SIZEOF(.binary.LTDAUTOLOAD_INFO);
|
||||
|
||||
########################### LTDOVERLAYS #############################
|
||||
SDK_LTDOVERLAY_NUMBER = <NUMBER.LTDOVERLAYS>;
|
||||
|
||||
<FOREACH.LTDOVERLAYS>
|
||||
.<LTDOVERLAY.NAME>:<LTDOVERLAY.NAME>
|
||||
{
|
||||
ALIGNALL(4);
|
||||
. = ALIGN(4);
|
||||
|
||||
#
|
||||
# Definition to refer overlay segment, when same name symbols exist in multiple overlays.
|
||||
#
|
||||
<FOREACH.LTDOVERLAY.SEARCHSYMBOLS>
|
||||
SEARCH_SYMBOL <LTDOVERLAY.SEARCHSYMBOL>;
|
||||
<END.LTDOVERLAY.SEARCHSYMBOLS>
|
||||
|
||||
SDK_LTDOVERLAY_<LTDOVERLAY.NAME>_ID =<LTDOVERLAY.ID>;
|
||||
SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.ID =<LTDOVERLAY.ID>;
|
||||
SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.START =.;
|
||||
#
|
||||
# TEXT BLOCK: READ ONLY
|
||||
#
|
||||
SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.TEXT_START =.;
|
||||
#:::::::::: text/rodata
|
||||
<FOREACH.LTDOVERLAY.OBJECTS=.text>
|
||||
<LTDOVERLAY.OBJECT=.text:t>
|
||||
<END.LTDOVERLAY.OBJECTS>
|
||||
<FOREACH.LTDOVERLAY.LIBRARIES=.text>
|
||||
<LTDOVERLAY.LIBRARY=.text:t>
|
||||
<END.LTDOVERLAY.LIBRARIES>
|
||||
<FOREACH.LTDOVERLAY.OBJECTS=.rodata>
|
||||
<LTDOVERLAY.OBJECT=.rodata:t>
|
||||
<END.LTDOVERLAY.OBJECTS>
|
||||
<FOREACH.LTDOVERLAY.LIBRARIES=.rodata>
|
||||
<LTDOVERLAY.LIBRARY=.rodata:t>
|
||||
<END.LTDOVERLAY.LIBRARIES>
|
||||
<FOREACH.LTDOVERLAY.OBJECTS=.init>
|
||||
<LTDOVERLAY.OBJECT=.init:t>
|
||||
<END.LTDOVERLAY.OBJECTS>
|
||||
<FOREACH.LTDOVERLAY.LIBRARIES=.init>
|
||||
<LTDOVERLAY.LIBRARY=.init:t>
|
||||
<END.LTDOVERLAY.LIBRARIES>
|
||||
. = ALIGN(4);
|
||||
SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.SINIT_START =.;
|
||||
#:::::::::: ctor
|
||||
<FOREACH.LTDOVERLAY.OBJECTS=.ctor>
|
||||
<LTDOVERLAY.OBJECT=.ctor:t>
|
||||
<END.LTDOVERLAY.OBJECTS>
|
||||
<FOREACH.LTDOVERLAY.LIBRARIES=.ctor>
|
||||
<LTDOVERLAY.LIBRARY=.ctor:t>
|
||||
<END.LTDOVERLAY.LIBRARIES>
|
||||
<FOREACH.LTDOVERLAY.OBJECTS=.sinit>
|
||||
<LTDOVERLAY.OBJECT=.sinit:t>
|
||||
<END.LTDOVERLAY.OBJECTS>
|
||||
<FOREACH.LTDOVERLAY.LIBRARIES=.sinit>
|
||||
<LTDOVERLAY.LIBRARY=.sinit:t>
|
||||
<END.LTDOVERLAY.LIBRARIES>
|
||||
WRITEW 0;
|
||||
#:::::::::: ctor
|
||||
SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.SINIT_END =.;
|
||||
#:::::::::: text/rodata
|
||||
SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.TEXT_END =.;
|
||||
|
||||
#
|
||||
# DATA BLOCK: READ WRITE
|
||||
#
|
||||
. = ALIGN(4);
|
||||
SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.DATA_START =.;
|
||||
#:::::::::: data
|
||||
<FOREACH.LTDOVERLAY.OBJECTS=.sdata>
|
||||
<LTDOVERLAY.OBJECT=.sdata:t>
|
||||
<END.LTDOVERLAY.OBJECTS>
|
||||
<FOREACH.LTDOVERLAY.LIBRARIES=.sdata>
|
||||
<LTDOVERLAY.LIBRARY=.sdata:t>
|
||||
<END.LTDOVERLAY.LIBRARIES>
|
||||
<FOREACH.LTDOVERLAY.OBJECTS=.data>
|
||||
<LTDOVERLAY.OBJECT=.data:t>
|
||||
<END.LTDOVERLAY.OBJECTS>
|
||||
<FOREACH.LTDOVERLAY.LIBRARIES=.data>
|
||||
<LTDOVERLAY.LIBRARY=.data:t>
|
||||
<END.LTDOVERLAY.LIBRARIES>
|
||||
#:::::::::: data
|
||||
SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.DATA_END =.;
|
||||
. = ALIGN(4);
|
||||
SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.END =.;
|
||||
|
||||
SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.TEXT_SIZE = SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.TEXT_END - SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.TEXT_START;
|
||||
SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.DATA_SIZE = SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.DATA_END - SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.DATA_START;
|
||||
SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.SIZE = SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.END - SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.START;
|
||||
|
||||
} > <LTDOVERLAY.NAME>
|
||||
|
||||
.<LTDOVERLAY.NAME>.bss:<LTDOVERLAY.NAME>
|
||||
{
|
||||
ALIGNALL(4);
|
||||
. = ALIGN(4);
|
||||
|
||||
#
|
||||
# Definition to refer overlay segment, when same name symbols exist in multiple overlays.
|
||||
#
|
||||
<FOREACH.LTDOVERLAY.SEARCHSYMBOLS>
|
||||
SEARCH_SYMBOL <LTDOVERLAY.SEARCHSYMBOL>;
|
||||
<END.LTDOVERLAY.SEARCHSYMBOLS>
|
||||
|
||||
#
|
||||
# BSS BLOCK
|
||||
#
|
||||
SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.BSS_START =.;
|
||||
#:::::::::: bss
|
||||
<FOREACH.LTDOVERLAY.OBJECTS=.bss>
|
||||
<LTDOVERLAY.OBJECT=.bss:t>
|
||||
<END.LTDOVERLAY.OBJECTS>
|
||||
<FOREACH.LTDOVERLAY.LIBRARIES=.bss>
|
||||
<LTDOVERLAY.LIBRARY=.bss:t>
|
||||
<END.LTDOVERLAY.LIBRARIES>
|
||||
<FOREACH.LTDOVERLAY.OBJECTS=.sbss>
|
||||
<LTDOVERLAY.OBJECT=.sbss:t>
|
||||
<END.LTDOVERLAY.OBJECTS>
|
||||
<FOREACH.LTDOVERLAY.LIBRARIES=.sbss>
|
||||
<LTDOVERLAY.LIBRARY=.sbss:t>
|
||||
<END.LTDOVERLAY.LIBRARIES>
|
||||
#:::::::::: bss
|
||||
. = ALIGN(4);
|
||||
SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.BSS_END =.;
|
||||
|
||||
SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.BSS_SIZE = SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.BSS_END - SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.BSS_START;
|
||||
|
||||
} >> <LTDOVERLAY.NAME>
|
||||
|
||||
<END.LTDOVERLAYS>
|
||||
|
||||
########################## LTDOVERLAYDEFS ###########################
|
||||
.<PROPERTY.LTDOVERLAYDEFS>L:
|
||||
{
|
||||
### TWL limited extended static module information
|
||||
WRITEW SDK_LTDAUTOLOAD_TOP_START; # load address
|
||||
WRITEW 0; # padding
|
||||
WRITEW SDK_LTDAUTOLOAD_SIZE + SDK_LTDAUTOLOAD_TOP_SIZE; # size of module
|
||||
WRITEW 0; # padding
|
||||
|
||||
### TWL limited overlay filename
|
||||
<FOREACH.LTDOVERLAYS>
|
||||
WRITES ("<LTDOVERLAY.NAME><PROPERTY.LTDSUFFIX>");
|
||||
<END.LTDOVERLAYS>
|
||||
|
||||
} > <PROPERTY.LTDOVERLAYDEFS>L
|
||||
|
||||
######################### LTDOVERLAYTABLE ###########################
|
||||
.<PROPERTY.LTDOVERLAYTABLE>L:
|
||||
{
|
||||
<FOREACH.LTDOVERLAYS>
|
||||
WRITES <LTDOVERLAY.ID> # overlay ID
|
||||
WRITEW ADDR(.<LTDOVERLAY.NAME>); # load address
|
||||
WRITEW SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.SIZE; # size of module
|
||||
WRITEW SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.BSS_SIZE; # size of bss
|
||||
WRITEW SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.SINIT_START; # start address of static init
|
||||
WRITEW SDK_LTDOVERLAY.<LTDOVERLAY.NAME>.SINIT_END; # end address of static init
|
||||
WRITEW <LTDOVERLAY.ID> # ROM file ID
|
||||
WRITEW 0; # Reserved
|
||||
<END.LTDOVERLAYS>
|
||||
|
||||
} > <PROPERTY.LTDOVERLAYTABLE>L
|
||||
|
||||
############################ OTHERS #################################
|
||||
SDK_SUBPRIV_ARENA_LO = SDK_LTDAUTOLOAD.LTDMAIN.BSS_END;
|
||||
.check.LTDMAIN:
|
||||
{
|
||||
. = SDK_SUBPRIV_ARENA_LO;
|
||||
|
||||
} > check.LTDMAIN
|
||||
|
||||
}
|
||||
152
build/tests/RelocateChecker/ARM7/hyena_rc5.lsf
Normal file
152
build/tests/RelocateChecker/ARM7/hyena_rc5.lsf
Normal file
@ -0,0 +1,152 @@
|
||||
#----------------------------------------------------------------------------
|
||||
# Project: TwlIPL
|
||||
# File: hyena.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.
|
||||
#
|
||||
# $Date:: 2007-11-26#$
|
||||
# $Rev: 258 $
|
||||
# $Author: yosiokat $
|
||||
#----------------------------------------------------------------------------
|
||||
#
|
||||
# Nitro LCF SPEC FILE
|
||||
#
|
||||
#--------
|
||||
Static $(TARGET_NAME)
|
||||
{
|
||||
Address $(ADDRESS_FLXMAIN)
|
||||
Object ../flabObj/ARM7FLX.fob
|
||||
Library $(CRT0_O) \
|
||||
libmi_sp$(LIBSUFFIX).a \
|
||||
libsyscall_sp.twl.a
|
||||
|
||||
Library libsubpsyscall.a \
|
||||
$(CW_LIBS) \
|
||||
libos_sp$(LIBSUFFIX).a \
|
||||
libpad_sp$(LIBSUFFIX).a \
|
||||
libpxi_sp$(LIBSUFFIX).a \
|
||||
libstd_sp$(LIBSUFFIX).a \
|
||||
libexi_sp$(LIBSUFFIX).a \
|
||||
libsnd_sp$(LIBSUFFIX).a \
|
||||
libspi_sp$(LIBSUFFIX).a \
|
||||
libpm_sp$(LIBSUFFIX).a \
|
||||
libmath_sp$(LIBSUFFIX).a \
|
||||
libscfg_sp$(LIBSUFFIX).a \
|
||||
libtp_sp$(LIBSUFFIX).a \
|
||||
libmic_sp$(LIBSUFFIX).a \
|
||||
libfs_sp$(LIBSUFFIX).a \
|
||||
libcard_sp$(LIBSUFFIX).a \
|
||||
libi2c_sp$(LIBSUFFIX).a \
|
||||
libcamera_sp$(LIBSUFFIX).a \
|
||||
libcdc_sp$(LIBSUFFIX).a \
|
||||
libtpex_sp$(LIBSUFFIX).a \
|
||||
libmicex_sp$(LIBSUFFIX).a \
|
||||
libboot_sp$(LIBSUFFIX).a \
|
||||
libreboot_sp$(LIBSUFFIX).a \
|
||||
libcardboot_sp$(LIBSUFFIX).a \
|
||||
|
||||
Library libsdio_hcd_twl$(LIBSUFFIX).a \
|
||||
libsdio_busdriver$(LIBSUFFIX).a \
|
||||
libsdio_lib$(LIBSUFFIX).a \
|
||||
libARM7athdrv$(LIBSUFFIX).a
|
||||
|
||||
#####
|
||||
# Sub-routines in WL library , that should be on WRAM.
|
||||
# in TaskMan.o
|
||||
Object OBJECT( MainTaskRoutine , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( AddTask , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( DeleteTask , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( LowestIdleTask , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( ExecuteMessage , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
# in BufMan.o
|
||||
Object OBJECT( NewHeapBuf , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( DeleteHeapBuf , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( AllocateHeapBuf , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( ReleaseHeapBuf , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( MoveHeapBuf , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( AddHeapBuf , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( GetHeapBufNextAdrs , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
# in WlCmdIf.o
|
||||
Object OBJECT( RequestCmdTask , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( SendMessageToWmDirect , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
# in WlNic.o
|
||||
Object OBJECT( WStart , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WStop , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WSetStaState , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
# in WlIntr.o
|
||||
Object OBJECT( WlIntr , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WlIntrPreTbtt , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WlIntrTbtt , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WlIntrActEnd , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
# Object OBJECT( WlIntrAckCntOvf , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WlIntrCntOvf , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WlIntrTxErr , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WlIntrRxCntup , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WlIntrTxEnd , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WlIntrRxEnd , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WlIntrMpEnd , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WlIntrStartTx , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WlIntrStartRx , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( SetParentTbttTxq , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( MacBugTxMp , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( AdjustRingPointer , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( CheckKeyTxEnd , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
# in WlIntrTask.o
|
||||
Object OBJECT( WlIntrTxBeaconTask , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WlIntrTxEndTask , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WlIntrRxEndTask , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WlIntrMpEndTask , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( SetParentTbttTxqTask , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( TakeoutRxFrame , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
# in TxCtrl.o
|
||||
Object OBJECT( InitTxCtrl , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
# in RxCtrl.o
|
||||
Object OBJECT( InitRxCtrl , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
# in WaitLoop.o
|
||||
Object OBJECT( WaitLoop_Rxpe , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WaitLoop_Waitus , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WaitLoop_ClrAid , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WaitLoop_BbpAccess , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
Object OBJECT( WaitLoop_RfAccess , libwl_sp$(LIBSUFFIX).a ) (.text)
|
||||
|
||||
Object $(OBJDIR)/main.o
|
||||
StackSize 1024 1024
|
||||
}
|
||||
|
||||
#--------
|
||||
Autoload WRAM
|
||||
{
|
||||
After $(TARGET_NAME)
|
||||
|
||||
#Object * (.etable)
|
||||
Object * (.wram)
|
||||
Object * (.ltdwram)
|
||||
}
|
||||
|
||||
#--------
|
||||
Ltdautoload LTDMAIN
|
||||
{
|
||||
# After $(TARGET_NAME)
|
||||
Address 0x02d00000
|
||||
|
||||
Object * (.ltdmain)
|
||||
Object ../flabObj/ARM7LTD.fob
|
||||
Library libnvram_sp$(LIBSUFFIX).a
|
||||
Library librtc_sp$(LIBSUFFIX).a
|
||||
Library librompatch_sp$(LIBSUFFIX).a \
|
||||
libwm_sp$(LIBSUFFIX).a \
|
||||
libnwm_sp$(LIBSUFFIX).a \
|
||||
libwvr_sp$(LIBSUFFIX).a \
|
||||
libwl_sp$(LIBSUFFIX).a \
|
||||
|
||||
Library libfatfs_sp$(LIBSUFFIX).a \
|
||||
$(USE_CRYPTO_LIBS)
|
||||
Library $(ISDBG_LIBS_TWL)
|
||||
Library $(ISDBG_LIBS_NITRO)
|
||||
}
|
||||
@ -25,8 +25,6 @@
|
||||
#include <nitro/std.h>
|
||||
#include <nitro/snd.h>
|
||||
#include <nitro/wvr.h>
|
||||
#include <twl/nwm.h>
|
||||
#include <twl/camera.h>
|
||||
#include <twl/rtc.h>
|
||||
#include <nitro/hw/common/lcd.h>
|
||||
#include <nitro/gx.h>
|
||||
@ -155,7 +153,6 @@ TwlSpMain(void)
|
||||
if (OS_IsRunOnTwl() == TRUE)
|
||||
{
|
||||
InitializeFatfs(); // FATFS <20>‰Šú‰»
|
||||
InitializeNwm(); // NWM 初期化
|
||||
#ifndef SDK_NOCRYPTO
|
||||
AES_Init(); // AES <20>‰Šú‰»
|
||||
#endif
|
||||
@ -165,22 +162,11 @@ TwlSpMain(void)
|
||||
{
|
||||
// CODEC <20>‰Šú‰»
|
||||
InitializeCdc();
|
||||
// カメラ初期化
|
||||
CAMERA_Init();
|
||||
/* CODEC が TWL モードでないとシャッター音を強制的に鳴らす
|
||||
機能が使用できません。この為、CODEC が TWL モードの場合
|
||||
にのみカメラライブラリを使用可能な状態にします。 */
|
||||
}
|
||||
|
||||
// サウンド初期化
|
||||
SND_Init(THREAD_PRIO_SND);
|
||||
|
||||
// RTC <20>‰Šú‰»
|
||||
RTC_Init(THREAD_PRIO_RTC);
|
||||
|
||||
// 旧無線初期化
|
||||
WVR_Begin(heapHandle);
|
||||
|
||||
// SPI <20>‰Šú‰»
|
||||
SPI_Init(THREAD_PRIO_SPI);
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
SUBDIRS =
|
||||
SUBMAKES = Makefile.0 Makefile.1 Makefile.2 Makefile.3 Makefile.4
|
||||
SUBMAKES = Makefile.0 Makefile.1 Makefile.2 Makefile.3 Makefile.4 Makefile.5
|
||||
|
||||
include $(TWL_IPL_RED_ROOT)/build/tests/RelocateChecker/buildtools/commondefs
|
||||
|
||||
|
||||
80
build/tests/RelocateChecker/ARM9/Makefile.5
Normal file
80
build/tests/RelocateChecker/ARM9/Makefile.5
Normal file
@ -0,0 +1,80 @@
|
||||
#! make -f
|
||||
#----------------------------------------------------------------------------
|
||||
# Project: TwlSDK - demos - simpleShoot-1
|
||||
# File: Makefile
|
||||
#
|
||||
# Copyright 2007 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.
|
||||
#
|
||||
# $Date:: $
|
||||
# $Rev: $
|
||||
# $Author: $
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
SUBDIRS =
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
TARGET_FIRM = SYSTEMMENU
|
||||
TARGET_PLATFORM = TWL
|
||||
TWL_ARCHGEN = LIMITED
|
||||
|
||||
#ARM9_FLX_addr
|
||||
MAKELCF_FLAGS += -DADDRESS_FLXMAIN='0x02300000'
|
||||
|
||||
TARGET_FOB = ARM9FLX.fob
|
||||
#ARM9_FLX_addsize
|
||||
FBDSIZE_ARM9FLX = 4
|
||||
TARGET_FOB += ARM9LTD.fob
|
||||
#ARM9_LTD_addsize
|
||||
FBDSIZE_ARM9LTD = 4
|
||||
|
||||
TARGET_NUMBER = 5
|
||||
TARGET_NAME = RelocateChecker$(TARGET_NUMBER)
|
||||
BINDIR = ./bin/$(TWL_BUILDTYPE)/$(TARGET_NAME)
|
||||
TARGET_BIN = $(TARGET_NAME).srl
|
||||
|
||||
TITLEID_LO = RCK$(TARGET_NUMBER)
|
||||
TARGET_TAD = $(BINDIR)/$(TITLEID_LO).tad
|
||||
|
||||
LCFILE_SPEC = ARM9-TS.lsf
|
||||
ROM_SPEC = main.rsf
|
||||
LCFILE_TEMPLATE = rc$(TARGET_NUMBER).lcf.template
|
||||
|
||||
MISC_DIR = $(TWL_IPL_RED_ROOT)/build/systemMenu_RED/misc
|
||||
|
||||
SRCS = main.c RelocateChecker.c \
|
||||
$(MISC_DIR)/src/misc.c $(MISC_DIR)/src/cmn.c
|
||||
|
||||
LINCLUDES = $(MISC_DIR)/include
|
||||
LLIBRARY_DIRS += ../crt/ARM9/obj/ARM9-TS.HYB/$(TWL_BUILD_DIR)
|
||||
|
||||
CRT0_O = crt0_rc.FLX.TWL.o
|
||||
|
||||
//MAKEROM_FLAGS += -DTITLEID_LO='$(TITLEID_LO)'
|
||||
MAKEROM_FLAGS += -F -DTITLEID_LO='$(TITLEID_LO)'
|
||||
|
||||
include $(TWL_IPL_RED_ROOT)/build/tests/RelocateChecker/buildtools/commondefs
|
||||
|
||||
DEFAULT_COMP_ARM7 = hyena_rc$(TARGET_NUMBER)
|
||||
DEFAULT_MAKEROM_ARM7_BASE = ../ARM7/bin/$(TWL_BUILDTYPE_ARM7)/$(DEFAULT_COMP_ARM7)/$(DEFAULT_COMP_ARM7)
|
||||
DEFAULT_MAKEROM_ARM7 = $(DEFAULT_MAKEROM_ARM7_BASE).$(TWL_ELF_EXT)
|
||||
|
||||
LDIRT_CLEAN = $(TARGET_TAD)
|
||||
INSTALL_TARGETS = $(TARGET_TAD)
|
||||
INSTALL_DIR = $(SDK_NMENU_DATADIR)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
do-build : $(TARGETS)
|
||||
|
||||
include $(TWL_IPL_RED_ROOT)/build/tests/RelocateChecker/buildtools/modulerules
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
#===== End of Makefile =====
|
||||
1033
build/tests/RelocateChecker/ARM9/rc5.lcf.template
Normal file
1033
build/tests/RelocateChecker/ARM9/rc5.lcf.template
Normal file
File diff suppressed because it is too large
Load Diff
@ -334,7 +334,8 @@ static void INITi_SetHMACSHA1ToAppParam(void)
|
||||
u32 *arm9_flx_addr = (u32 *)(*(u32 *)(HW_TWL_ROM_HEADER_BUF + 0x028));
|
||||
u32 *p_arm9encryObjVerify = (u32 *)(DGT_TGT_ADDR + 4 * 32);
|
||||
int l;
|
||||
SVCHMACSHA1Context *pCon = ( SVCHMACSHA1Context * ) 0x037c0000;
|
||||
SVCHMACSHA1Context *pCon = ( SVCHMACSHA1Context * ) (0x2000400 - sizeof(SVCHMACSHA1Context));
|
||||
//SVCHMACSHA1Context *pCon = &Con;
|
||||
|
||||
// arm9_flx
|
||||
*p_arm9encryObjVerify = TRUE;
|
||||
@ -342,7 +343,7 @@ static void INITi_SetHMACSHA1ToAppParam(void)
|
||||
{
|
||||
if(arm9_flx_addr[l] != UNDEF_CODE)
|
||||
{
|
||||
if((u32)p_arm9encryObjVerify < 0x2000400)
|
||||
if((u32)p_arm9encryObjVerify < (u32)pCon)
|
||||
{
|
||||
*p_arm9encryObjVerify = arm9_flx_addr[l];
|
||||
p_arm9encryObjVerify++;
|
||||
@ -474,7 +475,7 @@ INITi_DoAutoload(void)
|
||||
beq @020
|
||||
|
||||
/* 再読み出し不可部分を退避 */
|
||||
bl INITi_ShelterLtdBinary
|
||||
//bl INITi_ShelterLtdBinary
|
||||
|
||||
/* メインメモリ用ブロックをオートロード */
|
||||
ldr r1, =_start_LtdModuleParams
|
||||
|
||||
Loading…
Reference in New Issue
Block a user