From 4cc2b8dbf7cef43e94dd53e302c76ca801df9252 Mon Sep 17 00:00:00 2001 From: yosiokat Date: Fri, 27 Jun 2008 08:55:59 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=BBSTART=E3=83=9C=E3=82=BF=E3=83=B3?= =?UTF-8?q?=E3=81=A7=E3=81=AE=E3=83=A9=E3=83=B3=E3=83=81=E3=83=A3=E3=83=BC?= =?UTF-8?q?=E3=81=B8=E3=81=AE=E3=83=AA=E3=82=BF=E3=83=BC=E3=83=B3=E5=87=A6?= =?UTF-8?q?=E7=90=86=E3=82=92=E7=84=A1=E5=8A=B9=E3=81=AB=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=80=82=20=E3=83=BBTWL=E6=9C=AC=E4=BD=93=E8=A8=AD=E5=AE=9A?= =?UTF-8?q?=E3=83=87=E3=83=BC=E3=82=BF=E3=81=AE=E3=83=AA=E3=83=BC=E3=83=89?= =?UTF-8?q?=E5=87=A6=E7=90=86=E3=82=92=E4=BF=AE=E6=AD=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/branches/20080626_SDK500fc_plus5_branch@1741 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../MachineSettings/ARM9/src/MachineSetting.c | 14 +++++++++ .../MachineSettings/ARM9/src/main.c | 30 +++++++++++++++---- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/build/systemMenu_RED/MachineSettings/ARM9/src/MachineSetting.c b/build/systemMenu_RED/MachineSettings/ARM9/src/MachineSetting.c index 428720c7..75687c21 100644 --- a/build/systemMenu_RED/MachineSettings/ARM9/src/MachineSetting.c +++ b/build/systemMenu_RED/MachineSettings/ARM9/src/MachineSetting.c @@ -257,9 +257,23 @@ int MachineSettingMain( void ) tp_select = SelectMenuByTP( &s_csr, &s_settingParam ); DrawMenu( s_csr, &s_settingParam ); +#if 0 if( pad.trg & PAD_BUTTON_START ) { OS_DoApplicationJump( NULL, OS_APP_JUMP_NORMAL ); + u8 *pBuffer = Alloc( LCFG_READ_TEMP ); + g_isValidTSD = FALSE; + if( pBuffer) { + g_isValidTSD = LCFG_ReadTWLSettings( (u8 (*)[ LCFG_READ_TEMP ] )pBuffer ); + Free( pBuffer ); + if( g_isValidTSD ) { + OS_TPrintf( "TSD Read succeeded.\n" ); + }else { + OS_TPrintf( "TSD Read failed.\n" ); + PrintfSJIS( 0, 22*8, TXT_COLOR_RED, "TSD Read failed.\n" ); + } + } } +#endif if( ( pad.trg & PAD_BUTTON_A ) || ( tp_select ) ) { // メニュー項目への分岐 if( s_settingPos[ s_csr ].enable ) { diff --git a/build/systemMenu_RED/MachineSettings/ARM9/src/main.c b/build/systemMenu_RED/MachineSettings/ARM9/src/main.c index e2b3dafd..bfc8bb93 100644 --- a/build/systemMenu_RED/MachineSettings/ARM9/src/main.c +++ b/build/systemMenu_RED/MachineSettings/ARM9/src/main.c @@ -89,12 +89,30 @@ void TwlMain(void) // :::::::::::::::::::::::::::::::::::::::::::::: // TWL設定データファイルの読み込み // :::::::::::::::::::::::::::::::::::::::::::::: - { - u8 *pBuffer = Alloc( LCFG_READ_TEMP ); - g_isValidTSD = FALSE; - if( pBuffer) { - g_isValidTSD = LCFG_ReadTWLSettings( (u8 (*)[ LCFG_READ_TEMP ] )pBuffer ); - Free( pBuffer ); + g_isValidTSD = TRUE; + { + u8 *pBuffer = Alloc( LCFG_READ_TEMP ); + if( pBuffer ) { + // NANDからTWL本体設定データをリード + BOOL isRead = LCFG_ReadTWLSettings( (u8 (*)[LCFG_READ_TEMP])pBuffer ); + + // リード失敗ファイルが存在する場合は、ファイルをリカバリ + if( LCFG_RecoveryTWLSettings() ) { + if( isRead ) { + // ミラーデータのうち、一方でもリードできていたなら何もしない。 + }else { + // リードに完全に失敗していた場合は、フラッシュ壊れシーケンスへ。 + LCFG_TSD_SetFlagFinishedBrokenTWLSettings( FALSE ); + (void)LCFG_WriteTWLSettings( (u8 (*)[ LCFG_WRITE_TEMP ] )pBuffer ); // LCFG_READ_TEMP > LCFG_WRITE_TEMP なので、pBufferをそのまま流用 + } + }else { + // リカバリ失敗時は、FALTALエラー + g_isValidTSD = FALSE; + } + Free( pBuffer ); + }else { + // メモリ確保ができなかった時は、FATALエラー + g_isValidTSD = FALSE; } }