mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
コンポーネントをracoonに変更。
Userアプリに変更。 (バグあり) git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2876 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
b25b9ce9ea
commit
34bb16ac1b
@ -1,9 +1,9 @@
|
|||||||
#! make -f
|
#! make -f
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Project: TwlSDK - components - armadillo.TWL
|
# Project: TwlSDK - components - racoon.TWL
|
||||||
# File: Makefile
|
# File: Makefile
|
||||||
#
|
#
|
||||||
# Copyright 2008 Nintendo. All rights reserved.
|
# Copyright 2007-2008 Nintendo. All rights reserved.
|
||||||
#
|
#
|
||||||
# These coded instructions, statements, and computer programs contain
|
# These coded instructions, statements, and computer programs contain
|
||||||
# proprietary information of Nintendo of America Inc. and/or Nintendo
|
# proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
@ -11,35 +11,31 @@
|
|||||||
# not be disclosed to third parties or copied or duplicated in any form,
|
# 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.
|
# in whole or in part, without the prior written consent of Nintendo.
|
||||||
#
|
#
|
||||||
# $Date:: 2008-08-15#$
|
# $Date:: 2008-09-18#$
|
||||||
# $Rev: 2167 $
|
# $Rev: 8573 $
|
||||||
# $Author: yosiokat $
|
# $Author: okubata_ryoma $
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
override TARGET_PLATFORM = TWL
|
override TARGET_PLATFORM = TWL
|
||||||
override TWL_PROC = ARM7
|
override TWL_PROC = ARM7
|
||||||
override TWL_ARCHGEN = LIMITED
|
override TWL_ARCHGEN = LIMITED
|
||||||
##override TWL_PLATFORM = TS
|
|
||||||
TWL_NO_STD_PCHDR = True
|
TWL_NO_STD_PCHDR = True
|
||||||
override TARGET_CODEGEN = ARM
|
TWL_CODEGEN ?= ALL
|
||||||
|
|
||||||
ifndef TWLSDK_NOCRYPTO
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
SRCS = crt0.SCFG_NOLOCK.c \
|
SRCDIR += ./src ../../common/ARM7/src
|
||||||
main.c \
|
|
||||||
kami_pxi.c \
|
|
||||||
formatter.c \
|
|
||||||
mcu_firm.c
|
|
||||||
|
|
||||||
TARGET_NAME = armadillo
|
SRCS = main.c initScfg.c kami_pxi.c formatter.c mcu_firm.c
|
||||||
|
|
||||||
|
TARGET_NAME = racoon
|
||||||
|
|
||||||
TARGET_NEF = $(TARGET_NAME).tef
|
TARGET_NEF = $(TARGET_NAME).tef
|
||||||
LCFILE_SPEC = $(TARGET_NAME).lsf
|
LCFILE_SPEC = $(TARGET_NAME).lsf
|
||||||
LCFILE_TEMPLATE = $(ROOT)/build/components/$(TARGET_NAME).TWL/$(TARGET_NAME).lcf.template
|
LCFILE_TEMPLATE = $(ROOT)/build/components/$(TARGET_NAME).TWL/$(TARGET_NAME).lcf.template
|
||||||
LDRES_TEMPLATE = $(ROOT)/build/components/$(TARGET_NAME).TWL/$(TARGET_NAME).response.template
|
LDRES_TEMPLATE = $(ROOT)/build/components/$(TARGET_NAME).TWL/$(TARGET_NAME).response.template
|
||||||
|
|
||||||
CRT0_O = crt0.SCFG_NOLOCK.o
|
CRT0_O = crt0.LTD.TWL.o
|
||||||
|
|
||||||
# スタック不足防止の為、インライン展開せずにコンパイルする
|
# スタック不足防止の為、インライン展開せずにコンパイルする
|
||||||
CCFLAGS_OPT = -O4 -inline off
|
CCFLAGS_OPT = -O4 -inline off
|
||||||
@ -47,11 +43,20 @@ CCFLAGS_OPT = -O4 -inline off
|
|||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
include $(TWLSDK_ROOT)/build/buildtools/commondefs
|
include $(TWLSDK_ROOT)/build/buildtools/commondefs
|
||||||
|
|
||||||
MACRO_FLAGS += -DSDK_ARM7COMP_LTD -DSDK_SEA -DSDK_NOINIT
|
#MACRO_FLAGS += -DSDK_ARM7COMP_LTD
|
||||||
|
|
||||||
|
ifeq ($(TWL_PLATFORM),BB)
|
||||||
|
MAKELCF_FLAGS += -DADDRESS_LTDWRAM='0x037e0000'
|
||||||
|
else
|
||||||
|
MAKELCF_FLAGS += -DADDRESS_LTDWRAM='0x037c0000'
|
||||||
|
endif
|
||||||
|
|
||||||
MAKELCF_FLAGS += -DISDBG_LIBS_TWL='$(if $(ISDBG_LIBS_TWL),$(ISDBG_LIBS_TWL),libstubsistd_sp$(TWL_LIBSUFFIX).a)' \
|
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'
|
-DISDBG_LIBS_NITRO='libstubsisd_sp$(TWL_LIBSUFFIX).a'
|
||||||
|
|
||||||
|
LLIBRARY_DIRS += $(TWL_IPL_RED_ROOT)/lib/ARM7-TS/$(TWL_BUILD_DIR) \
|
||||||
|
./obj/ARM7-TS.LTD/$(TWL_BUILD_DIR)
|
||||||
|
|
||||||
LINCLUDES += $(ROOT)/build/libraries/spi/ARM7/include \
|
LINCLUDES += $(ROOT)/build/libraries/spi/ARM7/include \
|
||||||
$(ROOT)/build/libraries/os/common/include \
|
$(ROOT)/build/libraries/os/common/include \
|
||||||
$(TWL_IPL_RED_ROOT)/include \
|
$(TWL_IPL_RED_ROOT)/include \
|
||||||
@ -62,20 +67,18 @@ LINCLUDES += $(ROOT)/build/libraries/spi/ARM7/include \
|
|||||||
$(ROOT)/build/libraries/fatfs/ARM7.TWL/include/fatfs \
|
$(ROOT)/build/libraries/fatfs/ARM7.TWL/include/fatfs \
|
||||||
$(ROOT)/build/libraries/fatfs/ARM7.TWL/include/twl/fatfs/ARM7
|
$(ROOT)/build/libraries/fatfs/ARM7.TWL/include/twl/fatfs/ARM7
|
||||||
|
|
||||||
SRCDIR += ../../common/ARM7/src
|
|
||||||
|
|
||||||
LLIBRARY_DIRS += $(TWL_IPL_RED_ROOT)/lib/ARM7-TS/$(TWL_BUILD_DIR) \
|
#LLIBRARIES += libwl_sp.TWL.LTD.a libsdio_hcd_twl$(TWL_LIBSUFFIX).a libsdio_busdriver$(TWL_LIBSUFFIX).a libsdio_lib$(TWL_LIBSUFFIX).a libARM7athdrv$(TWL_LIBSUFFIX).a
|
||||||
./obj/ARM7-TS.LTD/$(TWL_BUILD_DIR)
|
LLIBRARIES += libwl_sp.TWL.LTD.a
|
||||||
|
#LLIBRARIES += libwl_sp$(TWL_LIBSUFFIX).a \
|
||||||
LLIBRARIES += libwl_sp$(TWL_LIBSUFFIX).a \
|
# libcdc_sp$(TWL_LIBSUFFIX).a \
|
||||||
libsdio_sp$(TWL_LIBSUFFIX).a \
|
# libtpex_sp$(TWL_LIBSUFFIX).a \
|
||||||
libathdrv_sp$(TWL_LIBSUFFIX).a \
|
# libmicex_sp$(TWL_LIBSUFFIX).a \
|
||||||
libwpa_sp$(TWL_LIBSUFFIX).a \
|
# libsdio_hcd_twl$(TWL_LIBSUFFIX).a \
|
||||||
libhotsw_sp$(TWL_LIBSUFFIX).a \
|
# libsdio_busdriver$(TWL_LIBSUFFIX).a \
|
||||||
libreloc_info_sp$(TWL_LIBSUFFIX).a
|
# libsdio_lib$(TWL_LIBSUFFIX).a \
|
||||||
|
# librompatch_sp$(TWL_LIBSUFFIX).a \
|
||||||
LLIBRARIES += libpm_sp.SYSMENU$(TWL_LIBSUFFIX).a
|
# libARM7athdrv$(TWL_LIBSUFFIX).a
|
||||||
GLIBRARIES := $(filter-out libpm_sp$(TWL_LIBSUFFIX).a,$(GLIBRARIES))
|
|
||||||
|
|
||||||
LDEPENDS_NEF = $(TWL_LIBS) $(LLIBRARIES)
|
LDEPENDS_NEF = $(TWL_LIBS) $(LLIBRARIES)
|
||||||
|
|
||||||
@ -84,7 +87,4 @@ do-build: $(TARGETS)
|
|||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
include $(TWLSDK_ROOT)/build/buildtools/modulerules
|
include $(TWLSDK_ROOT)/build/buildtools/modulerules
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
endif #ifndef TWLSDK_NOCRYPTO
|
|
||||||
|
|
||||||
#===== End of Makefile =====
|
#===== End of Makefile =====
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Project: TwlSDK - components - armadillo.TWL
|
Project: TwlSDK - components - mongoose.TWL
|
||||||
File: main.c
|
File: main.c
|
||||||
|
|
||||||
Copyright 2008 Nintendo. All rights reserved.
|
Copyright 2007-2009 Nintendo. All rights reserved.
|
||||||
|
|
||||||
These coded instructions, statements, and computer programs contain
|
These coded instructions, statements, and computer programs contain
|
||||||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
@ -10,47 +10,58 @@
|
|||||||
not be disclosed to third parties or copied or duplicated in any form,
|
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.
|
in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
|
||||||
$Date:: 2008-08-18#$
|
$Date:: 2009-06-11#$
|
||||||
$Rev: 2182 $
|
$Rev: 10743 $
|
||||||
$Author: kamikawa $
|
$Author: okajima_manabu $
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include <nitro/types.h>
|
#include <nitro/types.h>
|
||||||
#include <twl/init/crt0.h>
|
#include <twl/init/crt0.h>
|
||||||
#include <twl/memorymap_sp.h>
|
#include <twl/memorymap_sp.h>
|
||||||
#include <twl/os.h>
|
#include <twl/os.h>
|
||||||
#include <twl/os/common/codecmode.h>
|
|
||||||
#include <nitro/pad.h>
|
|
||||||
#include <twl/aes.h>
|
|
||||||
#include <twl/sea.h>
|
|
||||||
#include <twl/fatfs.h>
|
|
||||||
#include <twl/nwm.h>
|
|
||||||
#include <twl/camera.h>
|
|
||||||
#include <sysmenu.h>
|
|
||||||
#include <twl/mcu.h>
|
|
||||||
#include <twl/cdc.h>
|
|
||||||
#include <nitro/snd.h>
|
|
||||||
#include <twl/snd/ARM7/sndex_api.h>
|
|
||||||
#include <twl/rtc.h>
|
|
||||||
#include <nitro/wvr.h>
|
|
||||||
#include <twl/spi.h>
|
#include <twl/spi.h>
|
||||||
|
#include <twl/fatfs.h>
|
||||||
|
#include <nitro/pad.h>
|
||||||
|
#include <nitro/std.h>
|
||||||
|
#include <nitro/snd.h>
|
||||||
|
#ifndef SDK_ARM7COMP_WO_WIRELESS
|
||||||
|
#include <nitro/wvr.h>
|
||||||
|
#include <twl/nwm.h>
|
||||||
|
#endif // SDK_ARM7COMP_WO_WIRELESS
|
||||||
|
#ifndef SDK_ARM7COMP_WO_CAMERA
|
||||||
|
#include <twl/camera.h>
|
||||||
|
#endif
|
||||||
|
#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 "nvram_sp.h"
|
#include "nvram_sp.h"
|
||||||
#include "kami_pxi.h"
|
#include "kami_pxi.h"
|
||||||
#include <firm/os/common/system.h>
|
#ifdef SDK_SEA
|
||||||
|
#include <twl/sea.h>
|
||||||
|
#endif // ifdef SDK_SEA
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
定数定義
|
定数定義
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
/* 各スレッド優先度 */
|
#ifndef SDK_ARM7COMP_WO_WIRELESS
|
||||||
|
#define WM_WL_HEAP_SIZE 0x2100
|
||||||
|
#define ATH_DRV_HEAP_SIZE 0x5800
|
||||||
|
#define WPA_HEAP_SIZE 0x1C00
|
||||||
|
#endif // SDK_ARM7COMP_WO_WIRELESS
|
||||||
|
|
||||||
|
#define MEM_TYPE_WRAM 0
|
||||||
|
#define MEM_TYPE_MAIN 1
|
||||||
|
|
||||||
|
/* Priorities of each threads */
|
||||||
|
#define THREAD_PRIO_MCU 1 //4 /* ハードウェアリセット時に他のスレッドに優先して動く必要アリ */
|
||||||
#define THREAD_PRIO_SPI 2
|
#define THREAD_PRIO_SPI 2
|
||||||
#define THREAD_PRIO_MCU 4 // 暫定
|
|
||||||
#define THREAD_PRIO_SND 6
|
#define THREAD_PRIO_SND 6
|
||||||
#define THREAD_PRIO_NWM_EVENT 7
|
|
||||||
#define THREAD_PRIO_NWM_SDIO 8
|
|
||||||
#define THREAD_PRIO_FATFS 8
|
#define THREAD_PRIO_FATFS 8
|
||||||
#define THREAD_PRIO_NWM_COMMAND 9
|
|
||||||
#define THREAD_PRIO_NWM_WPA 10
|
|
||||||
#define THREAD_PRIO_HOTSW 11
|
|
||||||
#define THREAD_PRIO_AES 12
|
#define THREAD_PRIO_AES 12
|
||||||
#define THREAD_PRIO_SEA 12
|
#define THREAD_PRIO_SEA 12
|
||||||
#define THREAD_PRIO_RTC 12
|
#define THREAD_PRIO_RTC 12
|
||||||
@ -58,36 +69,61 @@
|
|||||||
#define THREAD_PRIO_FS 15
|
#define THREAD_PRIO_FS 15
|
||||||
/* OS_THREAD_LAUNCHER_PRIORITY 16 */
|
/* OS_THREAD_LAUNCHER_PRIORITY 16 */
|
||||||
|
|
||||||
/* ROM 内登録エリアの拡張言語コード */
|
#ifndef SDK_ARM7COMP_WO_WIRELESS
|
||||||
|
#define NWM_DMANO NWMSP_DMA_7
|
||||||
|
#define THREAD_PRIO_NWM_COMMAND 9
|
||||||
|
#define THREAD_PRIO_NWM_EVENT 7
|
||||||
|
#define THREAD_PRIO_NWM_SDIO 8
|
||||||
|
#define THREAD_PRIO_NWM_WPA 10
|
||||||
|
#endif // SDK_ARM7COMP_WO_WIRELESS
|
||||||
|
|
||||||
|
// ROM 内登録エリアの拡張言語コード
|
||||||
#define ROMHEADER_FOR_CHINA_BIT 0x80
|
#define ROMHEADER_FOR_CHINA_BIT 0x80
|
||||||
#define ROMHEADER_FOR_KOREA_BIT 0x40
|
#define ROMHEADER_FOR_KOREA_BIT 0x40
|
||||||
|
|
||||||
/* 使用 DMA 番号 */
|
#include <nitro/main_begin.h>
|
||||||
#define DMA_NO_FATFS FATFS_DMA_4 // = 0
|
// エラーメッセージ用の文字列(コードサイズ削減のために用意、MAIN に配置するために const にしない)
|
||||||
#define DMA_NO_NWM 3
|
static char strARM7[] ="ARM7:";
|
||||||
|
static char strMemMAIN[] ="MAIN";
|
||||||
/* カードチャタリングカウンタ */
|
static char strMemWRAM[] ="WRAM";
|
||||||
#define CHATTERING_COUNTER 0x1988 // 100ms分 (0x1988 * 15.3us = 100000us)
|
static char strFailedCreateHeap[] ="%sFailedToCreateHeap.(%s)\n";
|
||||||
|
static char strHeapSizeIs[] ="%s_HeapSize=%d (Margin:%d)\n";
|
||||||
|
static char strInsufficientHeapSize[] ="%sInsufficientHeapSize. (0x%x < 0x%x)\n";
|
||||||
|
#include <nitro/main_end.h>
|
||||||
|
#include <twl/ltdmain_begin.h>
|
||||||
|
static char strWramBeforeAdd[] ="WRAM(BeforeAddToHeap)";
|
||||||
|
static char strMainBeforeAdd[] ="MAIN(BeforeAddToHeap)";
|
||||||
|
#include <twl/ltdmain_end.h>
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
内部関数定義
|
内部関数定義
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
static void PrintDebugInfo(void);
|
static void PrintDebugInfo(void);
|
||||||
static OSHeapHandle InitializeAllocateSystem(void);
|
static OSHeapHandle InitializeAllocateSystem(u8 memType);
|
||||||
static void InitializeFatfs(void);
|
static OSHeapHandle InitializeAllocateSystemCore(u8 memType);
|
||||||
static void InitializeNwm(OSHeapHandle hh);
|
#ifdef SDK_TWLHYB
|
||||||
static void InitializeCardPower(void);
|
static OSHeapHandle InitializeAllocateSystemCoreEx(u8 memType);
|
||||||
static void InitializeCdc(void);
|
#endif
|
||||||
|
static void DummyThread(void* arg);
|
||||||
static void ReadUserInfo(void);
|
static void ReadUserInfo(void);
|
||||||
#ifdef NVRAM_CONFIG_DATA_EX_VERSION
|
#ifdef NVRAM_CONFIG_DATA_EX_VERSION
|
||||||
static BOOL IsValidConfigEx(void);
|
static BOOL IsValidConfigEx(void);
|
||||||
static u16 GetRomValidLanguage(void);
|
static u16 GetRomValidLanguage(void);
|
||||||
static s32 CheckCorrectNCDEx(NVRAMConfigEx* ncdsp);
|
static s32 CheckCorrectNCDEx(NVRAMConfigEx * ncdsp);
|
||||||
#else
|
#else
|
||||||
static s32 CheckCorrectNCD(NVRAMConfig* ncdsp);
|
static s32 CheckCorrectNCD(NVRAMConfig *ncdsp);
|
||||||
#endif
|
#endif
|
||||||
static void VBlankIntr(void);
|
static void VBlankIntr(void);
|
||||||
|
static void InitializeFatfs(void);
|
||||||
|
#ifndef SDK_ARM7COMP_WO_WIRELESS
|
||||||
|
static void InitializeNwm(OSHeapHandle drvHeapHandle, OSHeapHandle wpaHeapHandle);
|
||||||
|
#endif // SDK_ARM7COMP_WO_WIRELESS
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
外部シンボル参照
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
#ifdef SDK_TWLHYB
|
||||||
|
extern void SDK_LTDAUTOLOAD_LTDWRAM_BSS_END(void);
|
||||||
|
extern void SDK_LTDAUTOLOAD_LTDMAIN_BSS_END(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: TwlSpMain
|
Name: TwlSpMain
|
||||||
@ -98,64 +134,143 @@ static void VBlankIntr(void);
|
|||||||
void
|
void
|
||||||
TwlSpMain(void)
|
TwlSpMain(void)
|
||||||
{
|
{
|
||||||
OSHeapHandle heapHandle;
|
OSHeapHandle wramHeapHandle;
|
||||||
|
#ifdef SDK_TWLLTD
|
||||||
|
#ifndef SDK_ARM7_ONLY_WRAM
|
||||||
|
OSHeapHandle mainHeapHandle;
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
OSHeapHandle mainHeapHandle;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* OS 初期化 */
|
|
||||||
|
#ifndef SDK_ARM7COMP_WO_WIRELESS
|
||||||
|
#ifdef SDK_WIRELESS_IN_VRAM
|
||||||
|
WVR_ShelterExtWram();
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// OS 初期化
|
||||||
OS_Init();
|
OS_Init();
|
||||||
PrintDebugInfo();
|
PrintDebugInfo();
|
||||||
|
|
||||||
/* NVRAM からユーザー情報読み出し */
|
// NVRAM からユーザー情報読み出し
|
||||||
ReadUserInfo();
|
ReadUserInfo();
|
||||||
|
|
||||||
/* ヒープ領域設定 */
|
// ヒープ領域設定
|
||||||
heapHandle = InitializeAllocateSystem();
|
wramHeapHandle = InitializeAllocateSystem(MEM_TYPE_WRAM);
|
||||||
|
#ifdef SDK_TWLLTD
|
||||||
|
#ifndef SDK_ARM7_ONLY_WRAM
|
||||||
|
mainHeapHandle = InitializeAllocateSystem(MEM_TYPE_MAIN);
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
mainHeapHandle = InitializeAllocateSystem(MEM_TYPE_MAIN);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* ボタン入力サーチ初期化 */
|
// ボタン入力サーチ初期化
|
||||||
(void)PAD_InitXYButton();
|
(void)PAD_InitXYButton();
|
||||||
|
|
||||||
/* 割込み許可 */
|
// 割り込み許可
|
||||||
(void)OS_SetIrqFunction(OS_IE_V_BLANK, VBlankIntr);
|
(void)OS_SetIrqFunction(OS_IE_V_BLANK, VBlankIntr);
|
||||||
(void)OS_EnableIrqMask(OS_IE_V_BLANK);
|
(void)OS_EnableIrqMask(OS_IE_V_BLANK);
|
||||||
(void)GX_VBlankIntr(TRUE);
|
(void)GX_VBlankIntr(TRUE);
|
||||||
(void)OS_EnableIrq();
|
(void)OS_EnableIrq();
|
||||||
(void)OS_EnableInterrupts();
|
(void)OS_EnableInterrupts();
|
||||||
|
|
||||||
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
|
||||||
KamiPxiInit();
|
KamiPxiInit();
|
||||||
#endif
|
|
||||||
|
|
||||||
/* 各ライブラリ初期化 */
|
// ファイルシステム初期化
|
||||||
AES_Init(THREAD_PRIO_AES); // AES
|
FS_Init(FS_DMA_NOT_USE);
|
||||||
SEA_Init(THREAD_PRIO_SEA); // SEA
|
FS_CreateReadServerThread(THREAD_PRIO_FS);
|
||||||
FS_Init(FS_DMA_NOT_USE); // FS for CARD
|
|
||||||
FS_CreateReadServerThread(THREAD_PRIO_FS); // FS for CARD
|
|
||||||
InitializeFatfs(); // FAT-FS
|
|
||||||
InitializeNwm(heapHandle); // TWL 無線
|
|
||||||
MCU_InitIrq(THREAD_PRIO_MCU); // マイコン
|
|
||||||
|
|
||||||
if (OSi_IsCodecTwlMode() == TRUE)
|
if (OS_IsRunOnTwl() == TRUE)
|
||||||
{
|
{
|
||||||
InitializeCdc(); // CODEC
|
InitializeFatfs(); // FATFS 初期化
|
||||||
CAMERA_Init(); // カメラ
|
#ifndef SDK_ARM7COMP_WO_WIRELESS
|
||||||
|
#ifndef SDK_SEA // !暫定処置!
|
||||||
|
// NWM 初期化
|
||||||
|
#ifdef SDK_TWLLTD
|
||||||
|
#ifdef SDK_ARM7_ONLY_WRAM
|
||||||
|
InitializeNwm(wramHeapHandle, wramHeapHandle); // tarsier コンポーネントでは、ヒープは全て WRAM
|
||||||
|
#else
|
||||||
|
InitializeNwm(mainHeapHandle, mainHeapHandle); // LIMITED モードでは 無線のヒープを MAIN から確保
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
InitializeNwm(wramHeapHandle, mainHeapHandle); // HYBRID モードでは 無線のヒープを WRAM から確保
|
||||||
|
#endif
|
||||||
|
#endif // ifndef SDK_SEA
|
||||||
|
#endif // SDK_ARM7COMP_WO_WIRELESS
|
||||||
|
AES_Init(AES_DMA_5, AES_DMA_6, THREAD_PRIO_AES); // AES 初期化
|
||||||
|
#ifdef SDK_SEA
|
||||||
|
SEA_Init(THREAD_PRIO_SEA);
|
||||||
|
#endif // ifdef SDK_SEA
|
||||||
|
MCU_InitIrq(THREAD_PRIO_MCU); // MCU 初期化
|
||||||
|
|
||||||
|
CDC_InitLib(); // CODECライブラリ初期化
|
||||||
}
|
}
|
||||||
|
|
||||||
SND_Init(THREAD_PRIO_SND); // サウンド
|
#ifndef SDK_ARM7COMP_WO_CAMERA
|
||||||
SNDEX_Init(THREAD_PRIO_SNDEX); // サウンド拡張
|
if (OSi_IsCodecTwlMode() == TRUE)
|
||||||
RTC_Init(THREAD_PRIO_RTC); // RTC
|
{
|
||||||
WVR_Begin(heapHandle); // NITRO 無線
|
// カメラ初期化
|
||||||
|
CAMERA_Init();
|
||||||
|
/* CODEC が TWL モードでないとシャッター音を強制的に鳴らす
|
||||||
|
機能が使用できません。この為、CODEC が TWL モードの場合
|
||||||
|
にのみカメラライブラリを使用可能な状態にします。 */
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// サウンド初期化
|
||||||
|
SND_Init(THREAD_PRIO_SND);
|
||||||
|
if (OS_IsRunOnTwl() == TRUE)
|
||||||
|
{
|
||||||
|
SNDEX_Init(THREAD_PRIO_SNDEX);
|
||||||
|
}
|
||||||
|
|
||||||
|
// RTC 初期化
|
||||||
|
RTC_Init(THREAD_PRIO_RTC);
|
||||||
|
|
||||||
|
// 旧無線初期化
|
||||||
|
#ifndef SDK_ARM7COMP_WO_WIRELESS
|
||||||
|
|
||||||
|
#ifndef SDK_WIRELESS_IN_VRAM
|
||||||
|
|
||||||
|
#ifndef SDK_SEA // !暫定処置!
|
||||||
|
WVR_Begin(wramHeapHandle);
|
||||||
|
#endif // ifdef SDK_SEA
|
||||||
|
|
||||||
|
#else /* SDK_WIRELESS_IN_VRAM */
|
||||||
|
WVR_Init(wramHeapHandle);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // SDK_ARM7COMP_WO_WIRELESS
|
||||||
|
|
||||||
|
// SPI 初期化
|
||||||
SPI_Init(THREAD_PRIO_SPI);
|
SPI_Init(THREAD_PRIO_SPI);
|
||||||
InitializeCardPower(); // カード電源ON(検査プログラム用)
|
|
||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
{
|
{
|
||||||
OS_Halt();
|
OS_Halt();
|
||||||
|
|
||||||
/* ソフトウェアリセット要求は監視しない */
|
//---- check reset
|
||||||
/* AGB カートリッジの挿抜チェックは行わない */
|
if (OS_IsResetOccurred())
|
||||||
/* DS カードの挿抜チェックは行わない */
|
{
|
||||||
|
//VIB_STOP
|
||||||
|
CTRDG_VibPulseEdgeUpdate(NULL);
|
||||||
|
|
||||||
|
OS_ResetSystem();
|
||||||
|
}
|
||||||
|
|
||||||
|
//---- check pull out cartridge
|
||||||
|
CTRDG_CheckPullOut_Polling();
|
||||||
|
|
||||||
|
#ifndef SDK_SMALL_BUILD
|
||||||
|
//---- check pull out card
|
||||||
|
CARD_CheckPullOut_Polling();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#include <nitro/main_begin.h>
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: PrintDebugInfo
|
Name: PrintDebugInfo
|
||||||
Description: ARM7 コンポーネントの情報をデバッグ出力する。
|
Description: ARM7 コンポーネントの情報をデバッグ出力する。
|
||||||
@ -165,66 +280,47 @@ TwlSpMain(void)
|
|||||||
static void
|
static void
|
||||||
PrintDebugInfo(void)
|
PrintDebugInfo(void)
|
||||||
{
|
{
|
||||||
OS_TPrintf("ARM7: This component is running on TWL.\n");
|
if(OS_IsRunOnTwl())
|
||||||
OS_TPrintf("ARM7: This component is \"armadillo.TWL\".\n");
|
{
|
||||||
}
|
OS_TPrintf("%s TWL\n",strARM7);
|
||||||
|
}
|
||||||
/*---------------------------------------------------------------------------*
|
else
|
||||||
Name: InitializeAllocateSystem
|
{
|
||||||
Description: メモリ割当てシステムを初期化する。
|
OS_TPrintf("%s NITRO\n",strARM7);
|
||||||
Arguments: None.
|
}
|
||||||
Returns: OSHeapHandle - WRAM アリーナ上に確保されたヒープのハンドルを返す。
|
#ifdef SDK_SEA
|
||||||
*---------------------------------------------------------------------------*/
|
#ifdef SDK_TWLLTD
|
||||||
static OSHeapHandle
|
OS_TPrintf("%s armadillo.TWL\n",strARM7);
|
||||||
InitializeAllocateSystem(void)
|
#else /* ifdef SDK_TWLLTD */
|
||||||
{
|
#error invalid parameter combination
|
||||||
OSHeapHandle hh;
|
#endif /* ifdef SDK_TWLLTD else */
|
||||||
void* subLo = (void*)OS_GetWramSubArenaLo();
|
#else /* ifdef SDK_SEA */
|
||||||
void* subHi = (void*)OS_GetWramSubArenaHi();
|
#ifdef SDK_TWLLTD
|
||||||
void* privLo = (void*)OS_GetWramSubPrivArenaLo();
|
#ifdef SDK_ARM7_ONLY_WRAM
|
||||||
void* privHi = (void*)OS_GetWramSubPrivArenaHi();
|
OS_TPrintf("%s tarsier.TWL\n",strARM7);
|
||||||
|
#else
|
||||||
if (((u32)privLo == HW_PRV_WRAM) && ((u32)subHi == HW_PRV_WRAM) && ((u32)subLo < HW_PRV_WRAM))
|
#if defined(SDK_ARM7COMP_WO_WIRELESS) && defined(SDK_ARM7COMP_WO_CAMERA)
|
||||||
{
|
OS_TPrintf("%s ferret.TWL\n", strARM7);
|
||||||
/* SUB アリーナを SUBPRIV アリーナに吸収 */
|
#else
|
||||||
OS_SetWramSubArenaHi(subLo);
|
OS_TPrintf("%s racoon.TWL\n",strARM7);
|
||||||
OS_SetWramSubPrivArenaLo(subLo);
|
#endif
|
||||||
privLo = subLo;
|
#endif
|
||||||
}
|
#else /* ifdef SDK_TWLLTD */
|
||||||
|
#ifdef SDK_WIRELESS_IN_VRAM
|
||||||
/* アリーナを 0 クリア */
|
OS_TPrintf("%s ichneumon.TWL\n",strARM7);
|
||||||
MI_CpuClear8(privLo, (u32)privHi - (u32)privLo);
|
#else /* ifdef SDK_WIRELESS_IN_VRAM */
|
||||||
|
OS_TPrintf("%s mongoose.TWL\n",strARM7);
|
||||||
/* ヒープ作成初期化 */
|
#endif /* ifdef SDK_WIRELESS_IN_VRAM else */
|
||||||
privLo = OS_InitAlloc(OS_ARENA_WRAM_SUBPRIV, privLo, privHi, 1);
|
#endif /* ifdef SDK_TWLLTD else */
|
||||||
hh = OS_CreateHeap(OS_ARENA_WRAM_SUBPRIV, privLo, privHi);
|
#endif /* ifdef SDK_SEA else */
|
||||||
if (hh < 0)
|
|
||||||
{
|
|
||||||
OS_Panic("ARM7: Failed to 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 create heap.\n");
|
|
||||||
}
|
|
||||||
OS_TPrintf("ARM7: heap size [%d]\n", heapSize);
|
|
||||||
}
|
|
||||||
|
|
||||||
return hh;
|
|
||||||
}
|
}
|
||||||
|
#include <nitro/main_end.h>
|
||||||
|
|
||||||
|
#include <twl/ltdwram_begin.h>
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: InitializeFatfs
|
Name: InitializeFatfs
|
||||||
Description: FATFSライブラリを初期化する。
|
Description: FATFSライブラリを初期化する。FATFS初期化関数内でスレッド休止
|
||||||
|
する為、休止中動作するダミーのスレッドを立てる。
|
||||||
Arguments: None.
|
Arguments: None.
|
||||||
Returns: None.
|
Returns: None.
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
@ -237,81 +333,410 @@ InitializeFatfs(void)
|
|||||||
// do nothing
|
// do nothing
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#include <twl/ltdwram_end.h>
|
||||||
|
|
||||||
|
#ifndef SDK_ARM7COMP_WO_WIRELESS
|
||||||
|
#include <twl/ltdwram_begin.h>
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: InitializeNwm
|
Name: InitializeNwm
|
||||||
Description: NWMライブラリを初期化する。
|
Description: NWMライブラリを初期化する。
|
||||||
Arguments: hh - 利用可能なヒープのハンドルを指定。
|
Arguments: None.
|
||||||
Returns: None.
|
Returns: None.
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
static void
|
static void
|
||||||
InitializeNwm(OSHeapHandle hh)
|
InitializeNwm(OSHeapHandle drvHeapHandle, OSHeapHandle wpaHeapHandle)
|
||||||
{
|
{
|
||||||
NwmspInit nwmInit;
|
NwmspInit nwmInit;
|
||||||
|
|
||||||
/* [TODO] 確保しているヒープ領域が新無線一式が必要としているメモリ量以上かのチェックが必要 */
|
nwmInit.dmaNo = NWM_DMANO;
|
||||||
|
|
||||||
nwmInit.cmdPrio = THREAD_PRIO_NWM_COMMAND;
|
nwmInit.cmdPrio = THREAD_PRIO_NWM_COMMAND;
|
||||||
nwmInit.evtPrio = THREAD_PRIO_NWM_EVENT;
|
nwmInit.evtPrio = THREAD_PRIO_NWM_EVENT;
|
||||||
nwmInit.sdioPrio = THREAD_PRIO_NWM_SDIO;
|
nwmInit.sdioPrio = THREAD_PRIO_NWM_SDIO;
|
||||||
|
|
||||||
nwmInit.dmaNo = DMA_NO_NWM;
|
#ifdef SDK_TWLLTD
|
||||||
nwmInit.drvHeap.id = OS_ARENA_WRAM_SUBPRIV;
|
#ifdef SDK_ARM7_ONLY_WRAM
|
||||||
nwmInit.drvHeap.handle = hh;
|
nwmInit.drvHeap.id = OS_ARENA_WRAM_SUBPRIV; /* [TODO] */
|
||||||
|
#else
|
||||||
|
nwmInit.drvHeap.id = OS_ARENA_MAIN_SUBPRIV; /* [TODO] */
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
nwmInit.drvHeap.id = OS_ARENA_WRAM_SUBPRIV; /* [TODO] */
|
||||||
|
#endif
|
||||||
|
nwmInit.drvHeap.handle = drvHeapHandle;
|
||||||
|
|
||||||
nwmInit.wpaPrio = THREAD_PRIO_NWM_WPA;
|
nwmInit.wpaPrio = THREAD_PRIO_NWM_WPA;
|
||||||
nwmInit.wpaHeap.id = OS_ARENA_WRAM_SUBPRIV;
|
#ifdef SDK_TWLLTD
|
||||||
nwmInit.wpaHeap.handle = hh;
|
#ifdef SDK_ARM7_ONLY_WRAM
|
||||||
|
nwmInit.wpaHeap.id = OS_ARENA_WRAM_SUBPRIV; /* [TODO] */
|
||||||
|
#else
|
||||||
|
nwmInit.wpaHeap.id = OS_ARENA_MAIN_SUBPRIV; /* [TODO] */
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
nwmInit.wpaHeap.id = OS_ARENA_MAIN_SUBPRIV; /* [TODO] */
|
||||||
|
#endif
|
||||||
|
nwmInit.wpaHeap.handle = wpaHeapHandle;
|
||||||
|
|
||||||
NWMSP_Init(&nwmInit);
|
NWMSP_Init(&nwmInit);
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
|
#include <twl/ltdwram_end.h>
|
||||||
|
#endif // SDK_ARM7COMP_WO_WIRELESS
|
||||||
|
|
||||||
|
#include <twl/ltdwram_begin.h>
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: InitializeCardPower
|
Name: DummyThread
|
||||||
Description: カード電源をONする。
|
Description: FATFSライブラリ、CDCライブラリを初期化する際に立てるダミーの
|
||||||
Arguments: None.
|
スレッド。
|
||||||
|
Arguments: arg - 使用しない。
|
||||||
Returns: None.
|
Returns: None.
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
static void
|
static void
|
||||||
InitializeCardPower(void)
|
DummyThread(void* arg)
|
||||||
{
|
{
|
||||||
// チャッタリングカウンタの値を設定
|
#pragma unused(arg)
|
||||||
reg_MI_MC1 = (u32)((reg_MI_MC1 & ~REG_MI_MC1_CC_MASK) |
|
while (TRUE)
|
||||||
(CHATTERING_COUNTER << REG_MI_MC1_CC_SHIFT));
|
|
||||||
|
|
||||||
// チャタリングカウンタ分待つことによりCDETが0になる
|
|
||||||
OS_SpinWait( OS_MSEC_TO_CPUCYC(200) );
|
|
||||||
|
|
||||||
// カードスロット1電源ON
|
|
||||||
HOTSWi_TurnCardPowerOn(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
|
||||||
Name: InitializeCdc
|
|
||||||
Description: CDCライブラリを初期化する。
|
|
||||||
Arguments: None.
|
|
||||||
Returns: None.
|
|
||||||
*---------------------------------------------------------------------------*/
|
|
||||||
static void
|
|
||||||
InitializeCdc(void)
|
|
||||||
{
|
|
||||||
u32 spiLockId;
|
|
||||||
|
|
||||||
spiLockId = (u32)OS_GetLockID();
|
|
||||||
if (spiLockId == OS_LOCK_ID_ERROR)
|
|
||||||
{
|
{
|
||||||
OS_Warning("OS_GetLockID failed.\n");
|
}
|
||||||
|
}
|
||||||
|
#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 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* CODEC 初期化 */
|
return hh;
|
||||||
SPI_Lock(spiLockId);
|
|
||||||
CDC_Init();
|
|
||||||
SPI_Unlock(spiLockId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//#ifdef WM_PRECALC_ALLOWEDCHANNEL
|
/*---------------------------------------------------------------------------*
|
||||||
//extern u16 WMSP_GetAllowedChannel(u16 bitField);
|
Name: InitializeAllocateSystemCore
|
||||||
//#endif
|
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(strFailedCreateHeap, strARM7, strMemMAIN);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// カレントヒープに設定
|
||||||
|
(void)OS_SetCurrentHeap(OS_ARENA_MAIN_SUBPRIV, hh);
|
||||||
|
// ヒープサイズの確認
|
||||||
|
{
|
||||||
|
u32 heapSize;
|
||||||
|
|
||||||
|
heapSize = (u32)OS_CheckHeap(OS_ARENA_MAIN_SUBPRIV, hh);
|
||||||
|
|
||||||
|
if( heapSize <= 0) /* ヒープ領域の確保に失敗 */
|
||||||
|
{
|
||||||
|
OS_Panic(strFailedCreateHeap, strARM7, strMemMAIN);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef SDK_TWLLTD
|
||||||
|
#ifndef SDK_ARM7COMP_WO_WIRELESS
|
||||||
|
{
|
||||||
|
if ((ATH_DRV_HEAP_SIZE + WPA_HEAP_SIZE) > heapSize)
|
||||||
|
{
|
||||||
|
OS_Panic(strInsufficientHeapSize, strARM7, heapSize, ATH_DRV_HEAP_SIZE + WPA_HEAP_SIZE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OS_TPrintf(strHeapSizeIs, strMemMAIN, heapSize, heapSize - (ATH_DRV_HEAP_SIZE + WPA_HEAP_SIZE) );
|
||||||
|
#else
|
||||||
|
OS_TPrintf(strHeapSizeIs, strMemMAIN, heapSize, heapSize);
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
OS_TPrintf(strHeapSizeIs, strMemMAIN, heapSize, heapSize);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 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(strFailedCreateHeap, strARM7, strMemWRAM);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// カレントヒープに設定
|
||||||
|
(void)OS_SetCurrentHeap(OS_ARENA_WRAM_SUBPRIV, hh);
|
||||||
|
|
||||||
|
// ヒープサイズの確認
|
||||||
|
{
|
||||||
|
u32 heapSize;
|
||||||
|
|
||||||
|
heapSize = (u32)OS_CheckHeap(OS_ARENA_WRAM_SUBPRIV, hh);
|
||||||
|
|
||||||
|
if( heapSize <= 0) /* ヒープ領域の確保に失敗 */
|
||||||
|
{
|
||||||
|
OS_Panic(strFailedCreateHeap, strARM7, strMemWRAM);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef SDK_ARM7COMP_WO_WIRELESS
|
||||||
|
if (WM_WL_HEAP_SIZE > heapSize)
|
||||||
|
{
|
||||||
|
OS_Panic(strInsufficientHeapSize, strARM7, heapSize, WM_WL_HEAP_SIZE);
|
||||||
|
}
|
||||||
|
OS_TPrintf(strHeapSizeIs, strMemWRAM, heapSize, (heapSize-WM_WL_HEAP_SIZE));
|
||||||
|
#else
|
||||||
|
OS_TPrintf(strHeapSizeIs, strMemWRAM, heapSize, heapSize);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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(strFailedCreateHeap, strARM7, strMemMAIN);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ヒープサイズの確認
|
||||||
|
{
|
||||||
|
u32 heapSize;
|
||||||
|
|
||||||
|
heapSize = (u32)OS_CheckHeap(OS_ARENA_MAIN_SUBPRIV, hh);
|
||||||
|
|
||||||
|
if( heapSize <= 0) /* ヒープ領域の確保に失敗 */
|
||||||
|
{
|
||||||
|
OS_Panic(strFailedCreateHeap, strARM7, strMemMAIN);
|
||||||
|
}
|
||||||
|
|
||||||
|
OS_TPrintf(strHeapSizeIs, strMainBeforeAdd, heapSize, 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(strFailedCreateHeap, strARM7, strMemMAIN);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef SDK_ARM7COMP_WO_WIRELESS
|
||||||
|
if ((WPA_HEAP_SIZE) > heapSize)
|
||||||
|
{
|
||||||
|
OS_Panic(strInsufficientHeapSize, strARM7, heapSize, WPA_HEAP_SIZE);
|
||||||
|
}
|
||||||
|
OS_TPrintf(strHeapSizeIs, strMemMAIN, heapSize, (heapSize-WPA_HEAP_SIZE));
|
||||||
|
#else
|
||||||
|
OS_TPrintf(strHeapSizeIs, strMemMAIN, heapSize, heapSize);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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(strFailedCreateHeap, strARM7, strMemWRAM);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ヒープサイズの確認
|
||||||
|
{
|
||||||
|
u32 heapSize;
|
||||||
|
|
||||||
|
heapSize = (u32)OS_CheckHeap(OS_ARENA_WRAM_SUBPRIV, hh);
|
||||||
|
|
||||||
|
if( heapSize <= 0) /* ヒープ領域の確保に失敗 */
|
||||||
|
{
|
||||||
|
OS_Panic(strFailedCreateHeap, strARM7, strMemWRAM);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (WM_WL_HEAP_SIZE > heapSize)
|
||||||
|
{
|
||||||
|
OS_Panic(strInsufficientHeapSize, strARM7, heapSize, WM_WL_HEAP_SIZE);
|
||||||
|
}
|
||||||
|
OS_TPrintf(strHeapSizeIs, strWramBeforeAdd, heapSize, (heapSize - WM_WL_HEAP_SIZE) );
|
||||||
|
}
|
||||||
|
|
||||||
|
// ヒープに拡張ブロックを追加
|
||||||
|
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(strFailedCreateHeap, strARM7, strMemWRAM);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef SDK_ARM7COMP_WO_WIRELESS
|
||||||
|
if (ATH_DRV_HEAP_SIZE + WM_WL_HEAP_SIZE > heapSize)
|
||||||
|
{
|
||||||
|
OS_Panic(strInsufficientHeapSize, strARM7, heapSize, WM_WL_HEAP_SIZE + ATH_DRV_HEAP_SIZE );
|
||||||
|
}
|
||||||
|
OS_TPrintf(strHeapSizeIs, strMemWRAM, heapSize, heapSize - (WM_WL_HEAP_SIZE + ATH_DRV_HEAP_SIZE) );
|
||||||
|
#else
|
||||||
|
OS_TPrintf(strHeapSizeIs, strMemWRAM, heapSize, (heapSize - WM_WL_HEAP_SIZE) );
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return hh;
|
||||||
|
}
|
||||||
|
#include <twl/ltdwram_end.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef WM_PRECALC_ALLOWEDCHANNEL
|
||||||
|
extern u16 WMSP_GetAllowedChannel(u16 bitField);
|
||||||
|
#endif
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: ReadUserInfo
|
Name: ReadUserInfo
|
||||||
|
|
||||||
@ -405,7 +830,7 @@ static void ReadUserInfo(void)
|
|||||||
// 共有領域に展開
|
// 共有領域に展開
|
||||||
MI_CpuCopy8(wMac, p, 6);
|
MI_CpuCopy8(wMac, p, 6);
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
#ifdef WM_PRECALC_ALLOWEDCHANNEL
|
#ifdef WM_PRECALC_ALLOWEDCHANNEL
|
||||||
// 使用可能チャンネルから使用許可チャンネルを計算
|
// 使用可能チャンネルから使用許可チャンネルを計算
|
||||||
{
|
{
|
||||||
@ -422,7 +847,6 @@ static void ReadUserInfo(void)
|
|||||||
*((u16 *)p) = allowedChannel;
|
*((u16 *)p) = allowedChannel;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef NVRAM_CONFIG_DATA_EX_VERSION
|
#ifdef NVRAM_CONFIG_DATA_EX_VERSION
|
||||||
@ -642,7 +1066,7 @@ static s32 CheckCorrectNCD(NVRAMConfig *ncdsp)
|
|||||||
Returns: None.
|
Returns: None.
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
extern BOOL PMi_Initialized;
|
extern BOOL PMi_Initialized;
|
||||||
extern void PM_SelfBlinkProc(void);
|
void PM_SelfBlinkProc(void);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
VBlankIntr(void)
|
VBlankIntr(void)
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
SYSM_DISABLE_DEBUG = FALSE
|
SYSM_DISABLE_DEBUG = FALSE
|
||||||
|
|
||||||
TARGET_FIRM = SYSTEMMENU
|
#TARGET_FIRM = SYSTEMMENU
|
||||||
TARGET_PLATFORM = TWL
|
TARGET_PLATFORM = TWL
|
||||||
TWL_ARCHGEN = LIMITED
|
TWL_ARCHGEN = LIMITED
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ TARGET_BIN = NandFirmWriter.srl
|
|||||||
LCFILE_SPEC = ARM9-TS.lsf
|
LCFILE_SPEC = ARM9-TS.lsf
|
||||||
ROM_SPEC = main.rsf
|
ROM_SPEC = main.rsf
|
||||||
|
|
||||||
MAKEROM_ARM7_BASE = ../ARM7.TWL/bin/$(TWL_BUILDTYPE_ARM7)/armadillo
|
MAKEROM_ARM7_BASE = ../ARM7.TWL/bin/$(TWL_BUILDTYPE_ARM7)/racoon
|
||||||
MAKEROM_ARM7 = $(MAKEROM_ARM7_BASE).$(TWL_ELF_EXT)
|
MAKEROM_ARM7 = $(MAKEROM_ARM7_BASE).$(TWL_ELF_EXT)
|
||||||
|
|
||||||
SRCS = main.c \
|
SRCS = main.c \
|
||||||
@ -71,7 +71,7 @@ SDK_APPEND_LIBS = \
|
|||||||
|
|
||||||
LLIBRARIES += $(SYSMENU_LIBS) $(SDK_APPEND_LIBS)
|
LLIBRARIES += $(SYSMENU_LIBS) $(SDK_APPEND_LIBS)
|
||||||
|
|
||||||
MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.secure.exe
|
MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.exe
|
||||||
|
|
||||||
#LDIRT_CLEAN =
|
#LDIRT_CLEAN =
|
||||||
#INSTALL_TARGETS =
|
#INSTALL_TARGETS =
|
||||||
|
|||||||
@ -123,22 +123,22 @@ Property
|
|||||||
#
|
#
|
||||||
# CommonClientKey: launcher deliver common client Key [TRUE/FALSE]
|
# CommonClientKey: launcher deliver common client Key [TRUE/FALSE]
|
||||||
#
|
#
|
||||||
CommonClientKey TRUE
|
#CommonClientKey TRUE
|
||||||
|
|
||||||
#
|
#
|
||||||
# HwAESSlotB: launcher deliver HW AES slot B setting [TRUE/FALSE]
|
# HwAESSlotB: launcher deliver HW AES slot B setting [TRUE/FALSE]
|
||||||
#
|
#
|
||||||
HwAESSlotB TRUE
|
#HwAESSlotB TRUE
|
||||||
|
|
||||||
#
|
#
|
||||||
# HwAESSlotC: launcher deliver HW AES slot C setting [TRUE/FALSE]
|
# HwAESSlotC: launcher deliver HW AES slot C setting [TRUE/FALSE]
|
||||||
#
|
#
|
||||||
HwAESSlotC TRUE
|
#HwAESSlotC TRUE
|
||||||
|
|
||||||
#
|
#
|
||||||
# SDCardAccess: sd card access control [TRUE/FALSE]
|
# SDCardAccess: sd card access control [TRUE/FALSE]
|
||||||
#
|
#
|
||||||
SDCardAccess TRUE
|
SDCardAccess Read
|
||||||
|
|
||||||
#
|
#
|
||||||
# NANDAccess: NAND access control [TRUE/FALSE]
|
# NANDAccess: NAND access control [TRUE/FALSE]
|
||||||
@ -176,7 +176,7 @@ AppendProperty
|
|||||||
#
|
#
|
||||||
# Application type : [USER/SYSTEM]
|
# Application type : [USER/SYSTEM]
|
||||||
# don't have to edit
|
# don't have to edit
|
||||||
AppType System
|
#AppType System
|
||||||
|
|
||||||
#
|
#
|
||||||
# launch title on the launcher : [TRUE/FALSE]
|
# launch title on the launcher : [TRUE/FALSE]
|
||||||
@ -191,7 +191,7 @@ AppendProperty
|
|||||||
#
|
#
|
||||||
# Secure title : [TRUE/FALSE]
|
# Secure title : [TRUE/FALSE]
|
||||||
# don't have to edit
|
# don't have to edit
|
||||||
Secure TRUE
|
#Secure TRUE
|
||||||
|
|
||||||
#
|
#
|
||||||
# Boot allowed Media: [GameCard/NAND]
|
# Boot allowed Media: [GameCard/NAND]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user