git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/branches/20130304_launcher_save_app_to_sd_kai@3077 b08762b0-b915-fc4b-9d8c-17b2551a87ff

This commit is contained in:
mizu 2013-03-04 07:39:50 +00:00
parent fd5072de22
commit 4a7de1415e
55 changed files with 30067 additions and 0 deletions

33
build/components/Makefile Normal file
View File

@ -0,0 +1,33 @@
#! make -f
#----------------------------------------------------------------------------
# Project: TwlFirm - build
# 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$
#----------------------------------------------------------------------------
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
#----------------------------------------------------------------------------
SUBDIRS = \
hyena.TWL \
jackal.TWL
#----------------------------------------------------------------------------
include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
#===== End of Makefile =====

View File

@ -0,0 +1,149 @@
#! 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:: $
# $Rev$
# $Author$
#----------------------------------------------------------------------------
# Main memory にコードを退避させたathdrvを使用。(for test)
TMP_WL_MAIN ?= FALSE
TARGET_FIRM = SYSTEMMENU
override TARGET_PLATFORM = TWL
override TWL_PROC = ARM7
override TWL_ARCHGEN = LIMITED
TWL_NO_STD_PCHDR = True
override TARGET_CODEGEN = ARM
FIRM_LIBSUFFIX = .firm$(ARCHGEN_TYPE)$(CODEGEN_ARCH)
#----------------------------------------------------------------------------
SUBDIRS = $(SYSMENU_ROOT)/build/libraries/aes \
wram_regs
SRCS = crt0.LTD.c \
main.c \
initScfg.c
TARGET_NAME = hyena
TARGET_NEF = $(TARGET_NAME).tef
ifeq ($(TMP_WL_MAIN), TRUE)
LCFILE_SPEC = $(TARGET_NAME)_wlmain.lsf
else
LCFILE_SPEC = $(TARGET_NAME).lsf
endif
LCFILE_TEMPLATE = $(TARGET_NAME).lcf.template
LDRES_TEMPLATE = $(ROOT)/build/components/racoon.TWL/racoon.response.template
# crt0.oは、ランチャー向けに特殊ビルドしたものを使用
CRT0_O = $(OBJDIR)/crt0.LTD.o
# スタック不足防止の為、インライン展開せずにコンパイルする
CCFLAGS_OPT = -O4 -inline off
#----------------------------------------------------------------------------
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
# crt0.o 、 libpm_sp および libnwm_sp は、ローカルでビルドしたものを使用するので、除外する。
ifeq ($(TMP_WL_MAIN), TRUE)
GLIBRARIES := $(filter-out $(CRT0_O) libpm_sp$(TWL_LIBSUFFIX).a libnwm_sp$(TWL_LIBSUFFIX).a libathdrv_sp$(TWL_LIBSUFFIX).a,$(GLIBRARIES))
else
GLIBRARIES := $(filter-out $(CRT0_O) libpm_sp$(TWL_LIBSUFFIX).a libnwm_sp$(TWL_LIBSUFFIX).a,$(GLIBRARIES))
endif
ifdef TWLSDK_NOCRYPTO
CCFLAGS += -DSDK_NOCRYPTO
endif
ifndef TWLSDK_NOCRYPTO
MAKELCF_FLAGS += -DUSE_CRYPTO_LIBS='libsea_sp$(TWL_LIBSUFFIX).a libcrypto_sp$(TWL_LIBSUFFIX).a'
MACRO_FLAGS += -DSDK_SEA
endif
MACRO_FLAGS += -DSDK_NOINIT \
-DSDK_SYSMENU_BUILD
#MACRO_FLAGS += -DSDK_ARM7COMP_LTD
ifeq ($(DEFAULT_COMP_ARM7),hyena)
MACRO_FLAGS += -DUSE_HYENA_COMPONENT
endif
MAKELCF_FLAGS += -DADDRESS_LTDWRAM='0x037a0000' \
-DADDRESS_FLXMAIN='0x02280200' \
-DADDRESS_BOOTCORE='0x0380f000' \
-DCRT0_O='$(CRT0_O)' \
-DFIRM_LIBSUFFIX='$(FIRM_LIBSUFFIX)'
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'
#--------------------------------
# install target
#--------------------------------
INSTALL_TARGETS = $(BINDIR)/$(TARGET_NAME).tef \
$(BINDIR)/$(TARGET_NAME).TWL.FLX.sbin \
$(BINDIR)/$(TARGET_NAME)_defs.TWL.FLX.sbin \
$(BINDIR)/$(TARGET_NAME).TWL.LTD.sbin \
$(BINDIR)/$(TARGET_NAME)_defs.TWL.LTD.sbin
INSTALL_DIR = $(TWL_INSTALL_COMPONENTSDIR)/$(TARGET_NAME)/$(TWL_BUILDTYPE)
LINCLUDES = $(ROOT)/build/libraries/spi/ARM7/include \
$(ROOT)/build/libraries/spi/ARM7/pm/include \
$(ROOT)/build/libraries/init/common/include \
$(ROOT)/build/libraries/reboot/common/include \
$(SYSMENU_ROOT)/build/libraries_sysmenu/sysmenu/common/include
SYSMENU_LIBS = \
libsysmenu_sp$(TWL_LIBSUFFIX).a \
libsysmmcu_sp$(TWL_LIBSUFFIX).a \
libboot_sp$(TWL_LIBSUFFIX).a \
libds_sp$(TWL_LIBSUFFIX).a \
libhotsw_sp$(TWL_LIBSUFFIX).a \
libdht_sp$(TWL_LIBSUFFIX).a \
libpm_sp.SYSMENU$(TWL_LIBSUFFIX).a
ifeq ($(TMP_WL_MAIN), TRUE)
SYSMENU_LIBS += \
libathdrv_sp.SYSMENU$(TWL_LIBSUFFIX).a
endif
SDK_APPEND_LIBS = \
libwl_sp$(TWL_LIBSUFFIX).a \
libaes_sp$(FIRM_LIBSUFFIX).a \
libsea_sp$(TWL_LIBSUFFIX).a \
libreboot_sp$(TWL_LIBSUFFIX).a
LLIBRARIES += $(SYSMENU_LIBS) $(SDK_APPEND_LIBS)
LLIBRARY_DIRS += ./
ifeq ($(TMP_WL_MAIN), TRUE)
LLIBRARY_DIRS += $(SYSMENU_ROOT)/lib/TwlWireless/$(TWL_LIBTYPE)
endif
LDEPENDS_NEF = $(TWL_LIBS) $(LLIBRARIES)
do-build: $(TARGETS)
#----------------------------------------------------------------------------
include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
#===== End of Makefile =====

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,57 @@
obj/ARM7-TS.LTD/Release/initScfg.o
-l./obj/ARM7-TS.LTD/Release/crt0.LTD.o
obj/ARM7-TS.LTD/Release/main.o
-llibsubpsyscall.a
-llibsyscall_sp.twl.a
-lMSL_C_NITRO_Ai_LE.a
-lMSL_Extras_NITRO_Ai_LE.a
-lMSL_CPP_NITRO_Ai_LE.a
-lFP_fastI_v4t_LE.a
-lNITRO_Runtime_Ai_LE.a
-llibos_sp.TWL.LTD.a
-llibmi_sp.TWL.LTD.a
-llibpad_sp.TWL.LTD.a
-llibpxi_sp.TWL.LTD.a
-llibstd_sp.TWL.LTD.a
-llibexi_sp.TWL.LTD.a
-llibsnd_sp.TWL.LTD.a
-llibspi_sp.TWL.LTD.a
-llibpm_sp.SYSMENU.TWL.LTD.a
-llibmath_sp.TWL.LTD.a
-llibscfg_sp.TWL.LTD.a
-llibtp_sp.TWL.LTD.a
-llibmic_sp.TWL.LTD.a
-llibfs_sp.TWL.LTD.a
-llibcard_sp.TWL.LTD.a
-llibi2c_sp.TWL.LTD.a
-llibcamera_sp.TWL.LTD.a
-llibcdc_sp.TWL.LTD.a
-llibsndex_sp.TWL.LTD.a
-llibtpex_sp.TWL.LTD.a
-llibmicex_sp.TWL.LTD.a
-llibmcu_sp.TWL.LTD.a
-llibsdio_sp.TWL.LTD.a
-llibnvram_sp.TWL.LTD.a
-llibrtc_sp.TWL.LTD.a
-llibboot_sp.TWL.LTD.a
-llibreboot_sp.TWL.LTD.a
-llibhotsw_sp.TWL.LTD.a
-llibreloc_info_sp.TWL.LTD.a
-llibsysmenu_sp.TWL.LTD.a
-llibsysmmcu_sp.TWL.LTD.a
-llibds_sp.TWL.LTD.a
-llibaes_sp.firm.LTD.a
-llibsea_sp.TWL.LTD.a
-llibcrypto_sp.TWL.LTD.a
-llibwm_sp.TWL.LTD.a
-llibnwm_sp.SYSMENU.TWL.LTD.a
-llibwvr_sp.TWL.LTD.a
-llibwl_sp.TWL.LTD.a
-llibwpa_sp.TWL.LTD.a
-llibathdrv_sp.TWL.LTD.a
-llibfatfs_sp.TWL.LTD.a
-llibdht_sp.TWL.LTD.a
-llibsea_sp.TWL.LTD.a
-llibcrypto_sp.TWL.LTD.a
-llibistdsubparm.a
-llibstubsisd_sp.TWL.LTD.a

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,32 @@
obj/ARM7-TS.LTD/Release/crt0.LTD.o: src/crt0.LTD.c \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/hw/common/armArch.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/emulator.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/printf.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/init/crt0.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/memorymap_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/memorymap.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/mmap_global.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/mmap_main.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/mmap_wram.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/mmap_shared.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/mmap_parameter.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_AES.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SCFG.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SND.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_MI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_GX.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_EXI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_PXI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_PAD.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_OS.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SPI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SD.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/mmap_wramEnv.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/format_rom.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/format_rom_certificate.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/build/libraries/init/common/include/boot_sync.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/code32.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/codereset.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/code32.h

View File

@ -0,0 +1,25 @@
obj/ARM7-TS.LTD/Release/initScfg.o: src/initScfg.c \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/memorymap_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/memorymap.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/mmap_global.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/mmap_main.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/mmap_wram.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/mmap_shared.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/mmap_parameter.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_AES.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SCFG.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SND.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_MI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_GX.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_EXI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_PXI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_PAD.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_OS.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SPI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SD.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/mmap_wramEnv.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/code32.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/codereset.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/code32.h

View File

@ -0,0 +1,283 @@
obj/ARM7-TS.LTD/Release/main.o: src/main.c \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/init/crt0.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/memorymap_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/memorymap.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/mmap_global.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/mmap_main.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/mmap_wram.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/mmap_shared.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/mmap_parameter.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_AES.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SCFG.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SND.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_MI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_GX.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_EXI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_PXI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_PAD.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_OS.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SPI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SD.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/system.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/systemCall.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/stream.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/uncompress.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/misc.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/printf.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/systemCall.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/tick.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/ioreg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/thread.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/context.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/callTrace.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/profile.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/version.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/alarm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/arena.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/valarm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/hw/common/armArch.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/system.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/misc.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/interrupt.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/interrupt.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/event.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/spinLock.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/timer.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/emulator.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/message.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/mutex.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/exception.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/init.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/alloc.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/reset.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/pxi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/pxi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/pxi/common/init.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/pxi/common/compparam.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/dma.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/exMemory.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/wram.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/memory.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/swap.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/secureUncompress.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/byteAccess.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/uncomp_stream.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/compress.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/init.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/endian.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/platform.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/cache.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/device.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/pxi/common/fifo.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/memorymap.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/pxi/common/regname.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/ownerInfo.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/spec.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/spi/common/config.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/spi/common/userInfo_ts_300.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/gx/gxcommon.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/fx/fx.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/entropy.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/systemWork.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/resource.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/functionCost.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/systemWork.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/application_jump.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl_hybrid.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/spec.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/armArch.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/hw/common/lcd.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/mi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/mi/common/dma.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/mi/common/sharedWram.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/pad.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/pad/common/pad.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/hw/ARM7/ioreg_PAD.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/hw/ARM7/mmap_global.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/pad/ARM7/xyButton.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/spi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/spi/common/type.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/spi/common/mic_common.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/spi/ARM7/spi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/spi/ARM7/pm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/spi/common/pm_common.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/spi/common/pm_common.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/spi/ARM7/shutdown.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/rtc.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/rtc.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/rtc/common/type.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/rtc/common/fifo.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/rtc/ARM7/control.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/rtc/ARM7/instruction.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/rtc/ARM7/gpio.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/rtc/common/type_ex.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/rtc/common/fifo_ex.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/rtc/ARM7/instruction_ex.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/snd.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/main.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/alarm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/command.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/global.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/work.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/exchannel.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/channel.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/hw/ARM7/ioreg_SND.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/seq.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/capture.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/data.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/bank.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/mml.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/midiplayer.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/util.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/snd/common/sndex_common.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/snd/ARM7/sndex_api.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card/common.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card/eeprom.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card/backup.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card/flash.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card/fram.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card/rom.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card/hash.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card/pullOut.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/fs.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/fs/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/fs/archive.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/fs/romfat.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/fs/file.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/fs/overlay.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/fs/hook.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/fs/api.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/std.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/std/string.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/std/unicode.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/std/stdlib.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/fatfs.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/fatfs/common/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/fatfs/common/api.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/fatfs/ARM7/command.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/gx.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/gx/gx_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/wm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/wm/common/wm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro_wl/common/version_wl.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/wm/ARM7/wm_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro_wl/ARM7/WlLib.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro_wl/ARM7/WlBuf.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro_wl/ARM7/WlFrame.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro_wl/ARM7/WlCmd.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro_wl/ARM7/WlCmdLabel.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro_wl/ARM7/WlStaList.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro_wl/ARM7/WlParam.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/wvr.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/wvr/common/wvr_common.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/wvr/ARM7/wvr_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg/common/ctrdg_common.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg/ARM9/ctrdg_backup.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg/ARM9/ctrdg_task.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg/ARM9/ctrdg_flash.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg/ARM9/ctrdg_sram.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg/ARM9/ctrdg_flash.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg/ARM9/ctrdg_sram.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg/ARM9/ctrdg_task.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg/ARM7/ctrdg_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/math.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/math/math.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/math/rand.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/math/qsort.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/math/fft.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/math/checksum.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/math/crc.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/math/dgt.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/nwm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/nwm/common/nwm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/nwm/ARM7/nwm_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/scfg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/scfg/common/scfg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/mmap_wramEnv.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/scfg/ARM7/scfg_private.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/camera.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/camera/common/fifo.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/camera/common/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/camera/common/util.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/camera/ARM7/i2c.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/camera/ARM7/control.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/dsp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/exi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/exi/ARM7/genPort.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/ownerInfoEx.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/nwm/ARM7/ForLauncher/nwm_sp_init_for_launcher.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/codecmode.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/cdc.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/cdc/ARM7/cdc_reg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/cdc/ARM7/cdc_api.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/cdc/ARM7/cdc_twlmode_access.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/cdc/ARM7/cdc_dsmode_access.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/spi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/aes.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/aes/common/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/aes/ARM7/hi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/mcu.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/mcu/ARM7/mcu_reg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/mcu/ARM7/i2c.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/i2c/ARM7/i2c.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/mcu/ARM7/control.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/mcu/ARM7/intr.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/format_rom.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/format_rom_certificate.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/banner.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/lcfg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/lcfg/common/api.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/lcfg/common/NTRSettings.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/lcfg/common/TWLSettings.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/lcfg/common/countryCode.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/ownerInfoEx_private.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/lcfg/common/TWLHWInfo.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/sysmenu_lib.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/sysmenu_lib/common/sysmenu_api.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/nam.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/msJump.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/build/libraries/os/common/include/application_jump_private.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/reloc_info/common/reloc_info.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/build/libraries/os/common/include/application_jump_private.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/sysmenu_lib/common/sysmenu_work.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/memorymap.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/hw/common/mmap.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/firm/gcd/blowfish.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/sysmenu_lib/common/pxi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/boot.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/boot/common/boot_api.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/hotsw.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/hotsw/common/hotsw.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/sharedFont.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/util.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/WDSWrapper.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/WDS.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/mcu.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/mcu/common/fifo.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/mcu/ARM7/mcu.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/firm/memorymap.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/firm/hw/common/mmap_firm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/firm/hw/ARM7/mmap_firm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/build/libraries/spi/ARM7/pm/include/pm_pmic.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/build/libraries_sysmenu/sysmenu/common/include/internal_api.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/build/libraries/spi/ARM7/include/nvram_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/build/libraries/spi/ARM7/include/spi_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/sea.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/ltdwram_begin.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/section.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/ltdwram_end.h

View File

@ -0,0 +1,932 @@
#---------------------------------------------------------------------------
# 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:: $
# $Rev$
# $Author$
#---------------------------------------------------------------------------
# check.XXX は、ランチャーがロード可能なサイズおよびautoload後のメモリマップに応じて制限サイズを設定する。
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 = 0x037a0000, LENGTH = 0x6a000 > 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 = 0x02280200, LENGTH = 0xf8000 > 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>
<FOREACH.AUTOLOAD.OBJECTS=.rsvwram>
<AUTOLOAD.OBJECT=.rsvwram:t>
<END.AUTOLOAD.OBJECTS>
<FOREACH.AUTOLOAD.LIBRARIES=.rsvwram>
<AUTOLOAD.LIBRARY=.rsvwram:t>
<END.AUTOLOAD.LIBRARIES>
. = 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>
<FOREACH.AUTOLOAD.OBJECTS=.rsvwram>
<AUTOLOAD.OBJECT=.rsvwram.bss:t>
<END.AUTOLOAD.OBJECTS>
<FOREACH.AUTOLOAD.LIBRARIES=.rsvwram>
<AUTOLOAD.LIBRARY=.rsvwram.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_MOUNT_INFO_TABLE = SDK_AUTOLOAD.WRAM.BSS_END;
SDK_AUTOLOAD_WRAM_BSS_END = SDK_MOUNT_INFO_TABLE + 0x400;
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_SEA_KEY_STORE = SDK_AUTOLOAD_WRAM_BSS_END;
SDK_WRAM_ARENA_LO = SDK_AUTOLOAD_WRAM_BSS_END + 0x40;
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 = 0x02e80000;
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 SDK_MOUNT_INFO_TABLE; # address of the FS mount information table
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
}

View File

