diff --git a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c index f9abf426..b09e9f05 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c +++ b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c @@ -25,8 +25,8 @@ #define DEBUG_MODE -// カード電源ONからROMヘッダロードまでの期間にスリープに入る時もワンセグ対策する場合 -//#define HOWSW_DSTV_MORE_IMPORTANT_THAN_DEEP_SLEEP +// カード電源ONからROMヘッダロードまでの期間にスリープに入る時のワンセグ対策しない場合 +//#define HOWSW_TRY_DEEP_SLEEP_WHILE_INSERT_CARD // define ------------------------------------------------------------------- #define CHATTERING_COUNTER 0x600 @@ -291,7 +291,7 @@ static HotSwState LoadCardData(void) // カード電源リセット #ifdef SDK_ARM7 McPowerOff(); -#ifdef HOWSW_DSTV_MORE_IMPORTANT_THAN_DEEP_SLEEP +#ifndef HOWSW_TRY_DEEP_SLEEP_WHILE_INSERT_CARD MCU_EnableDeepSleepToPowerLine( MCU_PWR_LINE_33, FALSE ); #endif McPowerOn(); diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/device.c b/build/libraries_sysmenu/sysmenu/ARM9/src/device.c index 2e05d08f..e825a75e 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/device.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/device.c @@ -168,6 +168,21 @@ void SYSMi_CheckRTC( void ) } +// スリープモードへの遷移 +void SYSM_GoSleepMode( void ) +{ + // デバッガ起動時にはスリープに入らない + if ( ! SYSM_IsRunOnDebugger() || (OSi_DetectDebugger() & OS_CONSOLE_TWLDEBUGGER) ) + { + PM_GoSleepMode( PM_TRIGGER_COVER_OPEN | + PM_TRIGGER_CARD | + PM_TRIGGER_RTC_ALARM, + 0, + 0 ); + } +} + + #ifdef SDK_FINALROM /*---------------------------------------------------------------------------* Name: PMi_WriteRegisterAsync diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c index 67e7ea14..d93506bb 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c @@ -299,7 +299,7 @@ static TitleProperty *SYSMi_CheckShortcutBoot1( void ) // 検査カード起動 //----------------------------------------------------- if( SYSM_IsExistCard() ) { - if( ( SYSMi_GetWork()->flags.hotsw.isOnDebugger && // ISデバッガが有効かつJTAGがまだ有効でない時 + if( ( SYSM_IsRunOnDebugger() && // ISデバッガが有効かつJTAGがまだ有効でない時 !( *(u8 *)( HW_SYS_CONF_BUF + HWi_WSYS09_OFFSET ) & HWi_WSYS09_JTAG_CPUJE_MASK ) ) || SYSM_IsInspectCard() || ( ( PAD_Read() & SYSM_PAD_PRODUCTION_SHORTCUT_CARD_BOOT ) == diff --git a/build/systemMenu_RED/Launcher/ARM9/src/main.c b/build/systemMenu_RED/Launcher/ARM9/src/main.c index d5f926f2..5ff8a911 100644 --- a/build/systemMenu_RED/Launcher/ARM9/src/main.c +++ b/build/systemMenu_RED/Launcher/ARM9/src/main.c @@ -21,6 +21,8 @@ #include "logoDemo.h" #include "sound.h" +//#define ENABLE_SLEEP + // extern data----------------------------------------------------------------- // define data----------------------------------------------------------------- @@ -311,6 +313,13 @@ void TwlMain( void ) // コマンドフラッシュ (void)SND_FlushCommand(SND_COMMAND_NOBLOCK); +#ifdef ENABLE_SLEEP + // スリープモードへの遷移 + if ( PAD_DetectFold() ) + { + SYSM_GoSleepMode(); + } +#endif // ENABLE_SLEEP } } diff --git a/include/sysmenu/sysmenu_lib/common/sysmenu_api.h b/include/sysmenu/sysmenu_lib/common/sysmenu_api.h index 77af7dd7..7c83707f 100644 --- a/include/sysmenu/sysmenu_lib/common/sysmenu_api.h +++ b/include/sysmenu/sysmenu_lib/common/sysmenu_api.h @@ -119,6 +119,9 @@ extern s64 SYSM_CalcRTCOffset( RTCDate *pNewDate, RTCTime *pNewTime ); // RTC extern u32 SYSM_GetDayNum( u32 year, u32 month ); // 指定された年・月の日数を取得する extern BOOL SYSM_IsLeapYear100( u32 year ); // 指定された年がうるう年か調べる +// スリープモード +extern void SYSM_GoSleepMode( void ); // スリープモードへの遷移 + #endif // 状態チェック