mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
CTRモードで初期化したDSカードI/FをリセットしないようにしてTWLカードを起動可能に。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/branches/20100611_RedLauncher_Remodel@2942 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
c03ff6828e
commit
27454334d1
@ -18,9 +18,6 @@
|
|||||||
ifndef TWL_SYSMENU_COMMONDEFS_
|
ifndef TWL_SYSMENU_COMMONDEFS_
|
||||||
TWL_SYSMENU_COMMONDEFS_ = TRUE
|
TWL_SYSMENU_COMMONDEFS_ = TRUE
|
||||||
|
|
||||||
SYSM_FOR_CTR = TRUE
|
|
||||||
SYSM_NO_LOAD = TRUE
|
|
||||||
|
|
||||||
ifdef SYSM_FOR_CTR
|
ifdef SYSM_FOR_CTR
|
||||||
MACRO_FLAGS += -DSYSM_FOR_CTR
|
MACRO_FLAGS += -DSYSM_FOR_CTR
|
||||||
ifdef SYSM_NO_LOAD
|
ifdef SYSM_NO_LOAD
|
||||||
|
|||||||
@ -134,8 +134,10 @@ TwlSpMain(void)
|
|||||||
}
|
}
|
||||||
PMi_SetControl( PMIC_CTL_BKLT1 | PMIC_CTL_BKLT2 );
|
PMi_SetControl( PMIC_CTL_BKLT1 | PMIC_CTL_BKLT2 );
|
||||||
|
|
||||||
|
#ifndef SYSM_NO_LOAD
|
||||||
#ifdef INITIAL_KEYTABLE_PRELOAD
|
#ifdef INITIAL_KEYTABLE_PRELOAD
|
||||||
HOTSW_CopyInitialKeyTable();
|
HOTSW_CopyInitialKeyTable();
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// OS <20>‰Šú‰»
|
// OS <20>‰Šú‰»
|
||||||
@ -253,6 +255,8 @@ TwlSpMain(void)
|
|||||||
|
|
||||||
BOOT_Init();
|
BOOT_Init();
|
||||||
|
|
||||||
|
#ifndef SYSM_NO_LOAD
|
||||||
|
|
||||||
// Šˆ<C5A0>ð‘}”²‹@”\<5C>‰Šú‰»
|
// Šˆ<C5A0>ð‘}”²‹@”\<5C>‰Šú‰»
|
||||||
if( ( SYSM_GetLauncherParamBody()->v1.flags.isValid ) &&
|
if( ( SYSM_GetLauncherParamBody()->v1.flags.isValid ) &&
|
||||||
( SYSM_GetLauncherParamBody()->v1.flags.bootType != LAUNCHER_BOOTTYPE_ROM ) &&
|
( SYSM_GetLauncherParamBody()->v1.flags.bootType != LAUNCHER_BOOTTYPE_ROM ) &&
|
||||||
@ -279,6 +283,8 @@ TwlSpMain(void)
|
|||||||
|
|
||||||
HOTSW_Init(THREAD_PRIO_HOTSW);
|
HOTSW_Init(THREAD_PRIO_HOTSW);
|
||||||
|
|
||||||
|
#endif // SYSM_NO_LOAD
|
||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
{
|
{
|
||||||
OS_Halt();
|
OS_Halt();
|
||||||
|
|||||||
@ -191,6 +191,7 @@ static void BOOTi_RebootCallback( void** entryp, void* mem_list_v, REBOOTTarget*
|
|||||||
// FSによってshared領域にコピーされたランチャー自身のマウントパスのクリア
|
// FSによってshared領域にコピーされたランチャー自身のマウントパスのクリア
|
||||||
MI_CpuClearFast((char *)HW_TWL_FS_BOOT_SRL_PATH_BUF, OS_MOUNT_PATH_LEN);
|
MI_CpuClearFast((char *)HW_TWL_FS_BOOT_SRL_PATH_BUF, OS_MOUNT_PATH_LEN);
|
||||||
|
|
||||||
|
#ifndef SYSM_NO_LOAD
|
||||||
// NAND/TMPアプリ用KeyTableの生成
|
// NAND/TMPアプリ用KeyTableの生成
|
||||||
if( ! SYSMi_GetWork()->flags.arm9.isCardBoot )
|
if( ! SYSMi_GetWork()->flags.arm9.isCardBoot )
|
||||||
{
|
{
|
||||||
@ -203,10 +204,14 @@ static void BOOTi_RebootCallback( void** entryp, void* mem_list_v, REBOOTTarget*
|
|||||||
HOTSWi_SetSecureSegmentBuffer(HOTSW_MODE1, addr, SECURE_AREA_SIZE);
|
HOTSWi_SetSecureSegmentBuffer(HOTSW_MODE1, addr, SECURE_AREA_SIZE);
|
||||||
HOTSW_DecryptObjectFile( addr );
|
HOTSW_DecryptObjectFile( addr );
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// TWL/NTRモード判定
|
// TWL/NTRモード判定
|
||||||
if ( ! dh->s.platform_code ||
|
if ( ! dh->s.platform_code
|
||||||
(SYSM_IsRunOnDebugger() && ((SYSMRomEmuInfo*)HOTSW_GetRomEmulationBuffer())->isForceNTRMode) )
|
#ifndef SYSM_NO_LOAD
|
||||||
|
|| (SYSM_IsRunOnDebugger() && ((SYSMRomEmuInfo*)HOTSW_GetRomEmulationBuffer())->isForceNTRMode)
|
||||||
|
#endif
|
||||||
|
)
|
||||||
{
|
{
|
||||||
isNtrMode = TRUE;
|
isNtrMode = TRUE;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -79,9 +79,11 @@ void BOOT_Ready( void )
|
|||||||
ROM_Header *dh = (ROM_Header *)(SYSMi_GetWork()->romHeaderNTR); // DS互換ROMヘッダ(非キャッシュ領域)
|
ROM_Header *dh = (ROM_Header *)(SYSMi_GetWork()->romHeaderNTR); // DS互換ROMヘッダ(非キャッシュ領域)
|
||||||
|
|
||||||
// HOTSW終了処理待ち
|
// HOTSW終了処理待ち
|
||||||
|
#ifndef SYSM_NO_LOAD
|
||||||
while( ! HOTSW_isFinalized() ) {
|
while( ! HOTSW_isFinalized() ) {
|
||||||
OS_Sleep( 1 );
|
OS_Sleep( 1 );
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// リブート
|
// リブート
|
||||||
REBOOTi_SetTwlRomHeaderAddr( th );
|
REBOOTi_SetTwlRomHeaderAddr( th );
|
||||||
@ -133,8 +135,11 @@ static void BOOTi_RebootCallback( void** entryp, void* mem_list_v, REBOOTTarget*
|
|||||||
(void)OS_ResetRequestIrqMask( (u32)~0 );
|
(void)OS_ResetRequestIrqMask( (u32)~0 );
|
||||||
|
|
||||||
// TWL/NTRモード判定
|
// TWL/NTRモード判定
|
||||||
if ( ! dh->s.platform_code ||
|
if ( ! dh->s.platform_code
|
||||||
(SYSM_IsRunOnDebugger() && ((SYSMRomEmuInfo*)HOTSW_GetRomEmulationBuffer())->isForceNTRMode) )
|
#ifndef SYSM_NO_LOAD
|
||||||
|
|| (SYSM_IsRunOnDebugger() && ((SYSMRomEmuInfo*)HOTSW_GetRomEmulationBuffer())->isForceNTRMode)
|
||||||
|
#endif
|
||||||
|
)
|
||||||
{
|
{
|
||||||
isNtrMode = TRUE;
|
isNtrMode = TRUE;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -190,6 +190,8 @@ static void FSi_WramThread(void* arg)
|
|||||||
result = FS_ReadFile( FSiWramWork.p_file, cmd->addr, cmd->length );
|
result = FS_ReadFile( FSiWramWork.p_file, cmd->addr, cmd->length );
|
||||||
//OS_TPrintf("%s: (0x%08X) %d msec\n", __func__, cmd->addr, (int)OS_TicksToMilliSeconds(OS_GetTick()));
|
//OS_TPrintf("%s: (0x%08X) %d msec\n", __func__, cmd->addr, (int)OS_TicksToMilliSeconds(OS_GetTick()));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#ifndef SYSM_NO_LOAD
|
||||||
case FS_WRAM_COMMAND_READ_CARD:
|
case FS_WRAM_COMMAND_READ_CARD:
|
||||||
// <20>J<EFBFBD>[<5B>h<EFBFBD>Š<EFBFBD>[<5B>h
|
// <20>J<EFBFBD>[<5B>h<EFBFBD>Š<EFBFBD>[<5B>h
|
||||||
if(!FSi_IsValidAddressForARM7(cmd->addr, (u32)cmd->length))
|
if(!FSi_IsValidAddressForARM7(cmd->addr, (u32)cmd->length))
|
||||||
@ -202,6 +204,8 @@ static void FSi_WramThread(void* arg)
|
|||||||
result = (card_read_state == CARD_READ_SUCCESS) ? cmd->length : 0;
|
result = (card_read_state == CARD_READ_SUCCESS) ? cmd->length : 0;
|
||||||
if((card_read_state != CARD_READ_SUCCESS)) ERRORLOG_Printf( "FSi_WramThread: read-card error:%d\n", card_read_state );
|
if((card_read_state != CARD_READ_SUCCESS)) ERRORLOG_Printf( "FSi_WramThread: read-card error:%d\n", card_read_state );
|
||||||
break;
|
break;
|
||||||
|
#endif // SYSM_NO_LOAD
|
||||||
|
|
||||||
case FS_WRAM_COMMAND_WRITE:
|
case FS_WRAM_COMMAND_WRITE:
|
||||||
result = FS_WriteFile( FSiWramWork.p_file, cmd->addr, cmd->length );
|
result = FS_WriteFile( FSiWramWork.p_file, cmd->addr, cmd->length );
|
||||||
//OS_TPrintf("%s: (0x%08X) %d msec\n", __func__, cmd->addr, (int)OS_TicksToMilliSeconds(OS_GetTick()));
|
//OS_TPrintf("%s: (0x%08X) %d msec\n", __func__, cmd->addr, (int)OS_TicksToMilliSeconds(OS_GetTick()));
|
||||||
|
|||||||
@ -147,9 +147,11 @@ void SYSMi_SendKeysToARM7( void )
|
|||||||
DC_FlushRange( (void *)HW_WRAM_0, sizeof(DeliverBROM9Key) );
|
DC_FlushRange( (void *)HW_WRAM_0, sizeof(DeliverBROM9Key) );
|
||||||
MI_SetWramBank(MI_WRAM_ARM7_ALL);
|
MI_SetWramBank(MI_WRAM_ARM7_ALL);
|
||||||
|
|
||||||
|
#ifndef SYSM_NO_LOAD
|
||||||
#ifdef INITIAL_KEYTABLE_PRELOAD
|
#ifdef INITIAL_KEYTABLE_PRELOAD
|
||||||
SYSMi_GetWork()->flags.hotsw.isKeyTableLoadReady = TRUE;
|
SYSMi_GetWork()->flags.hotsw.isKeyTableLoadReady = TRUE;
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -288,13 +290,15 @@ TitleProperty *SYSM_ReadParameters( void )
|
|||||||
while( !SYSMi_GetWork()->flags.arm7.isARM9Start ) {
|
while( !SYSMi_GetWork()->flags.arm7.isARM9Start ) {
|
||||||
SVC_WaitByLoop( 0x1000 );
|
SVC_WaitByLoop( 0x1000 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef SYSM_NO_LOAD
|
||||||
//#ifdef DEBUG_USED_CARD_SLOT_B_
|
//#ifdef DEBUG_USED_CARD_SLOT_B_
|
||||||
// ARM7のカードチェック完了を待つ
|
// ARM7のカードチェック完了を待つ
|
||||||
while( !SYSMi_GetWork()->flags.hotsw.is1stCardChecked ) {
|
while( !SYSMi_GetWork()->flags.hotsw.is1stCardChecked ) {
|
||||||
SVC_WaitByLoop( 0x1000 );
|
SVC_WaitByLoop( 0x1000 );
|
||||||
}
|
}
|
||||||
//#endif
|
//#endif
|
||||||
|
#endif // SYSM_NO_LOAD
|
||||||
|
|
||||||
//-----------------------------------------------------
|
//-----------------------------------------------------
|
||||||
// ランチャーパラメータの判定
|
// ランチャーパラメータの判定
|
||||||
|
|||||||
@ -377,11 +377,16 @@ static BOOL PrepareDHTDatabase(void)
|
|||||||
static BOOL WrapperFunc_ReadCardData(void* dest, s32 offset, s32 length, void* arg)
|
static BOOL WrapperFunc_ReadCardData(void* dest, s32 offset, s32 length, void* arg)
|
||||||
{
|
{
|
||||||
#pragma unused(arg)
|
#pragma unused(arg)
|
||||||
|
|
||||||
|
#ifndef SYSM_NO_LOAD
|
||||||
|
|
||||||
HOTSW_ReadCardData( (void *)offset, dest, (u32)length);
|
HOTSW_ReadCardData( (void *)offset, dest, (u32)length);
|
||||||
|
|
||||||
|
#endif // SYSM_NO_LOAD
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
// for register SCFG_OP
|
// for register SCFG_OP
|
||||||
//================================================================================
|
//================================================================================
|
||||||
@ -611,6 +616,8 @@ static void SYSMi_DHTPhase1Callback(const void* addr, const void* orig_addr, u32
|
|||||||
DHT_CheckHashPhase1Update( &cba->ctx, addr, (s32)calc_len );
|
DHT_CheckHashPhase1Update( &cba->ctx, addr, (s32)calc_len );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef SYSM_NO_LOAD
|
||||||
|
|
||||||
static void SYSMi_FinalizeHotSWAsync( TitleProperty *pBootTitle, ROM_Header *head )
|
static void SYSMi_FinalizeHotSWAsync( TitleProperty *pBootTitle, ROM_Header *head )
|
||||||
{
|
{
|
||||||
HotSwCardState card_state;
|
HotSwCardState card_state;
|
||||||
@ -650,6 +657,8 @@ static void SYSMi_FinalizeHotSWAsync( TitleProperty *pBootTitle, ROM_Header *hea
|
|||||||
HOTSW_FinalizeHotSWAsync( card_state );
|
HOTSW_FinalizeHotSWAsync( card_state );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // SYSM_NO_LOAD
|
||||||
|
|
||||||
static void SYSMi_LoadTitleThreadFunc( TitleProperty *pBootTitle )
|
static void SYSMi_LoadTitleThreadFunc( TitleProperty *pBootTitle )
|
||||||
{
|
{
|
||||||
enum
|
enum
|
||||||
@ -865,9 +874,13 @@ OS_TPrintf("RebootSystem failed: cant read file(%p, %d, %d, %d)\n", sp_authcode,
|
|||||||
// ヘッダ読み込み完了フラグを立てる
|
// ヘッダ読み込み完了フラグを立てる
|
||||||
SYSM_SetHeaderLoadCompleted(TRUE);
|
SYSM_SetHeaderLoadCompleted(TRUE);
|
||||||
|
|
||||||
|
#ifndef SYSM_NO_LOAD
|
||||||
|
|
||||||
// HOTSW終了処理有効化
|
// HOTSW終了処理有効化
|
||||||
SYSMi_FinalizeHotSWAsync( pBootTitle, (void*)SYSM_APP_ROM_HEADER_BUF );
|
SYSMi_FinalizeHotSWAsync( pBootTitle, (void*)SYSM_APP_ROM_HEADER_BUF );
|
||||||
|
|
||||||
|
#endif // SYSM_NO_LOAD
|
||||||
|
|
||||||
// 各領域を読み込む
|
// 各領域を読み込む
|
||||||
source [region_arm9_ntr] = head->s.main_rom_offset;
|
source [region_arm9_ntr] = head->s.main_rom_offset;
|
||||||
length [region_arm9_ntr] = head->s.main_size;
|
length [region_arm9_ntr] = head->s.main_size;
|
||||||
@ -1126,12 +1139,16 @@ void SYSM_StartLoadTitle( TitleProperty *pBootTitle )
|
|||||||
#define STACK_SIZE 0xc00
|
#define STACK_SIZE 0xc00
|
||||||
static u64 stack[ STACK_SIZE / sizeof(u64) ];
|
static u64 stack[ STACK_SIZE / sizeof(u64) ];
|
||||||
|
|
||||||
|
#ifndef SYSM_NO_LOAD
|
||||||
|
|
||||||
HOTSW_InvalidHotSWAsync();
|
HOTSW_InvalidHotSWAsync();
|
||||||
// 値が変化するまでスリープして待つ。
|
// 値が変化するまでスリープして待つ。
|
||||||
while( HOTSW_isEnableHotSW() != FALSE ) {
|
while( HOTSW_isEnableHotSW() != FALSE ) {
|
||||||
OS_Sleep( 2 );
|
OS_Sleep( 2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // SYSM_NO_LOAD
|
||||||
|
|
||||||
// DataOnlyなアプリはロードも起動もしない
|
// DataOnlyなアプリはロードも起動もしない
|
||||||
if( pBootTitle->titleID & TITLE_ID_DATA_ONLY_FLAG_MASK )
|
if( pBootTitle->titleID & TITLE_ID_DATA_ONLY_FLAG_MASK )
|
||||||
{
|
{
|
||||||
|
|||||||
@ -148,14 +148,22 @@ BOOL SYSM_IsValidTSD( void )
|
|||||||
// 有効なTWL/NTRカードが差さっているか?
|
// 有効なTWL/NTRカードが差さっているか?
|
||||||
BOOL SYSM_IsExistCard( void )
|
BOOL SYSM_IsExistCard( void )
|
||||||
{
|
{
|
||||||
|
#ifdef SYSM_NO_LOAD
|
||||||
|
return TRUE;
|
||||||
|
#else // SYSM_NO_LOAD
|
||||||
return (BOOL)SYSMi_GetWork()->flags.hotsw.isExistCard;
|
return (BOOL)SYSMi_GetWork()->flags.hotsw.isExistCard;
|
||||||
|
#endif SYSM_NO_LOAD
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 検査用カードが差さっているか?
|
// 検査用カードが差さっているか?
|
||||||
BOOL SYSM_IsInspectCard( void )
|
BOOL SYSM_IsInspectCard( void )
|
||||||
{
|
{
|
||||||
|
#ifdef SYSM_NO_LOAD
|
||||||
|
return FALSE;
|
||||||
|
#else // SYSM_NO_LOAD
|
||||||
return ( SYSM_IsExistCard() && SYSMi_GetWork()->flags.hotsw.isInspectCard );
|
return ( SYSM_IsExistCard() && SYSMi_GetWork()->flags.hotsw.isInspectCard );
|
||||||
|
#endif SYSM_NO_LOAD
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -99,13 +99,17 @@ SYSMENU_LIBS = \
|
|||||||
libboot$(TWL_LIBSUFFIX).a \
|
libboot$(TWL_LIBSUFFIX).a \
|
||||||
liberrorlog$(TWL_LIBSUFFIX).a \
|
liberrorlog$(TWL_LIBSUFFIX).a \
|
||||||
libds$(TWL_LIBSUFFIX).a \
|
libds$(TWL_LIBSUFFIX).a \
|
||||||
libhotsw$(TWL_LIBSUFFIX).a \
|
|
||||||
libdht$(TWL_LIBSUFFIX).a \
|
libdht$(TWL_LIBSUFFIX).a \
|
||||||
libreloc_info$(TWL_LIBSUFFIX).a \
|
libreloc_info$(TWL_LIBSUFFIX).a \
|
||||||
libnamut$(TWL_LIBSUFFIX).a \
|
libnamut$(TWL_LIBSUFFIX).a \
|
||||||
libsharedfont_launcher$(TWL_LIBSUFFIX).a \
|
libsharedfont_launcher$(TWL_LIBSUFFIX).a \
|
||||||
WDS$(TWL_LIBSUFFIX).a
|
WDS$(TWL_LIBSUFFIX).a
|
||||||
|
|
||||||
|
ifneq ($(SYSM_NO_LOAD),TRUE)
|
||||||
|
SYSMENU_LIBS += \
|
||||||
|
libhotsw$(TWL_LIBSUFFIX).a
|
||||||
|
endif
|
||||||
|
|
||||||
SDK_APPEND_LIBS = \
|
SDK_APPEND_LIBS = \
|
||||||
libes$(TWL_LIBSUFFIX).a \
|
libes$(TWL_LIBSUFFIX).a \
|
||||||
libboc$(TWL_LIBSUFFIX).a \
|
libboc$(TWL_LIBSUFFIX).a \
|
||||||
|
|||||||
@ -18,6 +18,10 @@
|
|||||||
|
|
||||||
ifneq ($(SYSM_UPDATER_RELEASE),TRUE)
|
ifneq ($(SYSM_UPDATER_RELEASE),TRUE)
|
||||||
|
|
||||||
|
# for CTR
|
||||||
|
export SYSM_FOR_CTR = TRUE
|
||||||
|
export SYSM_NO_LOAD = TRUE
|
||||||
|
|
||||||
# COMPILE SWITCH ※最終ROM作成時は、全てFALSEにセットする。SUBDIRのビルド時にも影響するようexportで環境変数設定する。
|
# COMPILE SWITCH ※最終ROM作成時は、全てFALSEにセットする。SUBDIRのビルド時にも影響するようexportで環境変数設定する。
|
||||||
export SYSM_DO_NOT_SHOW_LAUNCHER = FALSE
|
export SYSM_DO_NOT_SHOW_LAUNCHER = FALSE
|
||||||
export SYSM_DISABLE_WDS_SCAN = TRUE
|
export SYSM_DISABLE_WDS_SCAN = TRUE
|
||||||
|
|||||||
@ -595,6 +595,8 @@ static TitleProperty *ProcessPads( TitleProperty *pTitleList )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef SYSM_NO_LOAD
|
||||||
|
|
||||||
// HOTSW許可・抑制テスト
|
// HOTSW許可・抑制テスト
|
||||||
{
|
{
|
||||||
static BOOL hotswEnable = TRUE;
|
static BOOL hotswEnable = TRUE;
|
||||||
@ -619,7 +621,9 @@ static TitleProperty *ProcessPads( TitleProperty *pTitleList )
|
|||||||
PutStringUTF16( 0, 175, TXT_COLOR_RED, L"HotSw Disable" );
|
PutStringUTF16( 0, 175, TXT_COLOR_RED, L"HotSw Disable" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // SYSM_NO_LOAD
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -232,8 +232,10 @@ void TwlMain( void )
|
|||||||
TP_Init();
|
TP_Init();
|
||||||
RTC_Init();
|
RTC_Init();
|
||||||
SND_Init();// sound init
|
SND_Init();// sound init
|
||||||
|
#ifndef SYSM_NO_LOAD
|
||||||
#ifdef USE_WRAM_LOAD
|
#ifdef USE_WRAM_LOAD
|
||||||
HOTSW_Init();
|
HOTSW_Init();
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//NAMの初期化
|
//NAMの初期化
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user