@ -0,0 +1,227 @@
#----------------------------------------------------------------------------
# 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:: $
# $Rev$
# $Author$
#----------------------------------------------------------------------------
#
# Nitro LCF SPEC FILE
#
#--------
Static $(TARGET_NAME)
{
Address $(ADDRESS_FLXMAIN)
Library $(CRT0_O)
Object $(OBJDIR)/initScfg.o
StackSize 1024 1024
}
#--------
Autoload WRAM
{
Address $(ADDRESS_LTDWRAM)
Library libsubpsyscall.a \
libsyscall_sp.twl.a \
$(CW_LIBS) \
libos_sp$(LIBSUFFIX).a \
libmi_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.SYSMENU$(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 \
libsndex_sp$(LIBSUFFIX).a \
libtpex_sp$(LIBSUFFIX).a \
libmicex_sp$(LIBSUFFIX).a \
libmcu_sp$(LIBSUFFIX).a \
Library libsdio_sp$(LIBSUFFIX).a
Library libnvram_sp$(LIBSUFFIX).a
Library librtc_sp$(LIBSUFFIX).a
Object * (.etable)
Object * (.wram)
Object * (.ltdwram)
Object $(OBJDIR)/main.o
# caches in fatfs library, that should be on WRAM.
# 2007/12/11 OBJECT() による .bss シンボルのリンクがうまくいかないので、
# 変数定義箇所に pragma で .ltdwram セクションに含まれるように暫定対策しました。
# Object OBJECT( FATFSi___mem_drives_structures , libfatfs_sp$(LIBSUFFIX).a) (.bss)
#####
# 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)
#####
# Sub-routines in TWL WIRELESS Driver , that should be on WRAM.
Object OBJECT( BMILZData, libathdrv_sp$(LIBSUFFIX).a ) (.text)
Object OBJECT( bmiBufferSend, libathdrv_sp$(LIBSUFFIX).a ) (.text)
Object OBJECT( BMIWriteMemory, libathdrv_sp$(LIBSUFFIX).a ) (.text)
Library libboot_sp$(LIBSUFFIX).a \
libreboot_sp$(LIBSUFFIX).a \
libhotsw_sp$(LIBSUFFIX).a \
libreloc_info_sp$(LIBSUFFIX).a \
libsysmenu_sp$(LIBSUFFIX).a \
libsysmmcu_sp$(LIBSUFFIX).a \
libds_sp$(LIBSUFFIX).a \
libaes_sp$(FIRM_LIBSUFFIX).a \
libsea_sp$(LIBSUFFIX).a \
libcrypto_sp$(LIBSUFFIX).a
# FATFS core symbols
Object OBJECT(FATFSi_lfi2text, libfatfs_sp$(LIBSUFFIX).a) (.text) # 360 BYTEs
Object OBJECT(FATFSi_pc_findin, libfatfs_sp$(LIBSUFFIX).a) (.text) # 904 BYTEs
Object OBJECT(FATFSi_pc_patcmp_vfat, libfatfs_sp$(LIBSUFFIX).a) (.text) # 436 BYTEs
Object OBJECT(FATFSi_pc_ascii_mfile, libfatfs_sp$(LIBSUFFIX).a) (.text) # 160 BYTEs
Object OBJECT(FATFSi_map_ascii_to_unicode, libfatfs_sp$(LIBSUFFIX).a) (.text) # 48 BYTEs
Object OBJECT(SDCARD_Intr_Thread, libfatfs_sp$(LIBSUFFIX).a) (.text) # 520 BYTEs
Object OBJECT(FATFSi_unicode_cmp_to_ascii_char, libfatfs_sp$(LIBSUFFIX).a) (.text) # 40 BYTEs
Object OBJECT(FATFSi_pc_read_blk, libfatfs_sp$(LIBSUFFIX).a) (.text) # 352 BYTEs
#RTFS
Object OBJECT(FATFSi_rtfs_memset, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x18 BYTEs
Object OBJECT(FATFSi_faxx_check_free_space, libfatfs_sp$(LIBSUFFIX).a) (.text) # 108 BYTEs
Object OBJECT(fat32_check_freespace, libfatfs_sp$(LIBSUFFIX).a) (.text) # 216 BYTEs
Object OBJECT(fat16_check_freespace, libfatfs_sp$(LIBSUFFIX).a) (.text) # 216 BYTEs
#Driver
Object OBJECT(SDCARDi_CpuReadFifoAes, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x70 BYTEs
Object OBJECT(SDCARDi_DmaReadFifoAes, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x64 BYTEs
Object OBJECT(SDCARDi_CpuWriteFifoAes, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x94 BYTEs
Object OBJECT(SDCARDi_DmaWriteFifoAes, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x88 BYTEs
Object OBJECT(SYSFPGA_irq, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x17C BYTEs
Object OBJECT(SDCARDi_CpuRecvFast, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x40 BYTEs
Object OBJECT(SDCARDi_CpuSendFast, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x40 BYTEs
Object OBJECT(SD_OrFPGA, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x34 BYTEs
Object OBJECT(SD_AndFPGA, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x34 BYTEs
Object OBJECT(SD_SetFPGA, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x2C BYTEs
Object OBJECT(SD_GetFPGA, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x30 BYTEs
Object OBJECT(SD_CheckFPGAReg, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x10 BYTEs
Object OBJECT(NDMA_irq_Handler, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x54 BYTEs
Object OBJECT(SDCARD_irq_Handler, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0xD8 BYTEs
Object OBJECT(SDCARDi_ReadCore, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x194 BYTEs
Object OBJECT(SDCARDi_WriteCore, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x34C BYTEs
Object OBJECT(SDCARD_TimerStart, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x64 BYTEs
Object OBJECT(SDCARD_TimerStop, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x30 BYTEs
Object OBJECT(SDCARDi_Access, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x12C BYTEs
Object OBJECT(SD_Command, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0xF0 BYTEs
Object OBJECT(SD_SendStatus, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x40 BYTEs
Object OBJECT(SD_MultiReadBlock, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x7C BYTEs
Object OBJECT(SD_MultiWriteBlock, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x7C BYTEs
Object OBJECT(SD_TransCommand, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0xA8 BYTEs
Object OBJECT(SD_TransReadyFPGA, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x8C BYTEs
Object OBJECT(SD_TransEndFPGA, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x78 BYTEs
Object OBJECT(SD_CheckStatus, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0xC0 BYTEs
Object OBJECT(SD_EnableClock, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x18 BYTEs
Object OBJECT(SD_DisableClock, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x1C BYTEs
Object OBJECT(SD_EnableSeccnt, libfatfs_sp$(LIBSUFFIX).a) (.text) # 0x34 BYTEs
Object * (.rsvwram)
}
#--------
Ltdautoload LTDMAIN
{
After $(TARGET_NAME)
Object * (.ltdmain)
Library libwm_sp$(LIBSUFFIX).a \
libnwm_sp.SYSMENU$(LIBSUFFIX).a \
libwvr_sp$(LIBSUFFIX).a \
libwl_sp$(LIBSUFFIX).a
Library libwpa_sp$(LIBSUFFIX).a
Library libathdrv_sp$(LIBSUFFIX).a
Library libfatfs_sp$(LIBSUFFIX).a \
libdht_sp$(LIBSUFFIX).a \
$(USE_CRYPTO_LIBS)
Library $(ISDBG_LIBS_TWL)
Library $(ISDBG_LIBS_NITRO)
}
# BootROMの鍵データが0x0380c400にあるので、hyenaのWRAM配置の上限はその値になることに注意。

View File

@ -0,0 +1,185 @@
#----------------------------------------------------------------------------
# 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:: $
# $Rev$
# $Author$
#----------------------------------------------------------------------------
#
# Nitro LCF SPEC FILE
#
#--------
Static $(TARGET_NAME)
{
Address $(ADDRESS_FLXMAIN)
Library $(CRT0_O)
Object $(OBJDIR)/initScfg.o
StackSize 1024 1024
}
#--------
Autoload WRAM
{
Address $(ADDRESS_LTDWRAM)
Library libsubpsyscall.a \
libsyscall_sp.twl.a \
$(CW_LIBS) \
libos_sp$(LIBSUFFIX).a \
libmi_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.SYSMENU$(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 \
libsndex_sp$(LIBSUFFIX).a \
libtpex_sp$(LIBSUFFIX).a \
libmicex_sp$(LIBSUFFIX).a \
libmcu_sp$(LIBSUFFIX).a \
Library libsdio_sp$(LIBSUFFIX).a
Library libnvram_sp$(LIBSUFFIX).a
Library librtc_sp$(LIBSUFFIX).a
Object * (.etable)
Object * (.wram)
Object * (.ltdwram)
Object $(OBJDIR)/main.o
# caches in fatfs library, that should be on WRAM.
# 2007/12/11 OBJECT() による .bss シンボルのリンクがうまくいかないので、
# 変数定義箇所に pragma で .ltdwram セクションに含まれるように暫定対策しました。
# Object OBJECT( FATFSi___mem_drives_structures , libfatfs_sp$(LIBSUFFIX).a) (.bss)
#####
# 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)
#####
# Sub-routines in TWL WIRELESS Driver , that should be on WRAM.
Object OBJECT( BMILZData, libathdrv_sp.SYSMENU$(LIBSUFFIX).a ) (.text)
Object OBJECT( bmiBufferSend, libathdrv_sp.SYSMENU$(LIBSUFFIX).a ) (.text)
Object OBJECT( BMIWriteMemory, libathdrv_sp.SYSMENU$(LIBSUFFIX).a ) (.text)
Library libboot_sp$(LIBSUFFIX).a \
libreboot_sp$(LIBSUFFIX).a \
libhotsw_sp$(LIBSUFFIX).a \
libreloc_info_sp$(LIBSUFFIX).a \
libsysmenu_sp$(LIBSUFFIX).a \
libsysmmcu_sp$(LIBSUFFIX).a \
libaes_sp.firm.LTD.a \
libsea_sp$(LIBSUFFIX).a \
libcrypto_sp$(LIBSUFFIX).a
# FATFS core symbols
Object OBJECT(FATFSi_lfi2text, libfatfs_sp$(LIBSUFFIX).a) (.text) # 360 BYTEs
Object OBJECT(FATFSi_pc_findin, libfatfs_sp$(LIBSUFFIX).a) (.text) # 904 BYTEs
Object OBJECT(FATFSi_pc_patcmp_vfat, libfatfs_sp$(LIBSUFFIX).a) (.text) # 436 BYTEs
Object OBJECT(FATFSi_pc_ascii_mfile, libfatfs_sp$(LIBSUFFIX).a) (.text) # 160 BYTEs
Object OBJECT(FATFSi_map_ascii_to_unicode, libfatfs_sp$(LIBSUFFIX).a) (.text) # 48 BYTEs
Object OBJECT(SDCARD_Intr_Thread, libfatfs_sp$(LIBSUFFIX).a) (.text) # 520 BYTEs
Object OBJECT(FATFSi_unicode_cmp_to_ascii_char, libfatfs_sp$(LIBSUFFIX).a) (.text) # 40 BYTEs
Object OBJECT(FATFSi_pc_read_blk, libfatfs_sp$(LIBSUFFIX).a) (.text) # 352 BYTEs
Object * (.rsvwram)
}
#--------
Ltdautoload LTDMAIN
{
After $(TARGET_NAME)
Object * (.ltdmain)
Library libwm_sp$(LIBSUFFIX).a \
libnwm_sp$(LIBSUFFIX).a \
libwvr_sp$(LIBSUFFIX).a \
libwl_sp$(LIBSUFFIX).a
Library libwpa_sp$(LIBSUFFIX).a
Library libathdrv_sp.SYSMENU$(LIBSUFFIX).a
Library libfatfs_sp$(LIBSUFFIX).a \
libdht_sp$(LIBSUFFIX).a \
$(USE_CRYPTO_LIBS)
Library $(ISDBG_LIBS_TWL)
Library $(ISDBG_LIBS_NITRO)
}
# BootROMの鍵データが0x0380c400にあるので、hyenaのWRAM配置の上限はその値になることに注意。

View File

@ -0,0 +1,736 @@
/*---------------------------------------------------------------------------*
Project: TwlSDK - libraries - init - ARM7.TWL
File: crt0.LTD.c
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$
*---------------------------------------------------------------------------*/
#include <nitro/types.h>
#include <nitro/hw/common/armArch.h>
#include <nitro/os/common/emulator.h>
#include <nitro/os/common/printf.h>
#include <twl/init/crt0.h>
#include <twl/memorymap_sp.h>
#include <twl/hw/common/mmap_wramEnv.h>
#include <twl/os/common/format_rom.h>
#include "boot_sync.h"
/*---------------------------------------------------------------------------*/
void _start(void);
void _start_AutoloadDoneCallback(void* argv[]);
void INIT_InitializeScfg(void);
#define SDK_NITROCODE_LE 0x2106c0de
#define SDK_NITROCODE_BE 0xdec00621
#define SDK_TWLCODE_LE 0x6314c0de
#define SDK_TWLCODE_BE 0xdec01463
/* 外部関数参照定義 */
extern void OS_IrqHandler(void);
extern void _fp_init(void);
extern void __call_static_initializers(void);
/* 内部関数プロトタイプ定義 */
static void INITi_DoAutoload(void);
static BOOL INITi_IsRunOnTwl( void );
static void INITi_CopySysConfig( void );
static void INITi_DetectMainMemorySize(void);
#ifndef SDK_NOINIT
static void INITi_ShelterStaticInitializer(u32* ptr);
static void INITi_CallStaticInitializers(void);
#endif
static void* INITi_Copy32(void* dst, void* src, u32 size);
static void* INITi_Fill32(void* dst, u32 value, u32 size);
/* リンカスクリプトにより定義されるシンボル参照 */
extern void SDK_AUTOLOAD_LIST(void);
extern void SDK_AUTOLOAD_LIST_END(void);
extern void SDK_AUTOLOAD_START(void);
extern void SDK_STATIC_BSS_START(void);
extern void SDK_STATIC_BSS_END(void);
#ifdef USE_HYENA_COMPONENT
void* const _start_ModuleParams[] =
{
(void*)SDK_AUTOLOAD_LIST,
(void*)SDK_AUTOLOAD_LIST_END,
(void*)SDK_AUTOLOAD_START,
(void*)SDK_STATIC_BSS_START,
(void*)SDK_STATIC_BSS_END,
(void*)0, // CompressedStaticEnd. This fixed number will be updated by compstatic tool.
(void*)0, // SDK_VERSION_ID // SDK version info /* [TODO] ビルドを通すため */
(void*)SDK_NITROCODE_BE,
(void*)SDK_NITROCODE_LE,
};
#else
void* const _start_ModuleParams[] =
{
(void*)0,
(void*)0,
(void*)0,
(void*)SDK_STATIC_BSS_START,
(void*)SDK_STATIC_BSS_END,
(void*)0,
(void*)0,
(void*)SDK_NITROCODE_BE,
(void*)SDK_NITROCODE_LE,
};
#endif
extern void SDK_LTDAUTOLOAD_LIST(void);
extern void SDK_LTDAUTOLOAD_LIST_END(void);
extern void SDK_LTDAUTOLOAD_START(void);
void* const _start_LtdModuleParams[] =
{
(void*)SDK_LTDAUTOLOAD_LIST,
(void*)SDK_LTDAUTOLOAD_LIST_END,
(void*)SDK_LTDAUTOLOAD_START,
(void*)0, // CompressedLtdautoloadEnd. This fixed number will be updated by compstatic tool.
(void*)SDK_TWLCODE_BE,
(void*)SDK_TWLCODE_LE,
};
#ifdef DEBUG_WRAM_SETTING
u32 const wramMapping[12] = {
0x8d898581, 0x8c888480, 0x9c989490, 0x8c888480,
0x9c989490, 0x00000000, 0x09403900, 0x09803940,
0x080037c0, 0x09403900, 0x09803940, 0x0000000f
};
#endif
/*---------------------------------------------------------------------------*
Name: ShakeHand
Description: ARM9 ShakeHand
Arguments: r0 - ARM9
r1 - ARM7
Returns:
*---------------------------------------------------------------------------*/
static const u32 microcode_ShakeHand[10] =
{
0xe1d020b0, /* ldrh r2, [r0] ; 同期変数9を共有メモリから読む */
0xe1d130b0, /* ldrh r3, [r1] ; 同期変数7を共有メモリから読む */
0xe2833001, /* @1: add r3, r3, #1 ; 同期変数7 ++ */
0xe1c130b0, /* strh r3, [r1] ; 同期変数7を共有メモリに書く */
0xe1d0c0b0, /* ldrh r12, [r0] ; 同期変数9の現状を共有メモリから読む */
0xe152000c, /* cmp r2, r12 ; 同期変数9の変化を判定する */
0x0afffffa, /* beq @1 ; 変化していなければループ */
0xe2833001, /* add r3, r3, #1 ; 同期変数7 ++ */
0xe1c130b0, /* strh r3, [r1] ; 同期変数7を共有メモリに書く */
0xe12fff1e /* bx lr ; ハンドシェイク完了 */
};
#ifdef DEBUG_WRAM_SETTING
/*---------------------------------------------------------------------------*
Name: WaitAgreement
Description: ARM9
Arguments: r0 -
r1 -
Returns:
*---------------------------------------------------------------------------*/
static const u32 microcode_WaitAgreement[7] =
{
0xe1d020b0, /* @1: ldrh r2, [r0] ; フェーズ管理変数を共有メモリから読む */
0xe1510002, /* cmp r1, r2 ; 待機フェーズ番号と比較 */
0x012fff1e, /* bxeq lr ; 一致していれば待機完了 */
0xe3a03010, /* mov r3, #16 ; 空ループ回数初期化 */
0xe2533001, /* @2: subs r3, r3, #1 ; 空ループ回数 -- */
0x1afffffd, /* bne @2 ; 16 回ループ */
0xeafffff8 /* b @1 ; 先頭に戻る */
};
#endif
/*---------------------------------------------------------------------------*
Name: GotoMain
Description: ARM9 Main
Arguments: r0 - Main Main Thumb
bx 1
r1 -
r2 - ARM9
Returns:
*---------------------------------------------------------------------------*/
static const u32 microcode_GotoMain[2] =
{
0xe1c120b0, /* strh r2, [r1] ; フェーズ管理変数を更新 */
0xe12fff10 /* bx r0 ; Main 関数へジャンプ */
};
/*---------------------------------------------------------------------------*/
#include <twl/code32.h>
/*---------------------------------------------------------------------------*
Name: _start
Description:
Arguments:
Returns:
*---------------------------------------------------------------------------*/
SDK_WEAK_SYMBOL asm void
_start(void)
{
@000:
/* 割り込み禁止 */
mov r12, #HW_REG_BASE
str r12, [r12, #REG_IME_OFFSET] // Use that LSB of HW_REG_BASE is 0b0
/* ハンドシェイク用マイクロコードを専用 WRAM にコピー */
ldr r1, =microcode_ShakeHand
ldr r2, =HW_PRV_WRAM
add r3, r2, #40
@001: ldr r0, [r1], #4
str r0, [r2], #4
cmp r2, r3
blt @001
/* 専用 WRAM 上のコードで ARM9 とハンドシェイク */
ldr r0, =HW_BOOT_SHAKEHAND_9
ldr r1, =HW_BOOT_SHAKEHAND_7
ldr r2, =HW_PRV_WRAM
mov lr, pc
bx r2
@010:
/* スタックポインタ設定 */
mov r0, #HW_PSR_SVC_MODE // SuperVisor mode
msr cpsr_c, r0
ldr sp, =HW_PRV_WRAM_SVC_STACK_END
mov r0, #HW_PSR_IRQ_MODE // IRQ mode
msr cpsr_c, r0
ldr sp, =HW_PRV_WRAM_IRQ_STACK_END
ldr r1, =SDK_IRQ_STACKSIZE
sub r1, sp, r1
sub sp, sp, #4 // 4 bytes for stack check code
mov r0, #HW_PSR_SYS_MODE
msr cpsr_csfx, r0
sub sp, r1, #4 // 4 bytes for stack check code
/* スタック領域をクリア */
ldr r0, =SDK_SYS_STACKSIZE
sub r1, r1, r0
ldr r2, =HW_PRV_WRAM_IRQ_STACK_END
mov r0, #0
@011: cmp r1, r2
strlt r0, [r1], #4
blt @011
/* SCFG を HW_SYS_CONF_BUF へコピー */
bl INIT_InitializeScfg
bl INITi_CopySysConfig
/* TWL ハードウェア上で動作しているかどうかを調査 */
bl INITi_IsRunOnTwl
/* TWL ハードウェア上で動作していない場合は永久ループ */
@012: bne @012
/* プリロードパラメータアドレスが格納されていない場合は、デフォルト値をセット */
ldr r0, =HW_PRELOAD_PARAMETER_ADDR
ldr r1, [r0]
cmp r1, #0
ldreq r1, =HW_PARAM_TWL_SETTINGS_DATA_DEFAULT
streq r1, [r0]
@020:
/* Autoload を実施 */
bl INITi_DoAutoload
/* STATIC ブロックの .bss セクションを 0 クリア */
mov r1, #0 // r1 = clear value for STATIC bss section
ldr r3, =_start_ModuleParams
ldr r0, [r3, #12] // r0 = start address of STATIC bss section
ldr r2, [r3, #16]
subs r2, r2, r0 // r2 = size of STATIC bss section
blgt INITi_Fill32
//---- detect main memory size
bl INITi_DetectMainMemorySize
#ifndef SDK_FINALROM
//---- set debug print window
ldr r1, =HW_PRINT_OUTPUT_ARM9
mov r0, #OS_PRINT_OUTPUT_DEFAULT_ARM9
orr r0, r0, #(OS_PRINT_OUTPUT_DEFAULT_ARM7<<8)
strh r0, [r1]
mov r0, #OS_PRINT_OUTPUT_DEFAULT_ARM9ERR
orr r0, r0, #(OS_PRINT_OUTPUT_DEFAULT_ARM7ERR<<8)
strh r0, [r1, #2]
#endif
/* 割り込みベクタ設定 */
ldr r1, =HW_INTR_VECTOR_BUF
ldr r0, =OS_IrqHandler
str r0, [r1]
#ifndef SDK_NOINIT
/* c++ 用初期化 */
bl _fp_init
bl TwlSpStartUp
bl __call_static_initializers
bl INITi_CallStaticInitializers
#endif
@030:
/* Main 関数へのジャンプ用マイクロコードをスタックの底にコピー */
ldr r1, =microcode_GotoMain
ldr r0, [r1], #4
str r0, [sp, #-4]
ldr r0, [r1]
str r0, [sp]
/* マイクロコードを経由して Main 関数へジャンプ */
ldr r0, =TwlSpMain
ldr r1, =HW_BOOT_SYNC_PHASE
mov r2, #BOOT_SYNC_PHASE_4
ldr lr, =HW_RESET_VECTOR
sub r3, sp, #4
bx r3
}
/*---------------------------------------------------------------------------*
Name: INITi_DoAutoload
Description: 沿
0
Arguments:
Returns:
*---------------------------------------------------------------------------*/
/*
* < >
* 0x02380000 crt0
* NITRO WRAM 0x037c0000
* TWL WRAM
* 0x02400000 ARM9
* 0x04000 ROM 0x02f80000 - 0x02f84000 退
* 0x02e80000
* 0x04000 ROM 0x02f84000 - 0x02f88000 退
* NITRO MAIN 0x02f88000
* TWL MAIN
*/
static asm void
INITi_DoAutoload(void)
{
stmfd sp!, {lr}
@01_autoload:
/* WRAM 用ブロックをオートロード */
ldr r0, =_start_ModuleParams
ldr r12, [r0] // r12 = SDK_AUTOLOAD_LIST
ldr r3, [r0, #4] // r3 = SDK_AUTOLOAD_LIST_END
ldr r1, [r0, #8] // r1 = SDK_AUTOLOAD_START
@01_segments_loop:
cmp r12, r3
bge @02_start
/* 固定セクション */
ldr r0, [r12], #4 // r0 = start address of destination range of fixed section
ldr r2, [r12], #4 // r2 = size of fixed section
bl INITi_Copy32
stmfd sp!, {r0, r1}
/* static initializer テーブル */
ldr r0, [r12], #4 // r0 = start address of source range of static initializers table
#ifndef SDK_NOINIT
stmfd sp!, {r3, r12}
bl INITi_ShelterStaticInitializer
ldmfd sp!, {r3, r12}
#endif
/* bss セクション */
ldmfd sp!, {r0} // r0 = start address of destination range of bss section
mov r1, #0 // r1 = clear value for bss section
ldr r2, [r12], #4 // r2 = size of bss section
bl INITi_Fill32
ldmfd sp!, {r1} // r1 = end address of source range of the autoload segment
b @01_segments_loop
@02_start:
/* メインメモリ用オートロードブロックの存在を確認 */
ldr r1, =HW_TWL_ROM_HEADER_BUF
ldr r0, [r1, #ROM_Header.s.sub_ltd_size]
cmp r0, #0
beq @03_start
@02_autoload:
/* メインメモリ用ブロックをオートロード */
ldr r0, =_start_LtdModuleParams
ldr r12, [r0] // r12 = SDK_LTDAUTOLOAD_LIST
ldr r3, [r0, #4] // r3 = SDK_LTDAUTOLOAD_LIST_END
ldr r1, [r0, #8] // r1 = SDK_AUTOLOAD_START
@02_segments_loop:
cmp r12, r3
bge @03_start
/* 固定セクション */
ldr r0, [r12], #4
ldr r2, [r12], #4
bl INITi_Copy32
stmfd sp!, {r0, r1}
/* static initializer テーブル */
ldr r0, [r12], #4
#ifndef SDK_NOINIT
stmfd sp!, {r3, r12}
bl INITi_ShelterStaticInitializer
ldmfd sp!, {r3, r12}
#endif
/* bss セクション */
ldmfd sp!, {r0}
mov r1, #0
ldr r2, [r12], #4
bl INITi_Fill32
ldmfd sp!, {r1}
b @02_segments_loop
@03_start:
/* オートロード完了コールバック関数呼び出し */
ldr r0, =_start_ModuleParams
ldr r1, =_start_LtdModuleParams
ldmfd sp!, {lr}
b _start_AutoloadDoneCallback
}
#ifndef SDK_NOINIT
/*---------------------------------------------------------------------------*
Name: INITi_ShelterStaticInitializer
Description: static initializer
IRQ 退
Arguments: ptr -
NULL
Returns:
*---------------------------------------------------------------------------*/
static asm void
INITi_ShelterStaticInitializer(u32* ptr)
{
/* 引数確認 */
cmp r0, #0
bxeq lr
/* 退避場所先頭アドレスを計算 */
ldr r1, =HW_PRV_WRAM_IRQ_STACK_END
ldr r2, =SDK_IRQ_STACKSIZE
sub r1, r1, r2
add r1, r1, #4
/* 退避場所先頭から空き場所を調査 */
@001: ldr r2, [r1]
cmp r2, #0
addne r1, r1, #4
bne @001
/* 空き場所にテーブルをコピー */
@002: ldr r2, [r0], #4
str r2, [r1], #4
cmp r2, #0
bne @002
bx lr
}
/*---------------------------------------------------------------------------*
Name: INITi_CallStaticInitializers
Description: static initializer
IRQ 退
Arguments:
Returns:
*---------------------------------------------------------------------------*/
static asm void
INITi_CallStaticInitializers(void)
{
stmdb sp!, {lr}
/* テーブル退避場所先頭アドレスを計算 */
ldr r1, =HW_PRV_WRAM_IRQ_STACK_END
ldr r2, =SDK_IRQ_STACKSIZE
sub r1, r1, r2
add r1, r1, #4
/* テーブルに管理されているポインタを一つずつ呼び出し */
@001: ldr r0, [r1]
cmp r0, #0
beq @002
stmdb sp!, {r1}
mov lr, pc
bx r0
ldmia sp!, {r1}
/* 一旦呼び出したポインタはゼロクリア (IRQスタックを間借りしている為) */
mov r0, #0
str r0, [r1], #4
b @001
@002: ldmia sp!, {lr}
bx lr
}
#endif
/*---------------------------------------------------------------------------*
Name: _start_AutoloadDoneCallback
Description:
Arguments: argv -
argv[0] = SDK_AUTOLOAD_LIST
argv[1] = SDK_AUTOLOAD_LIST_END
argv[2] = SDK_AUTOLOAD_START
argv[3] = SDK_STATIC_BSS_START
argv[4] = SDK_STATIC_BSS_END
Returns:
*---------------------------------------------------------------------------*/
SDK_WEAK_SYMBOL asm void
_start_AutoloadDoneCallback(void* argv[])
{
bx lr
}
/*---------------------------------------------------------------------------*
Name: NitroSpStartUp
Description: Hook for user start up.
Arguments: None.
Returns: None.
*---------------------------------------------------------------------------*/
SDK_WEAK_SYMBOL void
NitroSpStartUp(void)
{
}
/*---------------------------------------------------------------------------*
Name: INITi_IsRunOnTwl
Description: check running platform
This function is used in only Nitro-TWL hybrid mode.
(In Nitro mode and TWL limited mode, treated as constant)
Arguments: None
Returns: TRUE : running on TWL
FALSE : running on NITRO
*---------------------------------------------------------------------------*/
static asm BOOL INITi_IsRunOnTwl( void )
{
ldr r0, =HW_PRV_WRAM_SYSRV
ldrb r0, [r0,#HWi_WSYS08_WRAMOFFSET]
and r0, r0, #HWi_WSYS08_ROM_ARM9SEC_MASK | HWi_WSYS08_ROM_ARM9RSEL_MASK
cmp r0, #HWi_WSYS08_ROM_ARM9SEC_MASK
moveq r0, #TRUE
movne r0, #FALSE
bx lr
}
/*---------------------------------------------------------------------------*
Name: INIT_InitializeScfg
Description: SCFG
crt0
Arguments: None.
Returns: None.
*---------------------------------------------------------------------------*/
SDK_WEAK_SYMBOL asm void
INIT_InitializeScfg(void)
{
bx lr
}
/*---------------------------------------------------------------------------*
Name: INITi_CopySysConfig
Description: copy SCFG registers to HW_SYS_CONF_BUF and HW_PRV_WRAM_SYSRV
Arguments: None.
Returns: None.
*---------------------------------------------------------------------------*/
static asm void INITi_CopySysConfig( void )
{
//---- copy scfg setting
ldr r2, =HW_PRV_WRAM_SYSRV
ldr r3, =HW_SYS_CONF_BUF
ldr r0, [r2, #HWi_WSYS04_WRAMOFFSET]
str r0, [r3, #HWi_WSYS04_OFFSET]
ldrh r0, [r2, #HWi_WSYS08_WRAMOFFSET]
strh r0, [r3, #HWi_WSYS08_OFFSET]
bx lr
}
/*---------------------------------------------------------------------------*
Name: INITi_DetectMainMemorySize
Description: detect main memory size.
result is written into (u32*)HW_MMEMCHECKER_SUB.
value is [OS_CONSOLE_SIZE_4MB|OS_CONSOLE_SIZE_8MB|
OS_CONSOLE_SIZE_16MB|OS_CONSOLE_SIZE_32MB]
Arguments: None.
Returns: None.
*---------------------------------------------------------------------------*/
#define OSi_IMAGE_DIFFERENCE 0x400000
#define OSi_IMAGE_DIFFERENCE2 0xb000000
#define OSi_DETECT_NITRO_MASK (REG_SND_SMX_CNT_E_MASK | REG_SND_SMX_CNT_FSEL_MASK)
#define OSi_DETECT_NITRO_VAL (REG_SND_SMX_CNT_E_MASK)
#define OSi_CHECKNUM1 0x55
#define OSi_CHECKNUM2 0xaa
#define OSi_100usWAIT 3352 // 100us = 3351.4cycles(33.514MHz)
static asm void INITi_DetectMainMemorySize( void )
{
stmfd sp!, {lr}
//---- detect memory size
mov r0, #OS_CONSOLE_SIZE_4MB
mov r1, #0
ldr r2, =HW_MMEMCHECKER_SUB
sub r3, r2, #OSi_IMAGE_DIFFERENCE
@1:
strh r1, [r2]
ldrh r12, [r3]
cmp r1, r12
bne @2
add r1, r1, #1
cmp r1, #2 // check 2 loop
bne @1
//---- 4MB
b @3
//---- 8MB or 16MB or 32MB
@2:
// check if running on twl/nitro
bl INITi_IsRunOnTwl
movne r0, #OS_CONSOLE_SIZE_8MB
bne @3
//---- 16MB or 32MB
add r3, r2, #OSi_IMAGE_DIFFERENCE2
mov r0, #OS_CONSOLE_SIZE_16MB
ldrb r2, [r3]
mov r1, #OSi_CHECKNUM1
strb r1, [r3]
ldr r12, =OSi_100usWAIT
@4 subs r12, r12, #4
bcs @4
ldrb r1, [r3]
cmp r1, #OSi_CHECKNUM1
bne @3
mov r1, #OSi_CHECKNUM2
strb r1, [r3]
ldr r12, =OSi_100usWAIT
@5 subs r12, r12, #4
bcs @5
ldrb r1, [r3]
cmp r1, #OSi_CHECKNUM2
moveq r0, #OS_CONSOLE_SIZE_32MB
@3:
//---- check SMX_CNT
strb r2, [r3]
ldr r3, =REG_SMX_CNT_ADDR
ldrh r1, [r3]
and r1, r1, #OSi_DETECT_NITRO_MASK
cmp r1, #OSi_DETECT_NITRO_VAL
orreq r0, r0, #OS_CHIPTYPE_SMX_MASK
ldr r2, =HW_MMEMCHECKER_SUB
strh r0, [r2]
ldmfd sp!, {lr}
bx lr
}
/*---------------------------------------------------------------------------*
Name: INITi_Copy32
Description: 32 bit 36
r3 - r12
Arguments: r0 - ( 4 )
r1 - ( 4 )
r2 - ( 4 )
Returns: r0 - ( r0 + r2 )
r1 - ( r1 + r2 )
*---------------------------------------------------------------------------*/
static asm void*
INITi_Copy32(void* dst, void* src, u32 size)
{
stmfd sp!, {r3-r11}
bics r3, r2, #0x0000001f
beq @next
add r3, r0, r3
@loop:
ldmia r1!, {r4-r11}
stmia r0!, {r4-r11}
cmp r3, r0
bgt @loop
@next:
tst r2, #0x00000010
ldmneia r1!, {r4-r7}
stmneia r0!, {r4-r7}
tst r2, #0x00000008
ldmneia r1!, {r4-r5}
stmneia r0!, {r4-r5}
tst r2, #0x00000004
ldmneia r1!, {r4}
stmneia r0!, {r4}
ldmfd sp!, {r3-r11}
bx lr
}
/*---------------------------------------------------------------------------*
Name: INITi_Fill32
Description: 32 bit 36
r3 - r12
Arguments: r0 - ( 4 )
r1 - 32 bit
r2 - ( 4 )
Returns: r0 - ( r0 + r2 )
*---------------------------------------------------------------------------*/
static asm void*
INITi_Fill32(void* dst, u32 value, u32 size)
{
stmfd sp!, {r3-r11}
mov r4, r1
mov r5, r1
mov r6, r1
mov r7, r1
mov r8, r1
mov r9, r1
mov r10, r1
mov r11, r1
bics r3, r2, #0x0000001f
beq @next
add r3, r0, r3
@loop:
stmia r0!, {r4-r11}
cmp r3, r0
bgt @loop
@next:
tst r2, #0x00000010
stmneia r0!, {r4-r7}
tst r2, #0x00000008
stmneia r0!, {r4-r5}
tst r2, #0x00000004
stmneia r0!, {r4}
ldmfd sp!, {r3-r11}
bx lr
}
#include <twl/codereset.h>

View File

@ -0,0 +1,110 @@
/*---------------------------------------------------------------------------*
Project: TwlSDK - components - mongoose.TWL
File: initScfg.c
Copyright 2008 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$
*---------------------------------------------------------------------------*/
#include <twl/memorymap_sp.h>
#include <twl/hw/common/mmap_wramEnv.h>
extern void INIT_InitializeScfg(void);
#include <twl/code32.h>
/*---------------------------------------------------------------------------*
Name: INIT_InitializeScfg
Description: SCFG
crt0
Arguments: None.
Returns: None.
*---------------------------------------------------------------------------*/
asm void
INIT_InitializeScfg(void)
{
// SCFG enable?
ldr r2, =REG_EXT_ADDR
ldr r0, [r2]
tst r0, #REG_SCFG_EXT_CFG_MASK
beq @end
/* NITRO 互換無線の送受信機能を動作 */
ldr r1, =REG_WL_ADDR
ldrh r0, [r1]
orr r0, r0, #REG_SCFG_WL_OFFB_MASK
strh r0, [r1]
/* 新規サウンドブロックへのクロック供給 */
ldr r1, =REG_CLK_ADDR
ldrh r0, [r1]
orr r0, r0, #REG_SCFG_CLK_SNDMCLK_MASK
strh r0, [r1]
/* ARM7 側の DMA には新 DMA 回路を採用 */
ldr r1, =REG_EXT_ADDR
ldr r0, [r1]
orr r0, r0, #REG_SCFG_EXT_DMAC_MASK
str r0, [r1]
ldr r2, =HW_PRV_WRAM_SYSRV
//EXT(extentions)
ldr r3, =REG_EXT_ADDR
ldr r0, [r3]
str r0, [r2, #HWi_WSYS04_WRAMOFFSET]
//OPT(bonding option)
ldr r3, =REG_OP_ADDR
ldrb r0, [r3]
//A9ROM(ARM9 ROM)
ldr r3, =REG_A9ROM_ADDR
ldrb r1, [r3]
and r12,r1, #(REG_SCFG_A9ROM_RSEL_MASK | REG_SCFG_A9ROM_SEC_MASK)
orr r0, r0, r12, LSL #(HWi_WSYS08_ROM_ARM9RSEL_SHIFT - REG_SCFG_A9ROM_RSEL_SHIFT)
//A7ROM(ARM7 ROM)
ldr r3, =REG_A7ROM_ADDR
ldrb r1, [r3]
and r12,r1, #(REG_SCFG_A7ROM_RSEL_MASK | REG_SCFG_A7ROM_FUSE_MASK)
orr r0, r0, r12, LSL #(HWi_WSYS08_ROM_ARM7RSEL_SHIFT - REG_SCFG_A7ROM_RSEL_SHIFT)
//DS-WL(DS wireless)
ldr r3, =REG_WL_ADDR
ldrb r1, [r3]
and r12,r1, #REG_SCFG_WL_OFFB_MASK
orr r0, r0, r12, LSL #(HWi_WSYS08_WL_OFFB_SHIFT - REG_SCFG_WL_OFFB_SHIFT)
strb r0, [r2, #HWi_WSYS08_WRAMOFFSET]
//OPT(JTAG info)
ldr r3, =REG_JTAG_ADDR
ldrh r0, [r3]
and r12,r0, #REG_SCFG_JTAG_DSPJE_MASK
orr r0, r0, r12, LSR #(REG_SCFG_JTAG_DSPJE_SHIFT - HWi_WSYS09_JTAG_DSPJE_SHIFT)
//CLK(only wram clock)
ldr r3, =REG_CLK_ADDR
ldrh r1, [r3]
and r12,r1, #(REG_SCFG_CLK_AESHCLK_MASK | REG_SCFG_CLK_SD2HCLK_MASK | REG_SCFG_CLK_SD1HCLK_MASK)
orr r0, r0, r12, LSL #(HWi_WSYS09_CLK_SD1HCLK_SHIFT - REG_SCFG_CLK_SD1HCLK_SHIFT)
and r12,r1, #(REG_SCFG_CLK_SNDMCLK_MASK | REG_SCFG_CLK_WRAMHCLK_MASK)
orr r0, r0, r12, LSR #(REG_SCFG_CLK_WRAMHCLK_SHIFT - HWi_WSYS09_CLK_WRAMHCLK_SHIFT)
strb r0, [r2, #HWi_WSYS09_WRAMOFFSET]
#if 0
/* A7-SCFG ブロックへのアクセスを無効化 */
ldr r1, =REG_EXT_ADDR
ldr r0, [r1]
bic r0, r0, #REG_SCFG_EXT_CFG_MASK
str r0, [r1]
#endif
@end:
bx lr
}
#include <twl/codereset.h>

View File

@ -0,0 +1,916 @@
/*---------------------------------------------------------------------------*
Project: TwlIPL - components - hyena.TWL
File: main.c
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$
*---------------------------------------------------------------------------*/
#include <nitro/types.h>
#include <twl/init/crt0.h>
#include <twl/memorymap_sp.h>
#include <twl/os.h>
#include <twl/spi.h>
#include <twl/fatfs.h>
#include <nitro/pad.h>
#include <nitro/std.h>
#include <nitro/snd.h>
#include <nitro/wvr.h>
#include <twl/nwm/ARM7/ForLauncher/nwm_sp_init_for_launcher.h>
#include <twl/camera.h>
#include <twl/rtc.h>
#include <nitro/hw/common/lcd.h>
#include <nitro/gx.h>
#include <twl/os/common/codecmode.h>
#include <twl/cdc.h>
#include <twl/snd/ARM7/sndex_api.h>
#include <twl/aes.h>
#include <twl/mcu.h>
#include <twl/hw/common/mmap_wramEnv.h>
#include <sysmenu.h>
#include <sysmenu/mcu.h>
#include <firm/memorymap.h>
#include "pm_pmic.h"
#include "internal_api.h"
#include "nvram_sp.h"
#include "twl/sea.h"
// 未実装(現状ではデバッガ接続しないなら選択してもよい)
//#define HYENA_ROMEMU_INFO_FROM_LNCR_PARAM
//#define HYENA_RTC_DEBUG
/*---------------------------------------------------------------------------*
*---------------------------------------------------------------------------*/
#define WM_WL_HEAP_SIZE 0x2100
#define ATH_DRV_HEAP_SIZE 0x5800
#define WPA_HEAP_SIZE 0x1C00
#define MEM_TYPE_WRAM 0
#define MEM_TYPE_MAIN 1
/* Priorities of each threads */
#define THREAD_PRIO_MCU 1 /* ハードウェアリセット時に他のスレッドに優先して動く必要アリ */
#define THREAD_PRIO_SPI 2
#define THREAD_PRIO_SYSMMCU 6
#define THREAD_PRIO_SND 6
#define THREAD_PRIO_FATFS 8
#define THREAD_PRIO_HOTSW 11
#define THREAD_PRIO_AES 12
#define THREAD_PRIO_SEA 12
#define THREAD_PRIO_RTC 12
#define THREAD_PRIO_SNDEX 14
#define THREAD_PRIO_FS 15
/* OS_THREAD_LAUNCHER_PRIORITY 16 */
#define NWM_DMANO NWMSP_DMA_NOT_USE // NWMのNDMAは使用しない。
#define THREAD_PRIO_NWM_COMMMAND 9
#define THREAD_PRIO_NWM_EVENT 7
#define THREAD_PRIO_NWM_SDIO 8
#define THREAD_PRIO_NWM_WPA 10
// ROM 内登録エリアの拡張言語コード
#define ROMHEADER_FOR_CHINA_BIT 0x80
#define ROMHEADER_FOR_KOREA_BIT 0x40
/*---------------------------------------------------------------------------*
*---------------------------------------------------------------------------*/
static void ResetRTC( void );
static void ReadLauncherParameter( void );
static void PrintDebugInfo(void);
static OSHeapHandle InitializeAllocateSystem(u8 memType);
static OSHeapHandle InitializeAllocateSystemCore(u8 memType);
#ifdef SDK_TWLHYB
static OSHeapHandle InitializeAllocateSystemCoreEx(u8 memType);
#endif
static void DummyThread(void* arg);
static void ReadUserInfo(void);
static void VBlankIntr(void);
static void InitializeFatfs(void);
static void InitializeNwm(OSArenaId drvArenaId, OSHeapHandle drvHeapHandle,
OSArenaId wpaArenaId, OSHeapHandle wpaHeapHandle);
static void InitializeCdc();
static void AdjustVolume(void);
/*---------------------------------------------------------------------------*
*---------------------------------------------------------------------------*/
#ifdef SDK_TWLHYB
extern void SDK_LTDAUTOLOAD_LTDWRAM_BSS_END(void);
extern void SDK_LTDAUTOLOAD_LTDMAIN_BSS_END(void);
#endif
extern void SDK_SEA_KEY_STORE(void);
extern void SDK_STATIC_BSS_END(void);
extern BOOL sdmcGetNandLogFatal( void );
/*---------------------------------------------------------------------------*
Name: TwlSpMain
Description:
Arguments: None.
Returns: None.
*---------------------------------------------------------------------------*/
void
TwlSpMain(void)
{
OSHeapHandle wramHeapHandle, mainHeapHandle;
// SYSMワークのクリア
// MI_CpuClear32( SYSMi_GetWork(), sizeof(SYSM_work) ); // NANDファームでクリアしているので、いらない。
// ※もしランチャー上でやるなら、crt0.o内でクリアの記述をしないとAutoloadセグメントに配置されてしまって、うまく動かない点に注意する。
// バックライトON
while ( (reg_GX_DISPSTAT & REG_GX_DISPSTAT_INI_MASK) == FALSE )
{
}
PMi_SetControl( PMIC_CTL_BKLT1 | PMIC_CTL_BKLT2 );
#ifdef INITIAL_KEYTABLE_PRELOAD
HOTSW_CopyInitialKeyTable();
#endif
// OS 初期化
OS_Init();
PrintDebugInfo();
// ランチャーバージョンを格納(今のところ、最低でもマウント情報登録前には格納する必要あり)
*(u8 *)HW_TWL_RED_LAUNCHER_VER = (u8)SYSM_LAUNCHER_VER;
// ランチャーのマウント情報登録
SYSMi_SetLauncherMountInfo();
// ランチャーパラメター取得Cold/Hotスタート判定含む
ReadLauncherParameter();
// RTCリセット
ResetRTC(); // 330usくらい
// NVRAM からユーザー情報読み出し
ReadUserInfo();
// NANDのFATALエラー検出
if( sdmcGetNandLogFatal() != FALSE) {
/* 故障扱い処理 */
SYSMi_GetWork()->flags.arm7.isNANDFatalError = TRUE;
}
SYSMi_GetWork()->flags.arm7.isARM9Start = TRUE;
// ヒープ領域設定
#ifndef USE_HYENA_COMPONENT
OS_SetSubPrivArenaLo( (void*)SDK_STATIC_BSS_END );
#endif
OS_SetSubPrivArenaHi( (void*)SYSM_OWN_ARM7_MMEM_ADDR_END ); // メモリ配置をいじっているので、アリーナHiも変更しないとダメ
OS_SetWramSubPrivArenaHi( (void*)(SYSM_OWN_ARM7_WRAM_ADDR_END - HW_FIRM_FROM_FIRM_BUF_SIZE) ); // この時点では鍵をつぶさないように
OS_TPrintf( "MMEM SUBPRV ARENA HI : %08x -> %08x\n", OS_GetSubPrivArenaHi(), OS_GetSubPrivArenaHi() );
OS_TPrintf( "WRAM SUBPRV ARENA HI : %08x -> %08x\n", OS_GetWramSubPrivArenaHi(), OS_GetWramSubPrivArenaHi() );
wramHeapHandle = InitializeAllocateSystem(MEM_TYPE_WRAM);
mainHeapHandle = InitializeAllocateSystem(MEM_TYPE_MAIN);
// ボタン入力サーチ初期化
(void)PAD_InitXYButton();
// 割り込み許可
(void)OS_SetIrqFunction(OS_IE_V_BLANK, VBlankIntr);
(void)OS_EnableIrqMask(OS_IE_V_BLANK);
(void)GX_VBlankIntr(TRUE);
(void)OS_EnableIrq();
(void)OS_EnableInterrupts();
// PXIコールバックの設定
SYSM_InitPXI(THREAD_PRIO_SYSMMCU);
// ファイルシステム初期化
FS_Init(FS_DMA_NOT_USE);
FS_CreateReadServerThread(THREAD_PRIO_FS);
if (OS_IsRunOnTwl() == TRUE)
{
InitializeFatfs(); // FATFS 初期化
// NWM 初期化
InitializeNwm(OS_ARENA_MAIN_SUBPRIV, mainHeapHandle, // heap setting for TWL wireless host driver
OS_ARENA_MAIN_SUBPRIV, mainHeapHandle // heap setting for wpa
);
#ifndef SDK_NOCRYPTO
AES_Init(THREAD_PRIO_AES); // AES 初期化
{
// JPEGエンコード用の鍵セット
SYSMi_SetAESKeysForSignJPEG( (ROM_Header *)HW_TWL_ROM_HEADER_BUF, NULL, NULL );
// NANDファームがHW_LAUNCHER_DELIVER_PARAM_BUFへのAES_SEEDセットを行ってくれるので、ISデバッガ接続に関係なくSDK_SEA_KEY_STOREへのコピーを行えばよい
MI_CpuCopyFast( (void *)HW_LAUNCHER_DELIVER_PARAM_BUF, (void *)SDK_SEA_KEY_STORE, HW_LAUNCHER_DELIVER_PARAM_BUF_SIZE );
}
#ifdef SDK_SEA
SEA_Init(THREAD_PRIO_SEA);
#endif // ifdef SDK_SEA
#endif
MCU_InitIrq(THREAD_PRIO_MCU); // MCU 初期化
// ボリューム設定の調整
AdjustVolume();
}
if (OSi_IsCodecTwlMode() == TRUE)
{
// CODEC 初期化
// ランチャーのみCDC_InitForFirstBootで実際にCODECの初期化を行う。
// アプリ起動時にはCODECは既に初期化されているためmongooseなどでは
// 簡易的な初期化CDC_InitLibで良い。 2008/07/14
InitializeCdc();
// カメラ初期化
CAMERA_Init();
/* CODEC が TWL モードでないとシャッター音を強制的に鳴らす
使CODEC TWL
使 */
}
// サウンド初期化
SND_Init(THREAD_PRIO_SND);
if (OS_IsRunOnTwl() == TRUE)
{
SNDEX_Init(THREAD_PRIO_SNDEX);
}
// RTC 初期化
RTC_Init(THREAD_PRIO_RTC);
// ランチャーでは、旧無線の初期化はmain loopで行う。
// SPI 初期化
// ※ARM9側のOS_Init内のPM_InitでPMのPXIコールバック待ちをしており、ここでARM9と同期が取られる。
SPI_Init(THREAD_PRIO_SPI);
BOOT_Init();
// 活栓挿抜機能初期化
if( ( SYSM_GetLauncherParamBody()->v1.flags.isValid ) &&
( SYSM_GetLauncherParamBody()->v1.flags.bootType != LAUNCHER_BOOTTYPE_ROM ) &&
( SYSM_GetLauncherParamBody()->v1.bootTitleID )
)
#ifdef HYENA_ROMEMU_INFO_FROM_LNCR_PARAM
{
// ランチャーパラメータでダイレクトカードブート以外の指定がある時は、活線挿抜をOFFにする。
SYSMi_GetWork()->flags.hotsw.isEnableHotSW = 0;
}else {
// それ以外の時は活線挿抜ON
SYSMi_GetWork()->flags.hotsw.isEnableHotSW = 1;
}
#else
{
// ランチャーパラメータでダイレクトカードブート以外の指定がある時は、ROMエミュレーション情報のみ必要。
SYSMi_GetWork()->flags.hotsw.isLoadRomEmuOnly = 1;
}else {
// それ以外の時は普通にロード
SYSMi_GetWork()->flags.hotsw.isLoadRomEmuOnly = 0;
}
SYSMi_GetWork()->flags.hotsw.isEnableHotSW = 1;
#endif
HOTSW_Init(THREAD_PRIO_HOTSW);
while (TRUE)
{
OS_Halt();
// 無線ファームのロード完了をチェック。
if (TRUE == NWMSPi_CheckInstalledNotification())
{
/* M&M chipでは無線ファームのDL完了 → 旧無線初期化の順序を守る必要あり。
DL完了通知をmain loopでチェックし
NWMに確認通知を送る[twl-dev:0980] */
WVR_Begin(wramHeapHandle);
#if 1
// [TODO:] RC plus branchでは、NWMSPi_NotifyConfirmation()の返り値がないため、返り値評価を行わない。
// 次期リリースで返り値評価を行うよう変更予定。
NWMSPi_NotifyConfirmation();
#else
if (FALSE == NWMSPi_NotifyConfirmation())
{
// NWMへのConfirmation通知のためのSendMessageにENQできない状態.
// (ここに来ることはありえない筈.)
OS_Panic("ARM7: Failed to complete wireless firmare install.\n");
}
#endif
}
BOOT_WaitStart();
}
}
// RTCのリセットチェック
static void ResetRTC( void )
{
SYSM_work* sw = SYSMi_GetWork();
// ランチャーでリセットを検出するためにこの処理をしているが、RTC_Init内でも同じことをしているので、ちょっと無駄。
RTCRawStatus1 stat1;
RTCRawStatus2 stat2;
RTC_ReadStatus1( &stat1 );
RTC_ReadStatus2( &stat2 );
// リセット、電源投入、電源電圧低下、ICテストの各フラグを確認
if ( stat1.reset || stat1.poc || stat1.bld || stat2.test )
{
// リセット実行
stat1.reset = 1;
RTC_WriteStatus1( &stat1 );
sw->flags.arm7.isResetRTC = TRUE;
}
// FOUTが32KHz出力でない場合は、32KHz出力に修正設定する。無線で使用している
{
RTCRawFout fout;
RTC_ReadFout(&fout);
if( fout.fout != RTC_FOUT_DUTY_32KHZ ) {
fout.fout = RTC_FOUT_DUTY_32KHZ;
RTC_WriteFout(&fout);
}
}
// RTC初回データ読み込み
RTC_ReadDateTime(&sw->Rtc1stData);
// NTR-IPL同様にアラーム時間をクリア
//(割り込みイネーブルでないとアクセスできない)
{
static RTCRawAlarm alarm = {0,0,0,0,0,0,0,0,0};
stat2.intr_mode = RTC_INTERRUPT_MODE_ALARM; // アラーム割り込みイネーブル
stat2.intr2_mode = TRUE;
RTC_WriteStatus2( &stat2 );
(void)RTC_WriteAlarm1( &alarm );
(void)RTC_WriteAlarm2( &alarm );
#ifdef HYENA_RTC_DEBUG
{
static RTCRawAlarm rd_alarm = {1,1,1,1,1,1,1,1,1};
(void)RTC_ReadAlarm1( &rd_alarm );
(void)RTC_ReadAlarm2( &rd_alarm );
}
#endif
stat2.intr_mode = RTC_INTERRUPT_MODE_NONE; // アラーム割り込みディセーブル
stat2.intr2_mode = RTC_INTERRUPT_MODE_NONE;
RTC_WriteStatus2( &stat2 );
}
}
// ランチャーパラメータのリードおよびHot/Coldスタート判定
void ReadLauncherParameter( void )
{
BOOL hot;
SYSMi_GetWork()->flags.arm7.isValidLauncherParam = OS_ReadLauncherParameter( (LauncherParam *)&(SYSMi_GetWork()->launcherParam), &hot );
SYSMi_GetWork()->flags.arm7.isHotStart = hot;
// メインメモリのランチャーパラメータをクリアしておく
MI_CpuClearFast( (void*)HW_PARAM_LAUNCH_PARAM, HW_PARAM_LAUNCH_PARAM_SIZE );
// Coldスタート時はアプリパラメータもクリア
if ( ! hot )
{
MI_CpuClearFast( (void*)HW_PARAM_DELIVER_ARG, HW_PARAM_DELIVER_ARG_SIZE );
}
}
/*---------------------------------------------------------------------------*
Name: PrintDebugInfo
Description: ARM7
Arguments: None.
Returns: None.
*---------------------------------------------------------------------------*/
static void
PrintDebugInfo(void)
{
if(OS_IsRunOnTwl())
{
OS_TPrintf("ARM7: This component is running on TWL.\n");
}
else
{
OS_TPrintf("ARM7: This component is running on NITRO.\n");
}
#ifdef USE_HYENA_COMPONENT
OS_TPrintf("ARM7: This component is \"hyena.TWL\"\n");
#else
OS_TPrintf("ARM7: This component is \"jackal.TWL\"\n");
#endif
}
#include <twl/ltdwram_begin.h>
/*---------------------------------------------------------------------------*
Name: InitializeFatfs
Description: FATFSライブラリを初期化する
Arguments: None.
Returns: None.
*---------------------------------------------------------------------------*/
static void
InitializeFatfs(void)
{
// FATFSライブラリの初期化
if(!FATFS_Init( FATFS_DMA_4, FATFS_DMA_5, THREAD_PRIO_FATFS))
{
// do nothing
}
}
#include <twl/ltdwram_end.h>
#include <twl/ltdwram_begin.h>
/*---------------------------------------------------------------------------*
Name: InitializeNwm
Description: NWMライブラリを初期化する
Arguments: None.
Returns: None.
*---------------------------------------------------------------------------*/
static void
InitializeNwm(OSArenaId drvArenaId, OSHeapHandle drvHeapHandle,
OSArenaId wpaArenaId, OSHeapHandle wpaHeapHandle)
{
NwmspInit nwmInit;
nwmInit.dmaNo = NWM_DMANO;
nwmInit.cmdPrio = THREAD_PRIO_NWM_COMMMAND;
nwmInit.evtPrio = THREAD_PRIO_NWM_EVENT;
nwmInit.sdioPrio = THREAD_PRIO_NWM_SDIO;
nwmInit.drvHeap.id = drvArenaId;
nwmInit.drvHeap.handle = drvHeapHandle;
nwmInit.wpaPrio = THREAD_PRIO_NWM_WPA;
nwmInit.wpaHeap.id = wpaArenaId;
nwmInit.wpaHeap.handle = wpaHeapHandle;
/* 新無線初期化(ランチャー専用) */
NWMSP_InitForLauncher(&nwmInit);
}
#include <twl/ltdwram_end.h>
#include <twl/ltdwram_begin.h>
/*---------------------------------------------------------------------------*
Name: InitializeCdc
Description: CDCライブラリを初期化する
Arguments: None.
Returns: None.
*---------------------------------------------------------------------------*/
static void
InitializeCdc(void)
{
u32 spiLockId;
// CODECアクセス用のSPIロックIDを取得する
spiLockId = (u32)OS_GetLockID();
if (spiLockId == OS_LOCK_ID_ERROR)
{
OS_Warning("OS_GetLockID failed.\n");
}
SPI_Lock(spiLockId); // CODEC用SPI排他ロック
CDC_InitForFirstBoot(); // ※ランチャー特殊処理。
SPI_Unlock(spiLockId); // CODEC用SPI排他ロック
OS_Sleep(50); // CDC_InitForFirstBootでのPowerOnTime+デポップ期間
SPI_Lock(spiLockId); // CODEC用SPI排他ロック
CDC_DisableExternalDepop(); // 外部デポップ回路を無効にします
SPI_Unlock(spiLockId); // CODEC用SPI排他ロック
}
#include <twl/ltdwram_end.h>
/*---------------------------------------------------------------------------*
Name: InitializeAllocateSystem
Description:
Arguments: None.
Returns: OSHeapHandle - WRAM
*---------------------------------------------------------------------------*/
static OSHeapHandle InitializeAllocateSystem(u8 memType)
{
OSHeapHandle hh;
#ifdef SDK_TWLHYB
if( OS_IsRunOnTwl() == TRUE)
{
hh = InitializeAllocateSystemCoreEx(memType); /* Hybrid を TWL で動作させる */
}
else
#endif
{
hh = InitializeAllocateSystemCore(memType); /* Hybrid を DS で動作させる or Limited */
}
return hh;
}
/*---------------------------------------------------------------------------*
Name: InitializeAllocateSystemCore
Description:
Hybrid DS Limited TWL
Arguments: None.
Returns: OSHeapHandle - WRAM
*---------------------------------------------------------------------------*/
static OSHeapHandle InitializeAllocateSystemCore(u8 memType)
{
OSHeapHandle hh;
/* MAIN */
if(memType == MEM_TYPE_MAIN)
{
{
void* lo = (void*)OS_GetSubPrivArenaLo();
void* hi = (void*)OS_GetSubPrivArenaHi();
// アリーナを 0 クリア
MI_CpuClear8(lo, (u32)hi - (u32)lo);
// メモリ割り当て初期化
lo = OS_InitAlloc(OS_ARENA_MAIN_SUBPRIV, lo, hi, 1);
// アリーナ下位アドレスを設定
OS_SetArenaLo(OS_ARENA_MAIN_SUBPRIV, lo);
// ヒープ作成
hh = OS_CreateHeap(OS_ARENA_MAIN_SUBPRIV, lo, hi);
if (hh < 0)
{
OS_Panic("ARM7: Failed to MAIN create heap.\n");
}
}
// カレントヒープに設定
(void)OS_SetCurrentHeap(OS_ARENA_MAIN_SUBPRIV, hh);
// ヒープサイズの確認
{
u32 heapSize;
heapSize = (u32)OS_CheckHeap(OS_ARENA_MAIN_SUBPRIV, hh);
if( heapSize <= 0) /* ヒープ領域の確保に失敗 */
{
OS_Panic("ARM7: Failed to MAIN create heap.\n");
}
#ifdef SDK_TWLLTD
{
if ((ATH_DRV_HEAP_SIZE + WPA_HEAP_SIZE) > heapSize)
{
OS_Panic("Insufficient heap size. (0x%x < 0x%x)\n", heapSize, ATH_DRV_HEAP_SIZE + WPA_HEAP_SIZE);
}
}
#endif
OS_TPrintf("ARM7: MAIN heap size is %d\n", heapSize);
}
}
/* WRAM */
if( memType == MEM_TYPE_WRAM)
{
{
void* lo = (void*)OS_GetWramSubPrivArenaLo();
void* hi = (void*)OS_GetWramSubPrivArenaHi();
// アリーナを 0 クリア
MI_CpuClear8(lo, (u32)hi - (u32)lo);
// メモリ割り当て初期化
lo = OS_InitAlloc(OS_ARENA_WRAM_SUBPRIV, lo, hi, 1);
// アリーナ下位アドレスを設定
OS_SetArenaLo(OS_ARENA_WRAM_SUBPRIV, lo);
// ヒープ作成
hh = OS_CreateHeap(OS_ARENA_WRAM_SUBPRIV, lo, hi);
if (hh < 0)
{
OS_Panic("ARM7: Failed to WRAM create heap.\n");
}
}
// カレントヒープに設定
(void)OS_SetCurrentHeap(OS_ARENA_WRAM_SUBPRIV, hh);
// ヒープサイズの確認
{
u32 heapSize;
heapSize = (u32)OS_CheckHeap(OS_ARENA_WRAM_SUBPRIV, hh);
if( heapSize <= 0) /* ヒープ領域の確保に失敗 */
{
OS_Panic("ARM7: Failed to MAIN create heap.\n");
}
if (WM_WL_HEAP_SIZE > heapSize)
{
OS_Panic("Insufficient heap size. (0x%x < 0x%x)\n", heapSize, WM_WL_HEAP_SIZE);
}
OS_TPrintf("ARM7: WRAM heap size is %d\n", heapSize);
}
}
return hh;
}
#ifdef SDK_TWLHYB
#include <twl/ltdwram_begin.h>
/*---------------------------------------------------------------------------*
Name: InitializeAllocateSystemCoreEx
Description:
Hybrid TWL
Arguments: None.
Returns: OSHeapHandle - WRAM
*---------------------------------------------------------------------------*/
static OSHeapHandle InitializeAllocateSystemCoreEx(u8 memType)
{
OSHeapHandle hh;
if(memType == MEM_TYPE_MAIN)
{
{
void* basicLo = (void*)OS_GetSubPrivArenaLo();
void* basicHi = (void*)OS_GetSubPrivArenaHi();
void* extraLo = (void*)MATH_ROUNDUP((u32)SDK_LTDAUTOLOAD_LTDMAIN_BSS_END, 32);
void* extraHi = (void*)MATH_ROUNDDOWN(HW_MAIN_MEM_SUB, 32);
#if SDK_DEBUG
// debug information
OS_TPrintf("ARM7: MAIN arena basicLo = %p\n", basicLo);
OS_TPrintf("ARM7: MAIN arena basicHi = %p\n", basicHi);
OS_TPrintf("ARM7: MAIN arena extraLo = %p\n", extraLo);
OS_TPrintf("ARM7: MAIN arena extraHi = %p\n", extraHi);
#endif
// アリーナを 0 クリア
MI_CpuClear8(basicLo, (u32)basicHi - (u32)basicLo);
MI_CpuClear8(extraLo, (u32)extraHi - (u32)extraLo);
// メモリ割り当て初期化
if ((u32)basicLo < (u32)extraLo)
{
basicLo = OS_InitAlloc(OS_ARENA_MAIN_SUBPRIV, basicLo, extraHi, 1);
// アリーナ下位アドレスを設定
OS_SetArenaLo(OS_ARENA_MAIN_SUBPRIV, basicLo);
}
else
{
extraLo = OS_InitAlloc(OS_ARENA_MAIN_SUBPRIV, extraLo, basicHi, 1);
}
// ヒープ作成
hh = OS_CreateHeap(OS_ARENA_MAIN_SUBPRIV, basicLo, basicHi);
if (hh < 0)
{
OS_Panic("ARM7: Failed to create MAIN heap.\n");
}
// ヒープサイズの確認
{
u32 heapSize;
heapSize = (u32)OS_CheckHeap(OS_ARENA_MAIN_SUBPRIV, hh);
if( heapSize <= 0) /* ヒープ領域の確保に失敗 */
{
OS_Panic("ARM7: Failed to MAIN create heap.\n");
}
OS_TPrintf("ARM7: MAIN heap size is %d (before AddToHead)\n", heapSize);
}
// ヒープに拡張ブロックを追加
OS_AddToHeap(OS_ARENA_MAIN_SUBPRIV, hh, extraLo, extraHi);
}
// カレントヒープに設定
(void)OS_SetCurrentHeap(OS_ARENA_MAIN_SUBPRIV, hh);
// ヒープサイズの確認
{
u32 heapSize;
heapSize = (u32)OS_CheckHeap(OS_ARENA_MAIN_SUBPRIV, hh);
if( heapSize <= 0) /* ヒープ領域の確保に失敗 */
{
OS_Panic("ARM7: Failed to MAIN create heap.\n");
}
if ((ATH_DRV_HEAP_SIZE + WPA_HEAP_SIZE) > heapSize)
{
OS_Panic("Insufficient heap size. (0x%x < 0x%x)\n", heapSize, ATH_DRV_HEAP_SIZE + WPA_HEAP_SIZE);
}
OS_TPrintf("ARM7: MAIN heap size is %d\n", heapSize);
}
}
if(memType == MEM_TYPE_WRAM)
{
{
void* basicLo = (void*)OS_GetWramSubPrivArenaLo();
void* basicHi = (void*)OS_GetWramSubPrivArenaHi();
void* extraLo = (void*)MATH_ROUNDUP((u32)SDK_LTDAUTOLOAD_LTDWRAM_BSS_END, 32);
void* extraHi = (void*)MATH_ROUNDDOWN(HW_WRAM_A_HYB_END, 32);
#if SDK_DEBUG
// debug information
OS_TPrintf("ARM7: WRAM arena basicLo = %p\n", basicLo);
OS_TPrintf("ARM7: WRAM arena basicHi = %p\n", basicHi);
OS_TPrintf("ARM7: WRAM arena extraLo = %p\n", extraLo);
OS_TPrintf("ARM7: WRAM arena extraHi = %p\n", extraHi);
#endif
// アリーナを 0 クリア
MI_CpuClear8(basicLo, (u32)basicHi - (u32)basicLo);
MI_CpuClear8(extraLo, (u32)extraHi - (u32)extraLo);
// メモリ割り当て初期化
if ((u32)basicLo < (u32)extraLo)
{
basicLo = OS_InitAlloc(OS_ARENA_WRAM_SUBPRIV, basicLo, extraHi, 1);
// アリーナ下位アドレスを設定
OS_SetArenaLo(OS_ARENA_WRAM_SUBPRIV, basicLo);
}
else
{
extraLo = OS_InitAlloc(OS_ARENA_WRAM_SUBPRIV, extraLo, basicHi, 1);
}
// ヒープ作成
hh = OS_CreateHeap(OS_ARENA_WRAM_SUBPRIV, basicLo, basicHi);
if (hh < 0)
{
OS_Panic("ARM7: Failed to WRAM create heap.\n");
}
// ヒープサイズの確認
{
u32 heapSize;
heapSize = (u32)OS_CheckHeap(OS_ARENA_WRAM_SUBPRIV, hh);
if( heapSize <= 0) /* ヒープ領域の確保に失敗 */
{
OS_Panic("ARM7: Failed to WRAM create heap.\n");
}
if (WM_WL_HEAP_SIZE > heapSize)
{
OS_Panic("Insufficient heap size. (0x%x < 0x%x)\n", heapSize, WM_WL_HEAP_SIZE);
}
OS_TPrintf("ARM7: WRAM heap size is %d (before AddToHeap)\n", heapSize);
}
// ヒープに拡張ブロックを追加
OS_AddToHeap(OS_ARENA_WRAM_SUBPRIV, hh, extraLo, extraHi);
}
// カレントヒープに設定
(void)OS_SetCurrentHeap(OS_ARENA_WRAM_SUBPRIV, hh);
// ヒープサイズの確認
{
u32 heapSize;
heapSize = (u32)OS_CheckHeap(OS_ARENA_WRAM_SUBPRIV, hh);
if( heapSize <= 0) /* ヒープ領域の確保に失敗 */
{
OS_Panic("ARM7: Failed to WRAM create heap.\n");
}
if (WM_WL_HEAP_SIZE > heapSize)
{
OS_Panic("Insufficient heap size. (0x%x < 0x%x)\n", heapSize, WM_WL_HEAP_SIZE);
}
OS_TPrintf("ARM7: WRAM heap size is %d\n", heapSize);
}
}
return hh;
}
#include <twl/ltdwram_end.h>
#endif
#ifdef WM_PRECALC_ALLOWEDCHANNEL
extern u16 WMSP_GetAllowedChannel(u16 bitField);
#endif
/*---------------------------------------------------------------------------*
Name: ReadUserInfo
Description: NVRAMからユーザー情報を読み出し
Arguments: None.
Returns: None.
*---------------------------------------------------------------------------*/
static void ReadUserInfo(void)
{
// ※hyenaでは、NITRO本体設定データはリードしない。
u8 *p = OS_GetSystemWork()->nvramUserInfo;
// 無線MACアドレスをユーザー情報の後ろに展開
{
u8 wMac[6];
// NVRAMからMACアドレスを読み出し
NVRAM_ReadDataBytes(NVRAM_CONFIG_MACADDRESS_ADDRESS, 6, wMac);
// 展開先アドレスを計算
p = (u8 *)((u32)p + ((sizeof(NVRAMConfig) + 3) & ~0x00000003));
// 共有領域に展開
MI_CpuCopy8(wMac, p, 6);
}
#ifdef WM_PRECALC_ALLOWEDCHANNEL
// 使用可能チャンネルから使用許可チャンネルを計算
{
u16 enableChannel;
u16 allowedChannel;
// 使用可能チャンネルを読み出し
NVRAM_ReadDataBytes(NVRAM_CONFIG_ENABLECHANNEL_ADDRESS, 2, (u8 *)(&enableChannel));
// 使用許可チャンネルを計算
allowedChannel = WMSP_GetAllowedChannel((u16)(enableChannel >> 1));
// 展開先アドレスを計算(MACアドレスの後ろの2バイト)
p = (u8 *)((u32)p + 6);
// 共有領域に展開
*((u16 *)p) = allowedChannel;
}
#endif
}
/*---------------------------------------------------------------------------*
Name: AdjustVolume
Description: 328
Arguments: None.
Returns: None.
*---------------------------------------------------------------------------*/
void AdjustVolume(void)
{
u8 volume = MCU_GetVolume();
u8 adjust;
if ( volume < 2 )
{
adjust = 0;
}
else if ( volume < 5 )
{
adjust = 2;
}
else if ( volume < 9 )
{
adjust = 6;
}
else if ( volume < 14 )
{
adjust = 11;
}
else if ( volume < 19 )
{
adjust = 16;
}
else if ( volume < 24 )
{
adjust = 21;
}
else if ( volume < 29 )
{
adjust = 26;
}
else
{
adjust = 31;
}
OS_TPrintf("Current volume: %d.\n", volume);
if ( volume != adjust )
{
OS_TPrintf("Volume adjusts to %d.\n", adjust);
MCU_SetVolume(adjust);
}
}
/*---------------------------------------------------------------------------*
Name: VBlankIntr
Description: V
Arguments: None.
Returns: None.
*---------------------------------------------------------------------------*/
extern BOOL PMi_Initialized;
void PM_SelfBlinkProc(void);
static void
VBlankIntr(void)
{
if (PMi_Initialized)
{
PM_SelfBlinkProc();
}
}

View File

@ -0,0 +1,49 @@
#! make -f
#----------------------------------------------------------------------------
# Project: TwlFirm - tools - nandfirm-ds-launcher
# 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.
#
# $Log: $
# $NoKeywords: $
#----------------------------------------------------------------------------
TWL_PROC = ARM7
SUBDIRS =
LINCLUDES = ../include
#----------------------------------------------------------------------------
TARGET_BIN = wram_regs.rbin
SRCS = \
wram_regs.c \
#SRCDIR = # using default
#LCFILE = # using default
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
INSTALL_DIR = .
INSTALL_TARGETS = $(BINDIR)/$(TARGET_BIN)
#----------------------------------------------------------------------------
do-build: $(TARGETS)
include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
#===== End of Makefile =====

View File

@ -0,0 +1,3 @@
obj/ARM7-TS.LTD/Release/wram_regs.o: wram_regs.c \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/cache/include/twl.h.16M.ARM7.CODE_ARM.CW.CW_FORCE_EXPORT_SUPPORT.LINK_ISTD.RELEASE.TS.TS_VERSION-400.TWL.TWLLTD.C.mch \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/mi.h

View File

@ -0,0 +1,123 @@
/*---------------------------------------------------------------------------*
Project: TwlIPL - wram_regs
File: wram_regs.c
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$
*---------------------------------------------------------------------------*/
#include <twl/mi.h>
#define HW_HYENA_WRAM_A_OFS (HW_WRAM_A_LTD - HW_WRAM_BASE)
#define HW_HYENA_WRAM_A_OFS_END (HW_HYENA_WRAM_A_OFS + HW_WRAM_A_SIZE)
#define HW_HYENA_WRAM_B_OFS (HW_WRAM_B - HW_WRAM_BASE)
#define HW_HYENA_WRAM_B_OFS_END (HW_HYENA_WRAM_B_OFS + HW_WRAM_B_SIZE * 2)
#define HW_HYENA_WRAM_C_OFS (HW_WRAM_C - HW_WRAM_BASE)
#define HW_HYENA_WRAM_C_OFS_END (HW_HYENA_WRAM_C_OFS + HW_WRAM_C_SIZE)
// MAP_TS_LTD for hyena
// WRAM-A Lock:ON, Master:ARM7, Enable:Slot0-3(256Kbytes), Address(7):0x037c0000-0x037fffff, Address(9):None
// WRAM-B Lock:ON, Master:ARM7, Enable:Slot4-7(128Kbytes), Address(7):0x03760000-0x0377ffff, Address(9):None
// Address(7):0x037a0000-0x037bffff, Address(9):None
// WRAM-B Lock:OFF, Master:ARM9, Enable:Slot0-3(128Kbytes), Address(7):0x03740000-0x0375ffff, Address(9):0x03740000-0x0375ffff
// Address(7):0x03780000-0x0379ffff, Address(9):0x03780000-0x0379ffff
// WRAM-C Lock:OFF, Msster:ARM9, Enable:Slot0-7(256Kbytes), Address(7):0x03700000-0x0373ffff, Address(9):0x03700000-0x0373ffff
// WRAM-0 Master:ARM9, (16Kbytes), Address(7):0x03040000-0x03043fff, Address(9):0x03040000-0x03043fff
// WRAM-1 Master:ARM9, (16Kbytes), Address(7):0x03044000-0x03047fff, Address(9):0x03044000-0x03047fff
// MAP_TS_LTD original
// WRAM-A Lock:ON, Master:ARM7, Enable:Slot0-3(256Kbytes), Address(7):0x037c0000-0x037fffff, Address(9):None
// WRAM-B Lock:OFF, Master:ARM9, Enable:Slot0-7(256Kbytes), Address(7):0x03740000-0x037bffff, Address(9):0x03740000-0x037bffff
// WRAM-C Lock:OFF, Msster:ARM9, Enable:Slot0-7(256Kbytes), Address(7):0x03700000-0x0373ffff, Address(9):0x03700000-0x0373ffff
// WRAM-0 Master:ARM9, (16Kbytes), Address(7):0x03040000-0x03043fff, Address(9):0x03040000-0x03043fff
// WRAM-1 Master:ARM9, (16Kbytes), Address(7):0x03044000-0x03047fff, Address(9):0x03044000-0x03047fff
u32 HYENA_WramReg[0x30/sizeof(u32)] =
{
// ARM9
// WRAM-A
REG_MI_MBK1_FIELD(
TRUE, MI_WRAM_OFFSET_192KB/2, MI_WRAM_ARM7,
TRUE, MI_WRAM_OFFSET_128KB/2, MI_WRAM_ARM7,
TRUE, MI_WRAM_OFFSET_64KB/2, MI_WRAM_ARM7,
TRUE, MI_WRAM_OFFSET_0KB/2, MI_WRAM_ARM7
),
// WRAM-B
REG_MI_MBK2_FIELD(
TRUE, MI_WRAM_OFFSET_96KB, MI_WRAM_ARM9,
TRUE, MI_WRAM_OFFSET_64KB, MI_WRAM_ARM9,
TRUE, MI_WRAM_OFFSET_32KB, MI_WRAM_ARM9,
TRUE, MI_WRAM_OFFSET_0KB, MI_WRAM_ARM9
),
REG_MI_MBK3_FIELD(
TRUE, MI_WRAM_OFFSET_224KB, MI_WRAM_ARM7,
TRUE, MI_WRAM_OFFSET_192KB, MI_WRAM_ARM7,
TRUE, MI_WRAM_OFFSET_160KB, MI_WRAM_ARM7,
TRUE, MI_WRAM_OFFSET_128KB, MI_WRAM_ARM7
),
// WRAM-C
REG_MI_MBK4_FIELD(
TRUE, MI_WRAM_OFFSET_96KB, MI_WRAM_ARM9,
TRUE, MI_WRAM_OFFSET_64KB, MI_WRAM_ARM9,
TRUE, MI_WRAM_OFFSET_32KB, MI_WRAM_ARM9,
TRUE, MI_WRAM_OFFSET_0KB, MI_WRAM_ARM9
),
REG_MI_MBK5_FIELD(
TRUE, MI_WRAM_OFFSET_224KB, MI_WRAM_ARM9,
TRUE, MI_WRAM_OFFSET_192KB, MI_WRAM_ARM9,
TRUE, MI_WRAM_OFFSET_160KB, MI_WRAM_ARM9,
TRUE, MI_WRAM_OFFSET_128KB, MI_WRAM_ARM9
),
REG_MI_MBK6_FIELD( NULL >> 16,
MI_WRAM_IMAGE_256KB,
NULL >> 16
),
REG_MI_MBK7_FIELD( HW_HYENA_WRAM_B_OFS_END >> 15,
MI_WRAM_IMAGE_256KB,
HW_HYENA_WRAM_B_OFS >> 15
),
REG_MI_MBK8_FIELD( HW_HYENA_WRAM_C_OFS_END >> 15,
MI_WRAM_IMAGE_256KB,
HW_HYENA_WRAM_C_OFS >> 15
),
// ARM7
REG_MI_MBK6_FIELD( HW_HYENA_WRAM_A_OFS_END >> 16,
MI_WRAM_IMAGE_256KB,
HW_HYENA_WRAM_A_OFS >> 16
),
REG_MI_MBK7_FIELD( HW_HYENA_WRAM_B_OFS_END >> 15,
MI_WRAM_IMAGE_256KB,
HW_HYENA_WRAM_B_OFS >> 15
),
REG_MI_MBK8_FIELD( HW_HYENA_WRAM_C_OFS_END >> 15,
MI_WRAM_IMAGE_256KB,
HW_HYENA_WRAM_C_OFS >> 15
),
// WRAM Lock
(u32)(
(0x0F << 0) |
(0xF0 << 8) |
(0x00 << 16) |
// WRAM-0/1
(0 << 24) |
// VRAM-C
(7 << 26) |
// VRAM-D
(7 << 29)
),
};

Binary file not shown.

View File

@ -0,0 +1,132 @@
#! make -f
#----------------------------------------------------------------------------
# Project: TwlIPL - components - jackal.TWL
# File: Makefile
#
# Copyright 2008 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$
#----------------------------------------------------------------------------
# Main memory にコードを退避させたathdrvを使用。(for test)
TMP_WL_MAIN ?= FALSE
TARGET_FIRM = SYSTEMMENU
override TARGET_PLATFORM = TWL
override TWL_PROC = ARM7
override TWL_ARCHGEN = LIMITED
override TWL_PLATFORM = TS
TWL_NO_STD_PCHDR = True
override TARGET_CODEGEN = ARM
FIRM_LIBSUFFIX = .firm$(ARCHGEN_TYPE)$(CODEGEN_ARCH)
#----------------------------------------------------------------------------
SUBDIRS = $(SYSMENU_ROOT)/build/libraries/aes \
wram_regs
HYENA_SRCDIR = ../hyena.TWL/src
SRCS = $(HYENA_SRCDIR)/crt0.LTD.c \
$(HYENA_SRCDIR)/main.c \
$(HYENA_SRCDIR)/initScfg.c
TARGET_NAME = jackal
TARGET_NEF = $(TARGET_NAME).tef
LCFILE_SPEC = $(TARGET_NAME)$(CODEGEN_ARCH).lsf
LCFILE_TEMPLATE = $(TARGET_NAME).lcf.template
LDRES_TEMPLATE = $(ROOT)/build/components/armadillo.TWL/armadillo.response.template
CRT0_O = $(OBJDIR)/crt0.LTD.o
# スタック不足防止の為、インライン展開せずにコンパイルする
CCFLAGS_OPT = -O4 -inline off
#----------------------------------------------------------------------------
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
# crt0.o 、 libpm_sp および libnwm_sp は、ローカルでビルドしたものを使用するので、除外する。
ifeq ($(TMP_WL_MAIN), TRUE)
GLIBRARIES := $(filter-out $(CRT0_O) libpm_sp$(TWL_LIBSUFFIX).a libnwm_sp$(TWL_LIBSUFFIX).a libathdrv_sp$(TWL_LIBSUFFIX).a,$(GLIBRARIES))
else
GLIBRARIES := $(filter-out $(CRT0_O) libpm_sp$(TWL_LIBSUFFIX).a libnwm_sp$(TWL_LIBSUFFIX).a,$(GLIBRARIES))
endif
MACRO_FLAGS += -DSDK_ARM7COMP_LTD -DSDK_SEA \
-DSDK_NOINIT \
-DSDK_SYSMENU_BUILD
MAKELCF_FLAGS += -DADDRESS_FLXMAIN='0x02280200' \
-DADDRESS_BOOTCORE='0x0380f000' \
-DCRT0_O='$(CRT0_O)' \
-DFIRM_LIBSUFFIX='$(FIRM_LIBSUFFIX)'
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'
#--------------------------------
# install target
#--------------------------------
INSTALL_TARGETS = $(BINDIR)/$(TARGET_NAME).tef \
$(BINDIR)/$(TARGET_NAME).TWL.FLX.sbin \
$(BINDIR)/$(TARGET_NAME)_defs.TWL.FLX.sbin \
$(BINDIR)/$(TARGET_NAME).TWL.LTD.sbin \
$(BINDIR)/$(TARGET_NAME)_defs.TWL.LTD.sbin
INSTALL_DIR = $(TWL_INSTALL_COMPONENTSDIR)/$(TARGET_NAME)/$(TWL_BUILDTYPE)
LINCLUDES = $(ROOT)/build/libraries/spi/ARM7/include \
$(ROOT)/build/libraries/spi/ARM7/pm/include \
$(ROOT)/build/libraries/init/common/include \
$(ROOT)/build/libraries/reboot/common/include \
$(SYSMENU_ROOT)/build/libraries_sysmenu/sysmenu/common/include
SYSMENU_LIBS = \
libsysmenu_sp$(TWL_LIBSUFFIX).a \
libsysmmcu_sp$(TWL_LIBSUFFIX).a \
libboot_sp$(TWL_LIBSUFFIX).a \
libds_sp$(TWL_LIBSUFFIX).a \
libhotsw_sp$(TWL_LIBSUFFIX).a \
libdht_sp$(TWL_LIBSUFFIX).a \
libpm_sp.SYSMENU$(TWL_LIBSUFFIX).a \
libnwm_sp.SYSMENU$(TWL_LIBSUFFIX).a
ifeq ($(TMP_WL_MAIN), TRUE)
SYSMENU_LIBS += \
libathdrv_sp.SYSMENU$(TWL_LIBSUFFIX).a
endif
SDK_APPEND_LIBS = \
libwl_sp$(TWL_LIBSUFFIX).a \
libaes_sp$(FIRM_LIBSUFFIX).a \
libsea_sp$(TWL_LIBSUFFIX).a \
libreboot_sp$(TWL_LIBSUFFIX).a
LLIBRARIES += $(SYSMENU_LIBS) $(SDK_APPEND_LIBS)
LLIBRARY_DIRS += ./
ifeq ($(TMP_WL_MAIN), TRUE)
LLIBRARY_DIRS += $(SYSMENU_ROOT)/lib/TwlWireless/$(TWL_LIBTYPE)
endif
LDEPENDS_NEF = $(TWL_LIBS) $(LLIBRARIES)
do-build: $(TARGETS)
#----------------------------------------------------------------------------
include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
#----------------------------------------------------------------------------
#===== End of Makefile =====

View File

@ -0,0 +1,703 @@
#---------------------------------------------------------------------------
# Project: TwlSDK - components - armadillo.TWL
# File: armadillo.lcf.template
#
# Copyright 2008 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$
#---------------------------------------------------------------------------
MEMORY
{
jackal (RWX) : ORIGIN = 0x02280200, LENGTH = 0x0 > jackal.TWL.FLX.sbin
binary.STATIC_FOOTER (RWX) : ORIGIN = 0, LENGTH = 0x0 >> jackal.TWL.FLX.sbin
jackal_defsF (RW) : ORIGIN = 0, LENGTH = 0x0 > jackal_defs.TWL.FLX.sbin
binary.LTDAUTOLOAD_TOP (RW) : ORIGIN = 0, LENGTH = 0x0 > jackal.TWL.LTD.sbin
SCRWRAM (RWX) : ORIGIN = 0x03758000, LENGTH = 0x0 >> jackal.TWL.LTD.sbin
binary.LTDAUTOLOAD_INFO (RWX) : ORIGIN = 0, LENGTH = 0x0 >> jackal.TWL.LTD.sbin
jackal_defsL (RW) : ORIGIN = 0, LENGTH = 0x0 > jackal_defs.TWL.LTD.sbin
check.WORKRAM (RWX) : ORIGIN = 0x03740000, LENGTH = 0xd0000 > workram.check
}
KEEP_SECTION
{
.sinit
}
SECTIONS
{
############################ STATIC #################################
.jackal:
{
ALIGNALL(4);
. = ALIGN(4);
#
# Definition to refer overlay segment, when same name symbols exist in multiple overlays.
#
#
# TEXT BLOCK: READ ONLY
#
SDK_STATIC_START =.;
OBJECT(_start,*)
initScfg.o (.text)
crt0.LTD.o (.text)
libwm_sp.TWL.LTD.a (.text)
libmic_sp.TWL.LTD.a (.text)
libmicex_sp.TWL.LTD.a (.text)
initScfg.o (.rodata)
crt0.LTD.o (.rodata)
libwm_sp.TWL.LTD.a (.rodata)
libmic_sp.TWL.LTD.a (.rodata)
libmicex_sp.TWL.LTD.a (.rodata)
initScfg.o (.init)
crt0.LTD.o (.init)
. = ALIGN(4);
SDK_STATIC_SINIT_START =.;
initScfg.o (.ctor)
crt0.LTD.o (.ctor)
initScfg.o (.sinit)
crt0.LTD.o (.sinit)
WRITEW 0;
#
# DATA BLOCK: READ WRITE
#
. = ALIGN(4);
initScfg.o (.sdata)
crt0.LTD.o (.sdata)
initScfg.o (.data)
crt0.LTD.o (.data)
libwm_sp.TWL.LTD.a (.data)
libmic_sp.TWL.LTD.a (.data)
libmicex_sp.TWL.LTD.a (.data)
. = ALIGN(4);
SDK_STATIC_END =.;
SDK_STATIC_SIZE = SDK_STATIC_END - SDK_STATIC_START;
__sinit__ = SDK_STATIC_SINIT_START; # for static initializer
} > jackal
.jackal.bss:
{
ALIGNALL(4);
. = ALIGN(4);
#
# Definition to refer overlay segment, when same name symbols exist in multiple overlays.
#
#
# BSS BLOCK
#
SDK_STATIC_BSS_START =.;
initScfg.o (.sbss)
crt0.LTD.o (.sbss)
initScfg.o (.bss)
crt0.LTD.o (.bss)
. = ALIGN(4);
SDK_STATIC_BSS_END = .;
SDK_STATIC_BSS_SIZE = SDK_STATIC_BSS_END - SDK_STATIC_BSS_START;
} >> jackal
############################ STATIC_FOOTER ##########################
.binary.STATIC_FOOTER:
{
WRITEW 0xdec00621; # LE(0x2106C0DE) = NITRO CODE
WRITEW _start_ModuleParams - ADDR(.jackal);
WRITEW 0; # NO DIGEST
WRITEW _start_LtdModuleParams - ADDR(.jackal);
} > binary.STATIC_FOOTER
############################ OVERLAYDEFS ############################
.jackal_defsF:
{
### jackal module information
WRITEW ADDR(.jackal); # load address
WRITEW _start; # entry address
WRITEW SDK_STATIC_SIZE; # size of module
WRITEW _start_AutoloadDoneCallback; # callback autoload done
} > jackal_defsF
########################### LTDAUTOLOADS ############################
SDK_LTDAUTOLOAD_TOP_START = 0x02f00000;
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_BSS_END = 0x03740000;
.binary.LTDAUTOLOAD_TOP:
{
WRITEW 0;
} > binary.LTDAUTOLOAD_TOP
.SCRWRAM:
{
ALIGNALL(4);
. = ALIGN(4);
#
# Definition to refer overlay segment, when same name symbols exist in multiple overlays.
#
#
# TEXT BLOCK: READ ONLY
#
SDK_LTDAUTOLOAD.SCRWRAM.START =.;
main.o (.text)
libsubpsyscall.a (.text)
libsyscall_sp.twl.a (.text)
MSL_C_NITRO_Ai_LE.a (.text)
MSL_Extras_NITRO_Ai_LE.a (.text)
MSL_CPP_NITRO_Ai_LE.a (.text)
FP_fastI_v4t_LE.a (.text)
NITRO_Runtime_Ai_LE.a (.text)
libistdsubparm.a (.text)
libstubsisd_sp.TWL.LTD.a (.text)
libsea_sp.TWL.LTD.a (.text)
libcrypto_sp.TWL.LTD.a (.text)
libos_sp.TWL.LTD.a (.text)
libmi_sp.TWL.LTD.a (.text)
libstd_sp.TWL.LTD.a (.text)
libmath_sp.TWL.LTD.a (.text)
libpxi_sp.TWL.LTD.a (.text)
libexi_sp.TWL.LTD.a (.text)
libi2c_sp.TWL.LTD.a (.text)
libsdio_sp.TWL.LTD.a (.text)
libpad_sp.TWL.LTD.a (.text)
libscfg_sp.TWL.LTD.a (.text)
libmcu_sp.TWL.LTD.a (.text)
libcdc_sp.TWL.LTD.a (.text)
libsnd_sp.TWL.LTD.a (.text)
libsndex_sp.TWL.LTD.a (.text)
libspi_sp.TWL.LTD.a (.text)
libpm_sp.SYSMENU.TWL.LTD.a (.text)
libtp_sp.TWL.LTD.a (.text)
libtpex_sp.TWL.LTD.a (.text)
libnvram_sp.TWL.LTD.a (.text)
librtc_sp.TWL.LTD.a (.text)
libfatfs_sp.TWL.LTD.a (.text)
libwl_sp.TWL.LTD.a (.text)
libathdrv_sp.TWL.LTD.a (.text)
libfs_sp.TWL.LTD.a (.text)
libcard_sp.TWL.LTD.a (.text)
libcamera_sp.TWL.LTD.a (.text)
libnwm_sp.SYSMENU.TWL.LTD.a (.text)
libwvr_sp.TWL.LTD.a (.text)
libboot_sp.TWL.LTD.a (.text)
libreboot_sp.TWL.LTD.a (.text)
libhotsw_sp.TWL.LTD.a (.text)
libreloc_info_sp.TWL.LTD.a (.text)
libsysmenu_sp.TWL.LTD.a (.text)
libsysmmcu_sp.TWL.LTD.a (.text)
libds_sp.TWL.LTD.a (.text)
libaes_sp.firm.LTD.a (.text)
libdht_sp.TWL.LTD.a (.text)
* (.exception)
. = ALIGN(4);
SDK_STATIC_ETABLE_START =.;
__exception_table_start__ =.;
EXCEPTION
__exception_table_end__ =.;
SDK_STATIC_ETABLE_END =.;
main.o (.rodata)
libsubpsyscall.a (.rodata)
libsyscall_sp.twl.a (.rodata)
MSL_C_NITRO_Ai_LE.a (.rodata)
MSL_Extras_NITRO_Ai_LE.a (.rodata)
MSL_CPP_NITRO_Ai_LE.a (.rodata)
FP_fastI_v4t_LE.a (.rodata)
NITRO_Runtime_Ai_LE.a (.rodata)
libistdsubparm.a (.rodata)
libstubsisd_sp.TWL.LTD.a (.rodata)
libsea_sp.TWL.LTD.a (.rodata)
libcrypto_sp.TWL.LTD.a (.rodata)
libos_sp.TWL.LTD.a (.rodata)
libmi_sp.TWL.LTD.a (.rodata)
libstd_sp.TWL.LTD.a (.rodata)
libmath_sp.TWL.LTD.a (.rodata)
libpxi_sp.TWL.LTD.a (.rodata)
libexi_sp.TWL.LTD.a (.rodata)
libi2c_sp.TWL.LTD.a (.rodata)
libsdio_sp.TWL.LTD.a (.rodata)
libpad_sp.TWL.LTD.a (.rodata)
libscfg_sp.TWL.LTD.a (.rodata)
libmcu_sp.TWL.LTD.a (.rodata)
libcdc_sp.TWL.LTD.a (.rodata)
libsnd_sp.TWL.LTD.a (.rodata)
libsndex_sp.TWL.LTD.a (.rodata)
libspi_sp.TWL.LTD.a (.rodata)
libpm_sp.SYSMENU.TWL.LTD.a (.rodata)
libtp_sp.TWL.LTD.a (.rodata)
libtpex_sp.TWL.LTD.a (.rodata)
libnvram_sp.TWL.LTD.a (.rodata)
librtc_sp.TWL.LTD.a (.rodata)
libfatfs_sp.TWL.LTD.a (.rodata)
libwl_sp.TWL.LTD.a (.rodata)
libathdrv_sp.TWL.LTD.a (.rodata)
libfs_sp.TWL.LTD.a (.rodata)
libcard_sp.TWL.LTD.a (.rodata)
libcamera_sp.TWL.LTD.a (.rodata)
libnwm_sp.SYSMENU.TWL.LTD.a (.rodata)
libwvr_sp.TWL.LTD.a (.rodata)
libboot_sp.TWL.LTD.a (.rodata)
libreboot_sp.TWL.LTD.a (.rodata)
libhotsw_sp.TWL.LTD.a (.rodata)
libreloc_info_sp.TWL.LTD.a (.rodata)
libsysmenu_sp.TWL.LTD.a (.rodata)
libsysmmcu_sp.TWL.LTD.a (.rodata)
libds_sp.TWL.LTD.a (.rodata)
libaes_sp.firm.LTD.a (.rodata)
libdht_sp.TWL.LTD.a (.rodata)
main.o (.init)
libsubpsyscall.a (.init)
libsyscall_sp.twl.a (.init)
MSL_C_NITRO_Ai_LE.a (.init)
MSL_Extras_NITRO_Ai_LE.a (.init)
MSL_CPP_NITRO_Ai_LE.a (.init)
FP_fastI_v4t_LE.a (.init)
NITRO_Runtime_Ai_LE.a (.init)
libistdsubparm.a (.init)
libstubsisd_sp.TWL.LTD.a (.init)
libsea_sp.TWL.LTD.a (.init)
libcrypto_sp.TWL.LTD.a (.init)
libos_sp.TWL.LTD.a (.init)
libmi_sp.TWL.LTD.a (.init)
libstd_sp.TWL.LTD.a (.init)
libmath_sp.TWL.LTD.a (.init)
libpxi_sp.TWL.LTD.a (.init)
libexi_sp.TWL.LTD.a (.init)
libi2c_sp.TWL.LTD.a (.init)
libsdio_sp.TWL.LTD.a (.init)
libpad_sp.TWL.LTD.a (.init)
libscfg_sp.TWL.LTD.a (.init)
libmcu_sp.TWL.LTD.a (.init)
libcdc_sp.TWL.LTD.a (.init)
libsnd_sp.TWL.LTD.a (.init)
libsndex_sp.TWL.LTD.a (.init)
libspi_sp.TWL.LTD.a (.init)
libpm_sp.SYSMENU.TWL.LTD.a (.init)
libtp_sp.TWL.LTD.a (.init)
libtpex_sp.TWL.LTD.a (.init)
libnvram_sp.TWL.LTD.a (.init)
librtc_sp.TWL.LTD.a (.init)
libfatfs_sp.TWL.LTD.a (.init)
libwl_sp.TWL.LTD.a (.init)
libathdrv_sp.TWL.LTD.a (.init)
libfs_sp.TWL.LTD.a (.init)
libcard_sp.TWL.LTD.a (.init)
libcamera_sp.TWL.LTD.a (.init)
libnwm_sp.SYSMENU.TWL.LTD.a (.init)
libwvr_sp.TWL.LTD.a (.init)
libboot_sp.TWL.LTD.a (.init)
libreboot_sp.TWL.LTD.a (.init)
libhotsw_sp.TWL.LTD.a (.init)
libreloc_info_sp.TWL.LTD.a (.init)
libsysmenu_sp.TWL.LTD.a (.init)
libsysmmcu_sp.TWL.LTD.a (.init)
libds_sp.TWL.LTD.a (.init)
libaes_sp.firm.LTD.a (.init)
libdht_sp.TWL.LTD.a (.init)
. = ALIGN(4);
SDK_LTDAUTOLOAD.SCRWRAM.SINIT_START =.;
main.o (.ctor)
libsubpsyscall.a (.ctor)
libsyscall_sp.twl.a (.ctor)
MSL_C_NITRO_Ai_LE.a (.ctor)
MSL_Extras_NITRO_Ai_LE.a (.ctor)
MSL_CPP_NITRO_Ai_LE.a (.ctor)
FP_fastI_v4t_LE.a (.ctor)
NITRO_Runtime_Ai_LE.a (.ctor)
libistdsubparm.a (.ctor)
libstubsisd_sp.TWL.LTD.a (.ctor)
libsea_sp.TWL.LTD.a (.ctor)
libcrypto_sp.TWL.LTD.a (.ctor)
libos_sp.TWL.LTD.a (.ctor)
libmi_sp.TWL.LTD.a (.ctor)
libstd_sp.TWL.LTD.a (.ctor)
libmath_sp.TWL.LTD.a (.ctor)
libpxi_sp.TWL.LTD.a (.ctor)
libexi_sp.TWL.LTD.a (.ctor)
libi2c_sp.TWL.LTD.a (.ctor)
libsdio_sp.TWL.LTD.a (.ctor)
libpad_sp.TWL.LTD.a (.ctor)
libscfg_sp.TWL.LTD.a (.ctor)
libmcu_sp.TWL.LTD.a (.ctor)
libcdc_sp.TWL.LTD.a (.ctor)
libsnd_sp.TWL.LTD.a (.ctor)
libsndex_sp.TWL.LTD.a (.ctor)
libspi_sp.TWL.LTD.a (.ctor)
libpm_sp.SYSMENU.TWL.LTD.a (.ctor)
libtp_sp.TWL.LTD.a (.ctor)
libtpex_sp.TWL.LTD.a (.ctor)
libnvram_sp.TWL.LTD.a (.ctor)
librtc_sp.TWL.LTD.a (.ctor)
libfatfs_sp.TWL.LTD.a (.ctor)
libwl_sp.TWL.LTD.a (.ctor)
libathdrv_sp.TWL.LTD.a (.ctor)
libfs_sp.TWL.LTD.a (.ctor)
libcard_sp.TWL.LTD.a (.ctor)
libcamera_sp.TWL.LTD.a (.ctor)
libnwm_sp.SYSMENU.TWL.LTD.a (.ctor)
libwvr_sp.TWL.LTD.a (.ctor)
libboot_sp.TWL.LTD.a (.ctor)
libreboot_sp.TWL.LTD.a (.ctor)
libhotsw_sp.TWL.LTD.a (.ctor)
libreloc_info_sp.TWL.LTD.a (.ctor)
libsysmenu_sp.TWL.LTD.a (.ctor)
libsysmmcu_sp.TWL.LTD.a (.ctor)
libds_sp.TWL.LTD.a (.ctor)
libaes_sp.firm.LTD.a (.ctor)
libdht_sp.TWL.LTD.a (.ctor)
main.o (.sinit)
libsubpsyscall.a (.sinit)
libsyscall_sp.twl.a (.sinit)
MSL_C_NITRO_Ai_LE.a (.sinit)
MSL_Extras_NITRO_Ai_LE.a (.sinit)
MSL_CPP_NITRO_Ai_LE.a (.sinit)
FP_fastI_v4t_LE.a (.sinit)
NITRO_Runtime_Ai_LE.a (.sinit)
libistdsubparm.a (.sinit)
libstubsisd_sp.TWL.LTD.a (.sinit)
libsea_sp.TWL.LTD.a (.sinit)
libcrypto_sp.TWL.LTD.a (.sinit)
libos_sp.TWL.LTD.a (.sinit)
libmi_sp.TWL.LTD.a (.sinit)
libstd_sp.TWL.LTD.a (.sinit)
libmath_sp.TWL.LTD.a (.sinit)
libpxi_sp.TWL.LTD.a (.sinit)
libexi_sp.TWL.LTD.a (.sinit)
libi2c_sp.TWL.LTD.a (.sinit)
libsdio_sp.TWL.LTD.a (.sinit)
libpad_sp.TWL.LTD.a (.sinit)
libscfg_sp.TWL.LTD.a (.sinit)
libmcu_sp.TWL.LTD.a (.sinit)
libcdc_sp.TWL.LTD.a (.sinit)
libsnd_sp.TWL.LTD.a (.sinit)
libsndex_sp.TWL.LTD.a (.sinit)
libspi_sp.TWL.LTD.a (.sinit)
libpm_sp.SYSMENU.TWL.LTD.a (.sinit)
libtp_sp.TWL.LTD.a (.sinit)
libtpex_sp.TWL.LTD.a (.sinit)
libnvram_sp.TWL.LTD.a (.sinit)
librtc_sp.TWL.LTD.a (.sinit)
libfatfs_sp.TWL.LTD.a (.sinit)
libwl_sp.TWL.LTD.a (.sinit)
libathdrv_sp.TWL.LTD.a (.sinit)
libfs_sp.TWL.LTD.a (.sinit)
libcard_sp.TWL.LTD.a (.sinit)
libcamera_sp.TWL.LTD.a (.sinit)
libnwm_sp.SYSMENU.TWL.LTD.a (.sinit)
libwvr_sp.TWL.LTD.a (.sinit)
libboot_sp.TWL.LTD.a (.sinit)
libreboot_sp.TWL.LTD.a (.sinit)
libhotsw_sp.TWL.LTD.a (.sinit)
libreloc_info_sp.TWL.LTD.a (.sinit)
libsysmenu_sp.TWL.LTD.a (.sinit)
libsysmmcu_sp.TWL.LTD.a (.sinit)
libds_sp.TWL.LTD.a (.sinit)
libaes_sp.firm.LTD.a (.sinit)
libdht_sp.TWL.LTD.a (.sinit)
WRITEW 0;
#
# DATA BLOCK: READ WRITE BLOCK
#
. = ALIGN(4);
main.o (.sdata)
libsubpsyscall.a (.sdata)
libsyscall_sp.twl.a (.sdata)
MSL_C_NITRO_Ai_LE.a (.sdata)
MSL_Extras_NITRO_Ai_LE.a (.sdata)
MSL_CPP_NITRO_Ai_LE.a (.sdata)
FP_fastI_v4t_LE.a (.sdata)
NITRO_Runtime_Ai_LE.a (.sdata)
libistdsubparm.a (.sdata)
libstubsisd_sp.TWL.LTD.a (.sdata)
libsea_sp.TWL.LTD.a (.sdata)
libcrypto_sp.TWL.LTD.a (.sdata)
libos_sp.TWL.LTD.a (.sdata)
libmi_sp.TWL.LTD.a (.sdata)
libstd_sp.TWL.LTD.a (.sdata)
libmath_sp.TWL.LTD.a (.sdata)
libpxi_sp.TWL.LTD.a (.sdata)
libexi_sp.TWL.LTD.a (.sdata)
libi2c_sp.TWL.LTD.a (.sdata)
libsdio_sp.TWL.LTD.a (.sdata)
libpad_sp.TWL.LTD.a (.sdata)
libscfg_sp.TWL.LTD.a (.sdata)
libmcu_sp.TWL.LTD.a (.sdata)
libcdc_sp.TWL.LTD.a (.sdata)
libsnd_sp.TWL.LTD.a (.sdata)
libsndex_sp.TWL.LTD.a (.sdata)
libspi_sp.TWL.LTD.a (.sdata)
libpm_sp.SYSMENU.TWL.LTD.a (.sdata)
libtp_sp.TWL.LTD.a (.sdata)
libtpex_sp.TWL.LTD.a (.sdata)
libnvram_sp.TWL.LTD.a (.sdata)
librtc_sp.TWL.LTD.a (.sdata)
libfatfs_sp.TWL.LTD.a (.sdata)
libwl_sp.TWL.LTD.a (.sdata)
libathdrv_sp.TWL.LTD.a (.sdata)
libfs_sp.TWL.LTD.a (.sdata)
libcard_sp.TWL.LTD.a (.sdata)
libcamera_sp.TWL.LTD.a (.sdata)
libnwm_sp.SYSMENU.TWL.LTD.a (.sdata)
libwvr_sp.TWL.LTD.a (.sdata)
libboot_sp.TWL.LTD.a (.sdata)
libreboot_sp.TWL.LTD.a (.sdata)
libhotsw_sp.TWL.LTD.a (.sdata)
libreloc_info_sp.TWL.LTD.a (.sdata)
libsysmenu_sp.TWL.LTD.a (.sdata)
libsysmmcu_sp.TWL.LTD.a (.sdata)
libds_sp.TWL.LTD.a (.sdata)
libaes_sp.firm.LTD.a (.sdata)
libdht_sp.TWL.LTD.a (.sdata)
main.o (.data)
libsubpsyscall.a (.data)
libsyscall_sp.twl.a (.data)
MSL_C_NITRO_Ai_LE.a (.data)
MSL_Extras_NITRO_Ai_LE.a (.data)
MSL_CPP_NITRO_Ai_LE.a (.data)
FP_fastI_v4t_LE.a (.data)
NITRO_Runtime_Ai_LE.a (.data)
libistdsubparm.a (.data)
libstubsisd_sp.TWL.LTD.a (.data)
libsea_sp.TWL.LTD.a (.data)
libcrypto_sp.TWL.LTD.a (.data)
libos_sp.TWL.LTD.a (.data)
libmi_sp.TWL.LTD.a (.data)
libstd_sp.TWL.LTD.a (.data)
libmath_sp.TWL.LTD.a (.data)
libpxi_sp.TWL.LTD.a (.data)
libexi_sp.TWL.LTD.a (.data)
libi2c_sp.TWL.LTD.a (.data)
libsdio_sp.TWL.LTD.a (.data)
libpad_sp.TWL.LTD.a (.data)
libscfg_sp.TWL.LTD.a (.data)
libmcu_sp.TWL.LTD.a (.data)
libcdc_sp.TWL.LTD.a (.data)
libsnd_sp.TWL.LTD.a (.data)
libsndex_sp.TWL.LTD.a (.data)
libspi_sp.TWL.LTD.a (.data)
libpm_sp.SYSMENU.TWL.LTD.a (.data)
libtp_sp.TWL.LTD.a (.data)
libtpex_sp.TWL.LTD.a (.data)
libnvram_sp.TWL.LTD.a (.data)
librtc_sp.TWL.LTD.a (.data)
libfatfs_sp.TWL.LTD.a (.data)
libwl_sp.TWL.LTD.a (.data)
libathdrv_sp.TWL.LTD.a (.data)
libfs_sp.TWL.LTD.a (.data)
libcard_sp.TWL.LTD.a (.data)
libcamera_sp.TWL.LTD.a (.data)
libnwm_sp.SYSMENU.TWL.LTD.a (.data)
libwvr_sp.TWL.LTD.a (.data)
libboot_sp.TWL.LTD.a (.data)
libreboot_sp.TWL.LTD.a (.data)
libhotsw_sp.TWL.LTD.a (.data)
libreloc_info_sp.TWL.LTD.a (.data)
libsysmenu_sp.TWL.LTD.a (.data)
libsysmmcu_sp.TWL.LTD.a (.data)
libds_sp.TWL.LTD.a (.data)
libaes_sp.firm.LTD.a (.data)
libdht_sp.TWL.LTD.a (.data)
* (.wram)
* (.ltdwram)
* (.rsvwram)
* (.ltdmain)
. = ALIGN(4);
SDK_LTDAUTOLOAD.SCRWRAM.END =.;
SDK_LTDAUTOLOAD.SCRWRAM.SIZE = SDK_LTDAUTOLOAD.SCRWRAM.END - SDK_LTDAUTOLOAD.SCRWRAM.START;
SDK_LTDAUTOLOAD_SIZE = SDK_LTDAUTOLOAD_SIZE + SDK_LTDAUTOLOAD.SCRWRAM.SIZE;
} > SCRWRAM
.SCRWRAM.bss:
{
ALIGNALL(4);
. = ALIGN(4);
#
# Definition to refer overlay segment, when same name symbols exist in multiple overlays.
#
#
# BSS BLOCK
#
SDK_LTDAUTOLOAD.SCRWRAM.BSS_START =.;
main.o (.sbss)
libsubpsyscall.a (.sbss)
libsyscall_sp.twl.a (.sbss)
MSL_C_NITRO_Ai_LE.a (.sbss)
MSL_Extras_NITRO_Ai_LE.a (.sbss)
MSL_CPP_NITRO_Ai_LE.a (.sbss)
FP_fastI_v4t_LE.a (.sbss)
NITRO_Runtime_Ai_LE.a (.sbss)
libistdsubparm.a (.sbss)
libstubsisd_sp.TWL.LTD.a (.sbss)
libsea_sp.TWL.LTD.a (.sbss)
libcrypto_sp.TWL.LTD.a (.sbss)
libos_sp.TWL.LTD.a (.sbss)
libmi_sp.TWL.LTD.a (.sbss)
libstd_sp.TWL.LTD.a (.sbss)
libmath_sp.TWL.LTD.a (.sbss)
libpxi_sp.TWL.LTD.a (.sbss)
libexi_sp.TWL.LTD.a (.sbss)
libi2c_sp.TWL.LTD.a (.sbss)
libsdio_sp.TWL.LTD.a (.sbss)
libpad_sp.TWL.LTD.a (.sbss)
libscfg_sp.TWL.LTD.a (.sbss)
libmcu_sp.TWL.LTD.a (.sbss)
libcdc_sp.TWL.LTD.a (.sbss)
libsnd_sp.TWL.LTD.a (.sbss)
libsndex_sp.TWL.LTD.a (.sbss)
libspi_sp.TWL.LTD.a (.sbss)
libpm_sp.SYSMENU.TWL.LTD.a (.sbss)
libtp_sp.TWL.LTD.a (.sbss)
libtpex_sp.TWL.LTD.a (.sbss)
libnvram_sp.TWL.LTD.a (.sbss)
librtc_sp.TWL.LTD.a (.sbss)
libfatfs_sp.TWL.LTD.a (.sbss)
libwl_sp.TWL.LTD.a (.sbss)
libathdrv_sp.TWL.LTD.a (.sbss)
libfs_sp.TWL.LTD.a (.sbss)
libcard_sp.TWL.LTD.a (.sbss)
libcamera_sp.TWL.LTD.a (.sbss)
libnwm_sp.SYSMENU.TWL.LTD.a (.sbss)
libwvr_sp.TWL.LTD.a (.sbss)
libboot_sp.TWL.LTD.a (.sbss)
libreboot_sp.TWL.LTD.a (.sbss)
libhotsw_sp.TWL.LTD.a (.sbss)
libreloc_info_sp.TWL.LTD.a (.sbss)
libsysmenu_sp.TWL.LTD.a (.sbss)
libsysmmcu_sp.TWL.LTD.a (.sbss)
libds_sp.TWL.LTD.a (.sbss)
libaes_sp.firm.LTD.a (.sbss)
libdht_sp.TWL.LTD.a (.sbss)
main.o (.bss)
libsubpsyscall.a (.bss)
libsyscall_sp.twl.a (.bss)
MSL_C_NITRO_Ai_LE.a (.bss)
MSL_Extras_NITRO_Ai_LE.a (.bss)
MSL_CPP_NITRO_Ai_LE.a (.bss)
FP_fastI_v4t_LE.a (.bss)
NITRO_Runtime_Ai_LE.a (.bss)
libistdsubparm.a (.bss)
libstubsisd_sp.TWL.LTD.a (.bss)
libsea_sp.TWL.LTD.a (.bss)
libcrypto_sp.TWL.LTD.a (.bss)
libos_sp.TWL.LTD.a (.bss)
libmi_sp.TWL.LTD.a (.bss)
libstd_sp.TWL.LTD.a (.bss)
libmath_sp.TWL.LTD.a (.bss)
libpxi_sp.TWL.LTD.a (.bss)
libexi_sp.TWL.LTD.a (.bss)
libi2c_sp.TWL.LTD.a (.bss)
libsdio_sp.TWL.LTD.a (.bss)
libpad_sp.TWL.LTD.a (.bss)
libscfg_sp.TWL.LTD.a (.bss)
libmcu_sp.TWL.LTD.a (.bss)
libcdc_sp.TWL.LTD.a (.bss)
libsnd_sp.TWL.LTD.a (.bss)
libsndex_sp.TWL.LTD.a (.bss)
libspi_sp.TWL.LTD.a (.bss)
libpm_sp.SYSMENU.TWL.LTD.a (.bss)
libtp_sp.TWL.LTD.a (.bss)
libtpex_sp.TWL.LTD.a (.bss)
libnvram_sp.TWL.LTD.a (.bss)
librtc_sp.TWL.LTD.a (.bss)
libfatfs_sp.TWL.LTD.a (.bss)
libwl_sp.TWL.LTD.a (.bss)
libathdrv_sp.TWL.LTD.a (.bss)
libfs_sp.TWL.LTD.a (.bss)
libcard_sp.TWL.LTD.a (.bss)
libcamera_sp.TWL.LTD.a (.bss)
libnwm_sp.SYSMENU.TWL.LTD.a (.bss)
libwvr_sp.TWL.LTD.a (.bss)
libwm_sp.TWL.LTD.a (.bss)
libmic_sp.TWL.LTD.a (.bss)
libmicex_sp.TWL.LTD.a (.bss)
libboot_sp.TWL.LTD.a (.bss)
libreboot_sp.TWL.LTD.a (.bss)
libhotsw_sp.TWL.LTD.a (.bss)
libreloc_info_sp.TWL.LTD.a (.bss)
libsysmenu_sp.TWL.LTD.a (.bss)
libsysmmcu_sp.TWL.LTD.a (.bss)
libds_sp.TWL.LTD.a (.bss)
libaes_sp.firm.LTD.a (.bss)
libdht_sp.TWL.LTD.a (.bss)
* (.wram.bss)
* (.ltdwram.bss)
* (.rsvwram.bss)
* (.ltdmain.bss)
. = ALIGN(4);
SDK_LTDAUTOLOAD.SCRWRAM.BSS_END =.;
SDK_LTDAUTOLOAD_BSS_END =.;
SDK_LTDAUTOLOAD.SCRWRAM.BSS_SIZE = SDK_LTDAUTOLOAD.SCRWRAM.BSS_END - SDK_LTDAUTOLOAD.SCRWRAM.BSS_START;
} >> SCRWRAM
SDK_MOUNT_INFO_TABLE = SDK_LTDAUTOLOAD_BSS_END;
SDK_LTDAUTOLOAD_BSS_END = SDK_MOUNT_INFO_TABLE + 0x400;
######################### LTDAUTOLOAD_INFO ##########################
.binary.LTDAUTOLOAD_INFO:
{
WRITEW ADDR(.SCRWRAM);
WRITEW SDK_LTDAUTOLOAD.SCRWRAM.SIZE;
WRITEW SDK_LTDAUTOLOAD.SCRWRAM.SINIT_START;
WRITEW SDK_LTDAUTOLOAD.SCRWRAM.BSS_SIZE;
} > 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);
########################## LTDOVERLAYDEFS ###########################
.jackal_defsL:
{
### TWL limited extended static module information
WRITEW SDK_LTDAUTOLOAD_TOP_START; # load address
WRITEW SDK_MOUNT_INFO_TABLE; # address of the FS mount information table
WRITEW SDK_LTDAUTOLOAD_SIZE + SDK_LTDAUTOLOAD_TOP_SIZE; # size of module
WRITEW 0; # padding
} > jackal_defsL
############################ OTHERS #################################
SDK_SUBPRIV_ARENA_LO = 0x02ffc000; # メインメモリアリーナはサイズ 0
SDK_SEA_KEY_STORE = SDK_LTDAUTOLOAD_BSS_END;
SDK_WRAM_ARENA_LO = SDK_LTDAUTOLOAD_BSS_END + 0x40;
SDK_IRQ_STACKSIZE = 1024; # allocated in WRAM
SDK_SYS_STACKSIZE = 1024; # allocated in WRAM
SDK_SYS_STACKSIZE_SIGN = (SDK_SYS_STACKSIZE < 0x80000000) * 2 - 1;
.check.WORKRAM:
{
. = SDK_WRAM_ARENA_LO + 0x80 + SDK_IRQ_STACKSIZE + SDK_SYS_STACKSIZE * SDK_SYS_STACKSIZE_SIGN;
} > check.WORKRAM
}

View File

@ -0,0 +1,63 @@
obj/ARM7-TS.LTD/Release/initScfg.o
-l./obj/ARM7-TS.LTD/Release/crt0.LTD.o
-llibwm_sp.TWL.LTD.a
-llibwm_sp.TWL.LTD.a
-llibwm_sp.TWL.LTD.a
-llibmic_sp.TWL.LTD.a
-llibmic_sp.TWL.LTD.a
-llibmic_sp.TWL.LTD.a
-llibmicex_sp.TWL.LTD.a
-llibmicex_sp.TWL.LTD.a
-llibmicex_sp.TWL.LTD.a
obj/ARM7-TS.LTD/Release/main.o
-llibsubpsyscall.a
-llibsyscall_sp.twl.a
-lMSL_C_NITRO_Ai_LE.a
-lMSL_Extras_NITRO_Ai_LE.a
-lMSL_CPP_NITRO_Ai_LE.a
-lFP_fastI_v4t_LE.a
-lNITRO_Runtime_Ai_LE.a
-llibistdsubparm.a
-llibstubsisd_sp.TWL.LTD.a
-llibsea_sp.TWL.LTD.a
-llibcrypto_sp.TWL.LTD.a
-llibos_sp.TWL.LTD.a
-llibmi_sp.TWL.LTD.a
-llibstd_sp.TWL.LTD.a
-llibmath_sp.TWL.LTD.a
-llibpxi_sp.TWL.LTD.a
-llibexi_sp.TWL.LTD.a
-llibi2c_sp.TWL.LTD.a
-llibsdio_sp.TWL.LTD.a
-llibpad_sp.TWL.LTD.a
-llibscfg_sp.TWL.LTD.a
-llibmcu_sp.TWL.LTD.a
-llibcdc_sp.TWL.LTD.a
-llibsnd_sp.TWL.LTD.a
-llibsndex_sp.TWL.LTD.a
-llibspi_sp.TWL.LTD.a
-llibpm_sp.SYSMENU.TWL.LTD.a
-llibtp_sp.TWL.LTD.a
-llibtpex_sp.TWL.LTD.a
-llibnvram_sp.TWL.LTD.a
-llibrtc_sp.TWL.LTD.a
-llibfatfs_sp.TWL.LTD.a
-llibwl_sp.TWL.LTD.a
-llibathdrv_sp.TWL.LTD.a
-llibfs_sp.TWL.LTD.a
-llibcard_sp.TWL.LTD.a
-llibcamera_sp.TWL.LTD.a
-llibnwm_sp.SYSMENU.TWL.LTD.a
-llibwvr_sp.TWL.LTD.a
-llibwm_sp.TWL.LTD.a
-llibmic_sp.TWL.LTD.a
-llibmicex_sp.TWL.LTD.a
-llibboot_sp.TWL.LTD.a
-llibreboot_sp.TWL.LTD.a
-llibhotsw_sp.TWL.LTD.a
-llibreloc_info_sp.TWL.LTD.a
-llibsysmenu_sp.TWL.LTD.a
-llibsysmmcu_sp.TWL.LTD.a
-llibds_sp.TWL.LTD.a
-llibaes_sp.firm.LTD.a
-llibdht_sp.TWL.LTD.a

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,32 @@
obj/ARM7-TS.LTD/Release/crt0.LTD.o: ../hyena.TWL/src/crt0.LTD.c \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/hw/common/armArch.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/emulator.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/printf.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/init/crt0.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/memorymap_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/memorymap.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/mmap_global.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/mmap_main.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/mmap_wram.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/mmap_shared.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/mmap_parameter.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_AES.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SCFG.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SND.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_MI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_GX.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_EXI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_PXI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_PAD.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_OS.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SPI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SD.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/mmap_wramEnv.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/format_rom.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/format_rom_certificate.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/build/libraries/init/common/include/boot_sync.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/code32.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/codereset.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/code32.h

View File

@ -0,0 +1,25 @@
obj/ARM7-TS.LTD/Release/initScfg.o: ../hyena.TWL/src/initScfg.c \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/memorymap_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/memorymap.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/mmap_global.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/mmap_main.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/mmap_wram.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/mmap_shared.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/mmap_parameter.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_AES.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SCFG.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SND.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_MI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_GX.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_EXI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_PXI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_PAD.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_OS.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SPI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SD.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/mmap_wramEnv.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/code32.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/codereset.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/code32.h

View File

@ -0,0 +1,283 @@
obj/ARM7-TS.LTD/Release/main.o: ../hyena.TWL/src/main.c \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/init/crt0.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/memorymap_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/memorymap.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/mmap_global.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/mmap_main.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/mmap_wram.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/mmap_shared.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/mmap_parameter.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_AES.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SCFG.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SND.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_MI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_GX.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_EXI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_PXI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_PAD.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_OS.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SPI.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/ARM7/ioreg_SD.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/system.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/systemCall.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/stream.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/uncompress.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/misc.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/printf.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/systemCall.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/tick.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/ioreg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/thread.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/context.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/callTrace.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/profile.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/version.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/alarm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/arena.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/valarm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/hw/common/armArch.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/system.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/misc.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/interrupt.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/interrupt.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/event.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/spinLock.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/timer.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/emulator.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/message.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/mutex.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/exception.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/init.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/alloc.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/reset.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/pxi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/pxi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/pxi/common/init.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/pxi/common/compparam.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/dma.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/exMemory.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/wram.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/memory.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/swap.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/secureUncompress.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/byteAccess.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/uncomp_stream.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/compress.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/init.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/endian.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/platform.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/cache.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/mi/device.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/pxi/common/fifo.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/memorymap.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/pxi/common/regname.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/ownerInfo.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/spec.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/spi/common/config.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/spi/common/userInfo_ts_300.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/gx/gxcommon.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/fx/fx.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/entropy.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/systemWork.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/resource.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/os/common/functionCost.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/systemWork.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/application_jump.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl_hybrid.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/spec.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/armArch.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/hw/common/lcd.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/mi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/mi/common/dma.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/mi/common/sharedWram.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/pad.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/pad/common/pad.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/hw/ARM7/ioreg_PAD.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/hw/ARM7/mmap_global.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/pad/ARM7/xyButton.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/spi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/spi/common/type.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/spi/common/mic_common.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/spi/ARM7/spi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/spi/ARM7/pm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/spi/common/pm_common.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/spi/common/pm_common.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/spi/ARM7/shutdown.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/rtc.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/rtc.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/rtc/common/type.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/rtc/common/fifo.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/rtc/ARM7/control.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/rtc/ARM7/instruction.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/rtc/ARM7/gpio.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/rtc/common/type_ex.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/rtc/common/fifo_ex.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/rtc/ARM7/instruction_ex.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/snd.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/main.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/alarm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/command.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/global.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/work.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/exchannel.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/channel.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/hw/ARM7/ioreg_SND.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/seq.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/capture.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/data.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/bank.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/mml.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/midiplayer.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/snd/common/util.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/snd/common/sndex_common.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/snd/ARM7/sndex_api.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card/common.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card/eeprom.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card/backup.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card/flash.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card/fram.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card/rom.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card/hash.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/card/pullOut.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/fs.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/fs/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/fs/archive.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/fs/romfat.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/fs/file.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/fs/overlay.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/fs/hook.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/fs/api.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/std.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/std/string.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/std/unicode.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/std/stdlib.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/fatfs.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/fatfs/common/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/fatfs/common/api.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/fatfs/ARM7/command.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/gx.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/gx/gx_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/wm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/wm/common/wm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro_wl/common/version_wl.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/wm/ARM7/wm_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro_wl/ARM7/WlLib.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro_wl/ARM7/WlBuf.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro_wl/ARM7/WlFrame.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro_wl/ARM7/WlCmd.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro_wl/ARM7/WlCmdLabel.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro_wl/ARM7/WlStaList.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro_wl/ARM7/WlParam.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/wvr.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/wvr/common/wvr_common.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/wvr/ARM7/wvr_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg/common/ctrdg_common.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg/ARM9/ctrdg_backup.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg/ARM9/ctrdg_task.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg/ARM9/ctrdg_flash.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg/ARM9/ctrdg_sram.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg/ARM9/ctrdg_flash.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg/ARM9/ctrdg_sram.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg/ARM9/ctrdg_task.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/ctrdg/ARM7/ctrdg_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/math.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/math/math.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/math/rand.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/math/qsort.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/math/fft.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/math/checksum.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/math/crc.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/math/dgt.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/nwm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/nwm/common/nwm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/nwm/ARM7/nwm_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/scfg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/scfg/common/scfg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/hw/common/mmap_wramEnv.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/scfg/ARM7/scfg_private.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/camera.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/camera/common/fifo.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/camera/common/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/camera/common/util.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/camera/ARM7/i2c.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/camera/ARM7/control.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/dsp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/exi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/exi/ARM7/genPort.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/ownerInfoEx.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/nwm/ARM7/ForLauncher/nwm_sp_init_for_launcher.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/codecmode.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/cdc.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/cdc/ARM7/cdc_reg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/cdc/ARM7/cdc_api.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/cdc/ARM7/cdc_twlmode_access.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/cdc/ARM7/cdc_dsmode_access.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/nitro/spi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/aes.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/aes/common/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/aes/ARM7/hi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/mcu.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/mcu/ARM7/mcu_reg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/mcu/ARM7/i2c.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/i2c/ARM7/i2c.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/mcu/ARM7/control.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/mcu/ARM7/intr.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/format_rom.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/format_rom_certificate.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/banner.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/lcfg.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/lcfg/common/api.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/lcfg/common/NTRSettings.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/lcfg/common/TWLSettings.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/lcfg/common/countryCode.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/ownerInfoEx_private.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/lcfg/common/TWLHWInfo.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/sysmenu_lib.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/sysmenu_lib/common/sysmenu_api.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/nam.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/os/common/msJump.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/types.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/build/libraries/os/common/include/application_jump_private.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/reloc_info/common/reloc_info.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/build/libraries/os/common/include/application_jump_private.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/sysmenu_lib/common/sysmenu_work.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/memorymap.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/hw/common/mmap.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/firm/gcd/blowfish.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/sysmenu_lib/common/pxi.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/boot.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/boot/common/boot_api.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/hotsw.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/hotsw/common/hotsw.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/sharedFont.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/util.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/WDSWrapper.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/WDS.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/mcu.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/mcu/common/fifo.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/sysmenu/mcu/ARM7/mcu.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/firm/memorymap.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/firm/hw/common/mmap_firm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/include/firm/hw/ARM7/mmap_firm.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/build/libraries/spi/ARM7/pm/include/pm_pmic.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlipl/build/libraries_sysmenu/sysmenu/common/include/internal_api.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/build/libraries/spi/ARM7/include/nvram_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/build/libraries/spi/ARM7/include/spi_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl_sp.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/sea.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/ltdwram_begin.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/section.h \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/ltdwram_end.h

View File

@ -0,0 +1,400 @@
#---------------------------------------------------------------------------
# Project: TwlSDK - components - armadillo.TWL
# File: armadillo.lcf.template
#
# Copyright 2008 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$
#---------------------------------------------------------------------------
MEMORY
{
<STATIC.NAME> (RWX) : ORIGIN = <STATIC.ADDRESS>, 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>
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>
check.WORKRAM (RWX) : ORIGIN = 0x03740000, LENGTH = 0xd0000 > workram.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 =.;
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 =.;
<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;
#
# DATA BLOCK: READ WRITE
#
. = ALIGN(4);
<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>
. = ALIGN(4);
SDK_STATIC_END =.;
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 =.;
<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>
. = ALIGN(4);
SDK_STATIC_BSS_END = .;
SDK_STATIC_BSS_SIZE = SDK_STATIC_BSS_END - SDK_STATIC_BSS_START;
} >> <STATIC.NAME>
############################ 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
############################ OVERLAYDEFS ############################
.<PROPERTY.OVERLAYDEFS>F:
{
### <STATIC.NAME> module information
WRITEW ADDR(.<STATIC.NAME>); # load address
WRITEW _start; # entry address
WRITEW SDK_STATIC_SIZE; # size of module
WRITEW _start_AutoloadDoneCallback; # callback autoload done
} > <PROPERTY.OVERLAYDEFS>F
########################### LTDAUTOLOADS ############################
SDK_LTDAUTOLOAD_TOP_START = 0x02f00000;
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_BSS_END = 0x03740000;
.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>
#
# TEXT BLOCK: READ ONLY
#
SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.START =.;
<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=.etable>
<LTDAUTOLOAD.OBJECT=.exception:t>
. = ALIGN(4);
SDK_STATIC_ETABLE_START =.;
__exception_table_start__ =.;
EXCEPTION
__exception_table_end__ =.;
SDK_STATIC_ETABLE_END =.;
<END.LTDAUTOLOAD.OBJECTS>
<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 =.;
<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;
#
# DATA BLOCK: READ WRITE BLOCK
#
. = ALIGN(4);
<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=.wram>
<LTDAUTOLOAD.OBJECT=.wram:t>
<END.LTDAUTOLOAD.OBJECTS>
<FOREACH.LTDAUTOLOAD.LIBRARIES=.wram>
<LTDAUTOLOAD.LIBRARY=.wram:t>
<END.LTDAUTOLOAD.LIBRARIES>
<FOREACH.LTDAUTOLOAD.OBJECTS=.ltdwram>
<LTDAUTOLOAD.OBJECT=.ltdwram:t>
<END.LTDAUTOLOAD.OBJECTS>
<FOREACH.LTDAUTOLOAD.LIBRARIES=.ltdwram>
<LTDAUTOLOAD.LIBRARY=.ltdwram:t>
<END.LTDAUTOLOAD.LIBRARIES>
<FOREACH.LTDAUTOLOAD.OBJECTS=.rsvwram>
<LTDAUTOLOAD.OBJECT=.rsvwram:t>
<END.LTDAUTOLOAD.OBJECTS>
<FOREACH.LTDAUTOLOAD.LIBRARIES=.rsvwram>
<LTDAUTOLOAD.LIBRARY=.rsvwram: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>
. = ALIGN(4);
SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.END =.;
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 =.;
<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=.wram>
<LTDAUTOLOAD.OBJECT=.wram.bss:t>
<END.LTDAUTOLOAD.OBJECTS>
<FOREACH.LTDAUTOLOAD.LIBRARIES=.wram>
<LTDAUTOLOAD.LIBRARY=.wram.bss:t>
<END.LTDAUTOLOAD.LIBRARIES>
<FOREACH.LTDAUTOLOAD.OBJECTS=.ltdwram>
<LTDAUTOLOAD.OBJECT=.ltdwram.bss:t>
<END.LTDAUTOLOAD.OBJECTS>
<FOREACH.LTDAUTOLOAD.LIBRARIES=.ltdwram>
<LTDAUTOLOAD.LIBRARY=.ltdwram.bss:t>
<END.LTDAUTOLOAD.LIBRARIES>
<FOREACH.LTDAUTOLOAD.OBJECTS=.rsvwram>
<LTDAUTOLOAD.OBJECT=.rsvwram.bss:t>
<END.LTDAUTOLOAD.OBJECTS>
<FOREACH.LTDAUTOLOAD.LIBRARIES=.rsvwram>
<LTDAUTOLOAD.LIBRARY=.rsvwram.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>
. = ALIGN(4);
SDK_LTDAUTOLOAD.<LTDAUTOLOAD.NAME>.BSS_END =.;
SDK_LTDAUTOLOAD_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_MOUNT_INFO_TABLE = SDK_LTDAUTOLOAD_BSS_END;
SDK_LTDAUTOLOAD_BSS_END = SDK_MOUNT_INFO_TABLE + 0x400;
######################### 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);
########################## LTDOVERLAYDEFS ###########################
.<PROPERTY.LTDOVERLAYDEFS>L:
{
### TWL limited extended static module information
WRITEW SDK_LTDAUTOLOAD_TOP_START; # load address
WRITEW SDK_MOUNT_INFO_TABLE; # address of the FS mount information table
WRITEW SDK_LTDAUTOLOAD_SIZE + SDK_LTDAUTOLOAD_TOP_SIZE; # size of module
WRITEW 0; # padding
} > <PROPERTY.LTDOVERLAYDEFS>L
############################ OTHERS #################################
SDK_SUBPRIV_ARENA_LO = 0x02ffc000; # メインメモリアリーナはサイズ 0
SDK_SEA_KEY_STORE = SDK_LTDAUTOLOAD_BSS_END;
SDK_WRAM_ARENA_LO = SDK_LTDAUTOLOAD_BSS_END + 0x40;
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_WRAM_ARENA_LO + 0x80 + SDK_IRQ_STACKSIZE + SDK_SYS_STACKSIZE * SDK_SYS_STACKSIZE_SIGN;
} > check.WORKRAM
}

View File

@ -0,0 +1,106 @@
#----------------------------------------------------------------------------
# Project: TwlSDK - components - armadillo.TWL
# File: armadillo.lsf
#
# Copyright 2008 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:: $
# $Rev$
# $Author$
#----------------------------------------------------------------------------
#
# Nitro LCF SPEC FILE
#
#--------
Static $(TARGET_NAME)
{
Address $(ADDRESS_FLXMAIN)
StackSize 1024 1024
Library $(CRT0_O)
Object $(OBJDIR)/initScfg.o
# Library libwpa_sp$(LIBSUFFIX).a
Library libwm_sp$(LIBSUFFIX).a (.text)
Library libwm_sp$(LIBSUFFIX).a (.rodata)
Library libwm_sp$(LIBSUFFIX).a (.data)
Library libmic_sp$(LIBSUFFIX).a (.text)
Library libmic_sp$(LIBSUFFIX).a (.rodata)
Library libmic_sp$(LIBSUFFIX).a (.data)
Library libmicex_sp$(LIBSUFFIX).a (.text)
Library libmicex_sp$(LIBSUFFIX).a (.rodata)
Library libmicex_sp$(LIBSUFFIX).a (.data)
}
#--------
Ltdautoload SCRWRAM
{
Address 0x03758000
Library libsubpsyscall.a
Library libsyscall_sp.twl.a
Library $(CW_LIBS)
Library $(ISDBG_LIBS_TWL)
Library $(ISDBG_LIBS_NITRO)
Object * (.etable)
Object $(OBJDIR)/main.o
Library libsea_sp$(LIBSUFFIX).a
Library libcrypto_sp$(LIBSUFFIX).a
Library libos_sp$(LIBSUFFIX).a
Library libmi_sp$(LIBSUFFIX).a
Library libstd_sp$(LIBSUFFIX).a
Library libmath_sp$(LIBSUFFIX).a
Library libpxi_sp$(LIBSUFFIX).a
Library libexi_sp$(LIBSUFFIX).a
Library libi2c_sp$(LIBSUFFIX).a
Library libsdio_sp$(LIBSUFFIX).a
Library libpad_sp$(LIBSUFFIX).a
Library libscfg_sp$(LIBSUFFIX).a
Library libmcu_sp$(LIBSUFFIX).a
Library libcdc_sp$(LIBSUFFIX).a
Library libsnd_sp$(LIBSUFFIX).a
Library libsndex_sp$(LIBSUFFIX).a
Library libspi_sp$(LIBSUFFIX).a
Library libpm_sp.SYSMENU$(LIBSUFFIX).a
Library libtp_sp$(LIBSUFFIX).a
Library libtpex_sp$(LIBSUFFIX).a
Library libnvram_sp$(LIBSUFFIX).a
Library librtc_sp$(LIBSUFFIX).a
Library libfatfs_sp$(LIBSUFFIX).a
Library libwl_sp$(LIBSUFFIX).a
Library libathdrv_sp$(LIBSUFFIX).a
Library libfs_sp$(LIBSUFFIX).a
Library libcard_sp$(LIBSUFFIX).a
Library libcamera_sp$(LIBSUFFIX).a
Library libnwm_sp.SYSMENU$(LIBSUFFIX).a
Library libwvr_sp$(LIBSUFFIX).a
Library libwm_sp$(LIBSUFFIX).a (.bss)
Library libmic_sp$(LIBSUFFIX).a (.bss)
Library libmicex_sp$(LIBSUFFIX).a (.bss)
Library libboot_sp$(LIBSUFFIX).a
Library libreboot_sp$(LIBSUFFIX).a
Library libhotsw_sp$(LIBSUFFIX).a
Library libreloc_info_sp$(LIBSUFFIX).a
Library libsysmenu_sp$(LIBSUFFIX).a
Library libsysmmcu_sp$(LIBSUFFIX).a
Library libds_sp$(LIBSUFFIX).a
Library libaes_sp$(FIRM_LIBSUFFIX).a
Library libdht_sp$(LIBSUFFIX).a
Object * (.wram)
Object * (.ltdwram)
Object * (.rsvwram)
Object * (.main)
Object * (.ltdmain)
}
# BootROMの鍵データが0x0380c400にあるので、jackalのWRAM配置の上限はその値になることに注意。

View File

@ -0,0 +1,107 @@
#----------------------------------------------------------------------------
# Project: TwlSDK - components - armadillo.TWL
# File: armadillo.lsf
#
# Copyright 2008 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:: $
# $Rev$
# $Author$
#----------------------------------------------------------------------------
#
# Nitro LCF SPEC FILE
#
#--------
Static $(TARGET_NAME)
{
Address $(ADDRESS_FLXMAIN)
StackSize 1024 1024
Library $(CRT0_O)
Object $(OBJDIR)/initScfg.o
}
#--------
Ltdautoload SCRWRAM
{
Address 0x03758000
Library libsubpsyscall.a
Library libsyscall_sp.twl.a
Library $(CW_LIBS)
Library $(ISDBG_LIBS_TWL)
Library $(ISDBG_LIBS_NITRO)
Object * (.etable)
Object $(OBJDIR)/main.o
Library libsea_sp$(LIBSUFFIX).a
Library libcrypto_sp$(LIBSUFFIX).a
Library libos_sp$(LIBSUFFIX).a
Library libmi_sp$(LIBSUFFIX).a
Library libstd_sp$(LIBSUFFIX).a
Library libmath_sp$(LIBSUFFIX).a
Library libpxi_sp$(LIBSUFFIX).a
Library libexi_sp$(LIBSUFFIX).a
Library libi2c_sp$(LIBSUFFIX).a
Library libsdio_sp$(LIBSUFFIX).a
Library libpad_sp$(LIBSUFFIX).a
Library libscfg_sp$(LIBSUFFIX).a
Library libmcu_sp$(LIBSUFFIX).a
Library libcdc_sp$(LIBSUFFIX).a
Library libsnd_sp$(LIBSUFFIX).a
Library libsndex_sp$(LIBSUFFIX).a
Library libspi_sp$(LIBSUFFIX).a
Library libpm_sp.SYSMENU$(LIBSUFFIX).a
Library libtp_sp$(LIBSUFFIX).a
Library libtpex_sp$(LIBSUFFIX).a
Library libnvram_sp$(LIBSUFFIX).a
Library librtc_sp$(LIBSUFFIX).a
Library libfatfs_sp$(LIBSUFFIX).a
Library libwl_sp$(LIBSUFFIX).a
Library libathdrv_sp$(LIBSUFFIX).a
Library libfs_sp$(LIBSUFFIX).a
Library libcard_sp$(LIBSUFFIX).a
Library libcamera_sp$(LIBSUFFIX).a
Library libnwm_sp.SYSMENU$(LIBSUFFIX).a
Library libwvr_sp$(LIBSUFFIX).a
Library libwm_sp$(LIBSUFFIX).a (.bss)
Library libmic_sp$(LIBSUFFIX).a (.bss)
Library libmicex_sp$(LIBSUFFIX).a (.bss)
Library libboot_sp$(LIBSUFFIX).a
Library libreboot_sp$(LIBSUFFIX).a
Library libhotsw_sp$(LIBSUFFIX).a
Library libreloc_info_sp$(LIBSUFFIX).a
Library libsysmenu_sp$(LIBSUFFIX).a
Library libsysmmcu_sp$(LIBSUFFIX).a
Library libds_sp$(LIBSUFFIX).a
Library libaes_sp$(FIRM_LIBSUFFIX).a
Library libdht_sp$(LIBSUFFIX).a
# Library libwpa_sp$(LIBSUFFIX).a
Library libwm_sp$(LIBSUFFIX).a (.text)
Library libwm_sp$(LIBSUFFIX).a (.rodata)
Library libwm_sp$(LIBSUFFIX).a (.data)
Library libmic_sp$(LIBSUFFIX).a (.text)
Library libmic_sp$(LIBSUFFIX).a (.rodata)
Library libmic_sp$(LIBSUFFIX).a (.data)
Library libmicex_sp$(LIBSUFFIX).a (.text)
Library libmicex_sp$(LIBSUFFIX).a (.rodata)
Library libmicex_sp$(LIBSUFFIX).a (.data)
Object * (.wram)
Object * (.ltdwram)
Object * (.rsvwram)
Object * (.main)
Object * (.ltdmain)
}
# BootROMの鍵データが0x0380c400にあるので、jackalのWRAM配置の上限はその値になることに注意。

View File

@ -0,0 +1,49 @@
#! make -f
#----------------------------------------------------------------------------
# Project: TwlFirm - tools - nandfirm-ds-launcher
# 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.
#
# $Log: $
# $NoKeywords: $
#----------------------------------------------------------------------------
TWL_PROC = ARM7
SUBDIRS =
LINCLUDES = ../include
#----------------------------------------------------------------------------
TARGET_BIN = wram_regs.rbin
SRCS = \
wram_regs.c \
#SRCDIR = # using default
#LCFILE = # using default
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
INSTALL_DIR = .
INSTALL_TARGETS = $(BINDIR)/$(TARGET_BIN)
#----------------------------------------------------------------------------
do-build: $(TARGETS)
include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
#===== End of Makefile =====

View File

@ -0,0 +1,3 @@
obj/ARM7-TS.LTD/Release/wram_regs.o: wram_regs.c \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/cache/include/twl.h.16M.ARM7.CODE_ARM.CW.CW_FORCE_EXPORT_SUPPORT.LINK_ISTD.RELEASE.TS.TS_VERSION-400.TWL.TWLLTD.C.mch \
/cygdrive/d/Nitro_CwProjects/TWL_IPL_RED_cust/twlsdk/include/twl/mi.h

View File

@ -0,0 +1,121 @@
/*---------------------------------------------------------------------------*
Project: TwlIPL - wram_regs
File: wram_regs.c
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$
*---------------------------------------------------------------------------*/
#include <twl/mi.h>
#define COMPONENT_WRAM_A_OFS (HW_WRAM_A_LTD - HW_WRAM_BASE)
#define COMPONENT_WRAM_A_OFS_END (COMPONENT_WRAM_A_OFS + HW_WRAM_A_SIZE)
#define COMPONENT_WRAM_B_OFS (COMPONENT_WRAM_A_OFS - HW_WRAM_B_SIZE)
#define COMPONENT_WRAM_B_OFS_END (COMPONENT_WRAM_A_OFS)
#define COMPONENT_WRAM_C_OFS (COMPONENT_WRAM_B_OFS - HW_WRAM_C_SIZE * 2)
#define COMPONENT_WRAM_C_OFS_END (COMPONENT_WRAM_B_OFS)
// MAP_TS_LTD for jackal
// WRAM-A Lock:ON, Master:ARM7, Enable:Slot0-3(256Kbytes), Address(7):0x037c0000-0x037fffff, Address(9):None
// WRAM-B Lock:ON, Master:ARM7, Enable:Slot5-7(256Kbytes), Address(7):0x03780000-0x037bffff, Address(9):None
// WRAM-C Lock:ON, Master:ARM7, Enable:Slot3-7(160Kbytes), Address(7):0x03758000-0x037bffff, Address(9):None
// WRAM-C Lock:OFF, Msster:ARM9, Enable:Slot0-2( 96Kbytes), Address(7):0x03700000-0x03717fff, Address(9):0x03700000-0x0317ffff
// WRAM-0 Master:ARM9, (16Kbytes), Address(7):0x03040000-0x03043fff, Address(9):0x03040000-0x03043fff
// WRAM-1 Master:ARM9, (16Kbytes), Address(7):0x03044000-0x03047fff, Address(9):0x03044000-0x03047fff
// MAP_TS_LTD original
// WRAM-A Lock:ON, Master:ARM7, Enable:Slot0-3(256Kbytes), Address(7):0x037c0000-0x037fffff, Address(9):None
// WRAM-B Lock:OFF, Master:ARM9, Enable:Slot0-7(256Kbytes), Address(7):0x03740000-0x037bffff, Address(9):0x03740000-0x037bffff
// WRAM-C Lock:OFF, Msster:ARM9, Enable:Slot0-7(256Kbytes), Address(7):0x03700000-0x0373ffff, Address(9):0x03700000-0x0373ffff
// WRAM-0 Master:ARM9, (16Kbytes), Address(7):0x03040000-0x03043fff, Address(9):0x03040000-0x03043fff
// WRAM-1 Master:ARM9, (16Kbytes), Address(7):0x03044000-0x03047fff, Address(9):0x03044000-0x03047fff
u32 HYENA_WramReg[0x30/sizeof(u32)] =
{
// ARM9
// WRAM-A
REG_MI_MBK1_FIELD(
TRUE, MI_WRAM_OFFSET_192KB/2, MI_WRAM_ARM7,
TRUE, MI_WRAM_OFFSET_128KB/2, MI_WRAM_ARM7,
TRUE, MI_WRAM_OFFSET_64KB/2, MI_WRAM_ARM7,
TRUE, MI_WRAM_OFFSET_0KB/2, MI_WRAM_ARM7
),
// WRAM-B
REG_MI_MBK2_FIELD(
TRUE, MI_WRAM_OFFSET_96KB, MI_WRAM_ARM7,
TRUE, MI_WRAM_OFFSET_64KB, MI_WRAM_ARM7,
TRUE, MI_WRAM_OFFSET_32KB, MI_WRAM_ARM7,
TRUE, MI_WRAM_OFFSET_0KB, MI_WRAM_ARM7
),
REG_MI_MBK3_FIELD(
TRUE, MI_WRAM_OFFSET_224KB, MI_WRAM_ARM7,
TRUE, MI_WRAM_OFFSET_192KB, MI_WRAM_ARM7,
TRUE, MI_WRAM_OFFSET_160KB, MI_WRAM_ARM7,
TRUE, MI_WRAM_OFFSET_128KB, MI_WRAM_ARM7
),
// WRAM-C
REG_MI_MBK4_FIELD(
TRUE, MI_WRAM_OFFSET_96KB, MI_WRAM_ARM7,
TRUE, MI_WRAM_OFFSET_64KB, MI_WRAM_ARM9,
TRUE, MI_WRAM_OFFSET_32KB, MI_WRAM_ARM9,
TRUE, MI_WRAM_OFFSET_0KB, MI_WRAM_ARM9
),
REG_MI_MBK5_FIELD(
TRUE, MI_WRAM_OFFSET_224KB, MI_WRAM_ARM7,
TRUE, MI_WRAM_OFFSET_192KB, MI_WRAM_ARM7,
TRUE, MI_WRAM_OFFSET_160KB, MI_WRAM_ARM7,
TRUE, MI_WRAM_OFFSET_128KB, MI_WRAM_ARM7
),
REG_MI_MBK6_FIELD( NULL >> 16,
MI_WRAM_IMAGE_256KB,
NULL >> 16
),
REG_MI_MBK7_FIELD( NULL >> 15,
MI_WRAM_IMAGE_256KB,
NULL >> 15
),
REG_MI_MBK8_FIELD( ( COMPONENT_WRAM_C_OFS_END + 0x18000 ) >> 15,
MI_WRAM_IMAGE_128KB,
COMPONENT_WRAM_C_OFS >> 15
),
// ARM7
REG_MI_MBK6_FIELD( COMPONENT_WRAM_A_OFS_END >> 16,
MI_WRAM_IMAGE_256KB,
COMPONENT_WRAM_A_OFS >> 16
),
REG_MI_MBK7_FIELD( COMPONENT_WRAM_B_OFS_END >> 15,
MI_WRAM_IMAGE_256KB,
COMPONENT_WRAM_B_OFS >> 15
),
REG_MI_MBK8_FIELD( COMPONENT_WRAM_C_OFS_END >> 15,
MI_WRAM_IMAGE_256KB,
COMPONENT_WRAM_C_OFS >> 15
),
// WRAM Lock
(u32)(
(0x0F << 0) |
(0xFF << 8) |
(0xF8 << 16) |
// WRAM-0/1
(0 << 24) |
// VRAM-C
(7 << 26) |
// VRAM-D
(7 << 29)
),
};

Binary file not shown.