スリープ時の無線停止処理(スリープ成功率0%だったのが30%程度までしか向上できていない)。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1861 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
nakasima 2008-07-11 10:53:38 +00:00
parent b01ff7f8a1
commit b5016ec79c

View File

@ -95,6 +95,12 @@ BOOL UTL_IsValidCalibration( u16 x, u16 y, u16 correct_x, u16 correct_y )
//====================================================================== //======================================================================
// スリープ // スリープ
//====================================================================== //======================================================================
static volatile BOOL isWmEnd = FALSE;
static void UTLi_WmCallback( void* )
{
isWmEnd = TRUE;
}
// スリープモードへの遷移 // スリープモードへの遷移
void UTL_GoSleepMode( void ) void UTL_GoSleepMode( void )
@ -108,12 +114,27 @@ void UTL_GoSleepMode( void )
// デバッガ接続中だけはスリープに入らない(蓋閉じでもデバッガが起動するように) // デバッガ接続中だけはスリープに入らない(蓋閉じでもデバッガが起動するように)
if ( !SYSM_IsRunOnDebugger() || (OSi_DetectDebugger() & OS_CONSOLE_TWLDEBUGGER) ) if ( !SYSM_IsRunOnDebugger() || (OSi_DetectDebugger() & OS_CONSOLE_TWLDEBUGGER) )
{ {
// ³<E28093>üâŽ~
isWmEnd = FALSE;
WM_Reset( UTLi_WmCallback );
while (isWmEnd == FALSE)
{
OS_Sleep(1);
}
isWmEnd = FALSE;
WM_End( UTLi_WmCallback );
while (isWmEnd == FALSE)
{
OS_Sleep(1);
}
// カード抜け無検出設定 // カード抜け無検出設定
// TWLではゲームカードの再ロードが可能なため // TWLではゲームカードの再ロードが可能なため
// スリープ時のカード抜け検出を無効化 // スリープ時のカード抜け検出を無効化
// DS-IPLではゲームカードが起動できなくなるので // DS-IPLではゲームカードが起動できなくなるので
// レジューム時のROM-IDチェックでエラーになると // レジューム時のROM-IDチェックでエラーになると
// シャットダウンしていた) // シャットダウンしていた)
{
OSIntrMode enable = OS_DisableInterrupts(); OSIntrMode enable = OS_DisableInterrupts();
reg_MI_MCCNT0 &= ~REG_MI_MCCNT0_I_MASK; reg_MI_MCCNT0 &= ~REG_MI_MCCNT0_I_MASK;
OS_ResetRequestIrqMask( OS_IE_CARD_IREQ ); OS_ResetRequestIrqMask( OS_IE_CARD_IREQ );
@ -124,6 +145,7 @@ void UTL_GoSleepMode( void )
0, 0,
0 ); 0 );
} }
}
} }