mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
初回のWDS停止は成功。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1864 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
6189679100
commit
8e905728d3
@ -95,12 +95,6 @@ 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 )
|
||||||
@ -114,27 +108,12 @@ 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 );
|
||||||
@ -145,7 +124,6 @@ void UTL_GoSleepMode( void )
|
|||||||
0,
|
0,
|
||||||
0 );
|
0 );
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -32,9 +32,6 @@
|
|||||||
// extern data-----------------------------------------------------------------
|
// extern data-----------------------------------------------------------------
|
||||||
|
|
||||||
// define data-----------------------------------------------------------------
|
// define data-----------------------------------------------------------------
|
||||||
#define WDS_THREAD_PRIO 15
|
|
||||||
#define WDS_DMA_NO 3
|
|
||||||
|
|
||||||
#define INIT_DEVICES_LIKE_UIG_LAUNCHER
|
#define INIT_DEVICES_LIKE_UIG_LAUNCHER
|
||||||
|
|
||||||
#define MEASURE_TIME 1
|
#define MEASURE_TIME 1
|
||||||
@ -608,13 +605,7 @@ MAIN_LOOP_START:
|
|||||||
!LCFG_THW_IsForceDisableWireless() && // 無線強制OFFでない
|
!LCFG_THW_IsForceDisableWireless() && // 無線強制OFFでない
|
||||||
LCFG_TSD_IsAvailableWireless() // 無線ON
|
LCFG_TSD_IsAvailableWireless() // 無線ON
|
||||||
) {
|
) {
|
||||||
WDSWrapperInitializeParam param;
|
InitializeWDS(); // 初期化と動作開始を兼ねている。(失敗しても止まりはしないので、気にしない)
|
||||||
param.threadprio = WDS_THREAD_PRIO;
|
|
||||||
param.dmano = WDS_DMA_NO;
|
|
||||||
param.callback = Callback_WDSWrapper;
|
|
||||||
param.alloc = SYSM_Alloc;
|
|
||||||
param.free = SYSM_Free;
|
|
||||||
(void)WDS_WrapperInitialize( param ); // 初期化と動作開始を兼ねている。(失敗しても止まりはしないので、気にしない)
|
|
||||||
isStartScanWDS = TRUE;
|
isStartScanWDS = TRUE;
|
||||||
}
|
}
|
||||||
#endif // DISABLE_WDS_SCAN
|
#endif // DISABLE_WDS_SCAN
|
||||||
|
|||||||
@ -17,6 +17,9 @@
|
|||||||
|
|
||||||
#include "scanWDS.h"
|
#include "scanWDS.h"
|
||||||
|
|
||||||
|
#define WDS_THREAD_PRIO 15
|
||||||
|
#define WDS_DMA_NO 3
|
||||||
|
|
||||||
char *callbackstring[] = {
|
char *callbackstring[] = {
|
||||||
"WDSWRAPPER_CALLBACK_INITIALIZE",
|
"WDSWRAPPER_CALLBACK_INITIALIZE",
|
||||||
"WDSWRAPPER_CALLBACK_CLEANUP",
|
"WDSWRAPPER_CALLBACK_CLEANUP",
|
||||||
@ -72,3 +75,47 @@ void Callback_WDSWrapper( void *ptr )
|
|||||||
OS_TPrintf( "\n" );
|
OS_TPrintf( "\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Sleepコールバック関数
|
||||||
|
void Callback_WDSPreSleep( void *ptr )
|
||||||
|
{
|
||||||
|
#pragma unused( ptr )
|
||||||
|
WDS_WrapperCleanup();
|
||||||
|
while ( ! IsClearnupWDSWrapper() )
|
||||||
|
{
|
||||||
|
OS_Sleep(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Callback_WDSPostSleep( void *ptr )
|
||||||
|
{
|
||||||
|
#pragma unused( ptr )
|
||||||
|
InitializeWDS();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初期化関数
|
||||||
|
void InitializeWDS( void )
|
||||||
|
{
|
||||||
|
static BOOL isInitialized = FALSE;
|
||||||
|
|
||||||
|
{
|
||||||
|
WDSWrapperInitializeParam param;
|
||||||
|
param.threadprio = WDS_THREAD_PRIO;
|
||||||
|
param.dmano = WDS_DMA_NO;
|
||||||
|
param.callback = Callback_WDSWrapper;
|
||||||
|
param.alloc = SYSM_Alloc;
|
||||||
|
param.free = SYSM_Free;
|
||||||
|
(void)WDS_WrapperInitialize( param ); // 初期化と動作開始を兼ねている。(失敗しても止まりはしないので、気にしない)
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! isInitialized )
|
||||||
|
{
|
||||||
|
static PMSleepCallbackInfo preCbInfo;
|
||||||
|
static PMSleepCallbackInfo postCbInfo;
|
||||||
|
PM_SetSleepCallbackInfo( &preCbInfo, Callback_WDSPreSleep, NULL );
|
||||||
|
PM_PrependPreSleepCallback( &preCbInfo );
|
||||||
|
PM_SetSleepCallbackInfo( &postCbInfo, Callback_WDSPostSleep, NULL );
|
||||||
|
PM_AppendPostSleepCallback( &postCbInfo );
|
||||||
|
}
|
||||||
|
isInitialized = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@ -30,8 +30,11 @@ extern "C" {
|
|||||||
// global variables--------------------------------------------------
|
// global variables--------------------------------------------------
|
||||||
|
|
||||||
// function----------------------------------------------------------
|
// function----------------------------------------------------------
|
||||||
extern BOOL IsClearnupWDSWrapper( void );
|
void InitializeWDS( void );
|
||||||
extern void Callback_WDSWrapper( void *ptr );
|
BOOL IsClearnupWDSWrapper( void );
|
||||||
|
void Callback_WDSWrapper( void *ptr );
|
||||||
|
void Callback_WDSPreSleep( void *ptr );
|
||||||
|
void Callback_WDSPostSleep( void *ptr );
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user