mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
WRAMコードの大部分をLTDMAINに移動させたlibathdrv_sp.SYSMENU をリンクしたcomponentを作れるようにした。
(テスト目的 TMP_WL_MAIN=TRUE を伴ってビルドすることで有効になる。) git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1653 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
a560381a02
commit
6fef0b7163
@ -16,6 +16,9 @@
|
||||
# $Author$
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
# Main memory にコードを退避させたathdrvを使用。(for test)
|
||||
TMP_WL_MAIN ?= FALSE
|
||||
|
||||
TARGET_FIRM = SYSTEMMENU
|
||||
override TARGET_PLATFORM = TWL
|
||||
override TWL_PROC = ARM7
|
||||
@ -35,7 +38,13 @@ SRCS = main.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
|
||||
|
||||
@ -48,8 +57,12 @@ CCFLAGS_OPT = -O4 -inline off
|
||||
#----------------------------------------------------------------------------
|
||||
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
|
||||
|
||||
# crt0.o と libpm_sp は、ローカルでビルドしたものを使用するので、除外する。
|
||||
# crt0.o 、 libpm_sp および libnwm_sp は、ローカルでビルドしたものを使用するので、除外する。
|
||||
ifeq ($(TMP_WL_MAIN), TRUE)
|
||||
GLIBRARIES := $(filter-out $(CRT0_O) libpm_sp$(TWL_LIBSUFFIX).a libathdrv_sp$(TWL_LIBSUFFIX).a,$(GLIBRARIES))
|
||||
else
|
||||
GLIBRARIES := $(filter-out $(CRT0_O) libpm_sp$(TWL_LIBSUFFIX).a,$(GLIBRARIES))
|
||||
endif
|
||||
|
||||
ifdef TWLSDK_NOCRYPTO
|
||||
CCFLAGS += -DSDK_NOCRYPTO
|
||||
@ -98,6 +111,11 @@ SYSMENU_LIBS = \
|
||||
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.LTD.a \
|
||||
libaes_sp.firm.LTD.a \
|
||||
@ -108,6 +126,10 @@ 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)
|
||||
|
||||
|
||||
|
||||
183
build/components/hyena.TWL/hyena_wlmain.lsf
Normal file
183
build/components/hyena.TWL/hyena_wlmain.lsf
Normal file
@ -0,0 +1,183 @@
|
||||
#----------------------------------------------------------------------------
|
||||
# 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)
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user