From e223cd59809402c92c775532152a572a70ac6b2a Mon Sep 17 00:00:00 2001 From: yosiokat Date: Tue, 9 Sep 2008 11:21:52 +0000 Subject: [PATCH] =?UTF-8?q?RTC=E3=82=AA=E3=83=95=E3=82=BB=E3=83=83?= =?UTF-8?q?=E3=83=88=E8=A8=88=E7=AE=97=E6=99=82=E3=81=ABRTC=E3=81=AE?= =?UTF-8?q?=E6=97=A5=E4=BB=98=E3=83=BB=E6=99=82=E5=88=BB=E5=8F=96=E5=BE=97?= =?UTF-8?q?=E3=81=AB=E5=A4=B1=E6=95=97=E3=81=97=E3=81=9F=E6=99=82=E3=81=AB?= =?UTF-8?q?=E3=80=81=EF=BC=93=E5=9B=9E=E3=81=BE=E3=81=A7=E3=83=AA=E3=83=88?= =?UTF-8?q?=E3=83=A9=E3=82=A4=E3=82=92=E8=A1=8C=E3=81=86=E3=82=88=E3=81=86?= =?UTF-8?q?=E5=A4=89=E6=9B=B4=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/trunk@2458 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/libraries_sysmenu/util/ARM9/src/util.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/build/libraries_sysmenu/util/ARM9/src/util.c b/build/libraries_sysmenu/util/ARM9/src/util.c index 10428640..8b95a8a2 100644 --- a/build/libraries_sysmenu/util/ARM9/src/util.c +++ b/build/libraries_sysmenu/util/ARM9/src/util.c @@ -140,12 +140,24 @@ s64 UTL_CalcRTCOffset( RTCDate *newDatep, RTCTime *newTimep ) s64 offset1; s64 offset; u32 second_bak = newTimep->second; + int retry = 3; newTimep->second = 0; - // RTCへの新しい値の設定 - (void)RTC_GetDateTime( &oldDate, &oldTime ); // ライト直前に現在のRTC値を取得する。 - oldTime.second = 0; + // ライト直前に現在のRTC値を取得する。 + while( retry > 0 ) { + if( RTC_RESULT_SUCCESS == RTC_GetDateTime( &oldDate, &oldTime ) ) { + oldTime.second = 0; + break; + } + OS_Sleep(1); + retry--; + } + if( retry == 0 ) { + // 現在時刻の取得に失敗した時は、新しいセット値を古い値にも使う + MI_CpuCopy8( newDatep, &oldDate, sizeof(RTCDate) ); + MI_CpuCopy8( newTimep, &oldTime, sizeof(RTCTime) ); + } // RTC設定時は、今回の設定でどれだけRTC値が変化したか(秒オフセット単位)を算出。 if( ( oldDate.year < LCFG_TSD_GetRTCLastSetYear() ) && ( LCFG_TSD_IsFinishedInitialSetting() ) ) {