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$
|
# $Author$
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Main memory にコードを退避させたathdrvを使用。(for test)
|
||||||
|
TMP_WL_MAIN ?= FALSE
|
||||||
|
|
||||||
TARGET_FIRM = SYSTEMMENU
|
TARGET_FIRM = SYSTEMMENU
|
||||||
override TARGET_PLATFORM = TWL
|
override TARGET_PLATFORM = TWL
|
||||||
override TWL_PROC = ARM7
|
override TWL_PROC = ARM7
|
||||||
@ -35,7 +38,13 @@ SRCS = main.c \
|
|||||||
TARGET_NAME = hyena
|
TARGET_NAME = hyena
|
||||||
|
|
||||||
TARGET_NEF = $(TARGET_NAME).tef
|
TARGET_NEF = $(TARGET_NAME).tef
|
||||||
|
|
||||||
|
ifeq ($(TMP_WL_MAIN), TRUE)
|
||||||
|
LCFILE_SPEC = $(TARGET_NAME)_wlmain.lsf
|
||||||
|
else
|
||||||
LCFILE_SPEC = $(TARGET_NAME).lsf
|
LCFILE_SPEC = $(TARGET_NAME).lsf
|
||||||
|
endif
|
||||||
|
|
||||||
LCFILE_TEMPLATE = $(TARGET_NAME).lcf.template
|
LCFILE_TEMPLATE = $(TARGET_NAME).lcf.template
|
||||||
LDRES_TEMPLATE = $(ROOT)/build/components/racoon.TWL/racoon.response.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
|
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))
|
GLIBRARIES := $(filter-out $(CRT0_O) libpm_sp$(TWL_LIBSUFFIX).a,$(GLIBRARIES))
|
||||||
|
endif
|
||||||
|
|
||||||
ifdef TWLSDK_NOCRYPTO
|
ifdef TWLSDK_NOCRYPTO
|
||||||
CCFLAGS += -DSDK_NOCRYPTO
|
CCFLAGS += -DSDK_NOCRYPTO
|
||||||
@ -98,6 +111,11 @@ SYSMENU_LIBS = \
|
|||||||
libdht_sp$(TWL_LIBSUFFIX).a \
|
libdht_sp$(TWL_LIBSUFFIX).a \
|
||||||
libpm_sp.SYSMENU$(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 = \
|
SDK_APPEND_LIBS = \
|
||||||
libwl_sp.TWL.LTD.a \
|
libwl_sp.TWL.LTD.a \
|
||||||
libaes_sp.firm.LTD.a \
|
libaes_sp.firm.LTD.a \
|
||||||
@ -108,6 +126,10 @@ LLIBRARIES += $(SYSMENU_LIBS) $(SDK_APPEND_LIBS)
|
|||||||
|
|
||||||
LLIBRARY_DIRS += ./
|
LLIBRARY_DIRS += ./
|
||||||
|
|
||||||
|
ifeq ($(TMP_WL_MAIN), TRUE)
|
||||||
|
LLIBRARY_DIRS += $(SYSMENU_ROOT)/lib/TwlWireless/$(TWL_LIBTYPE)
|
||||||
|
endif
|
||||||
|
|
||||||
LDEPENDS_NEF = $(TWL_LIBS) $(LLIBRARIES)
|
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