From 587b6272b2fc68a003ddeb98020f6ed2ded264d9 Mon Sep 17 00:00:00 2001 From: N2614 Date: Mon, 6 Jun 2011 10:51:52 +0000 Subject: [PATCH] =?UTF-8?q?RTC=E3=81=AE=E8=AA=AD=E3=81=BF=E6=9B=B8?= =?UTF-8?q?=E3=81=8D=E6=99=82=E3=81=AB=E3=83=AA=E3=83=88=E3=83=A9=E3=82=A4?= =?UTF-8?q?=E3=81=A7=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@317 385bec56-5757-e545-9c3a-d8741f4650f1 --- .../sources/ConsoleBackup/Exporter.cpp | 17 ++++++++++++++--- .../sources/ConsoleRestore/Importer.cpp | 16 ++++++++++++++-- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/trunk/ConsoleDataMigration/sources/ConsoleBackup/Exporter.cpp b/trunk/ConsoleDataMigration/sources/ConsoleBackup/Exporter.cpp index 9594c24..0a77d61 100644 --- a/trunk/ConsoleDataMigration/sources/ConsoleBackup/Exporter.cpp +++ b/trunk/ConsoleDataMigration/sources/ConsoleBackup/Exporter.cpp @@ -690,10 +690,21 @@ void WriteMcuRtcData(common::HardwareStateManager& manager) nn::mcu::CTR::RtcData rtc; result = mcu.GetRtcAll(&rtc); - NN_LOG("RTC = 20%02d/%02d/%02d %02d:%02d:%02d\n", rtc.m_Year, rtc.m_Month, rtc.m_Day, rtc.m_Hour, rtc.m_Minute, rtc.m_Second); - COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + const u8 RETRY = 10; + for (u8 i = 0; i < RETRY; i++) + { + if (result.IsSuccess()) + { + NN_LOG("RTC = 20%02d/%02d/%02d %02d:%02d:%02d\n", rtc.m_Year, rtc.m_Month, rtc.m_Day, rtc.m_Hour, rtc.m_Minute, rtc.m_Second); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); - s_SdWriter.WriteBufWithCmac(common::MCU_RTC_PATHNAME, &rtc, sizeof(rtc)); + s_SdWriter.WriteBufWithCmac(common::MCU_RTC_PATHNAME, &rtc, sizeof(rtc)); + break; + } + nn::os::Thread::Sleep( + nn::fnd::TimeSpan::FromMilliSeconds( + nn::os::Tick::GetSystemCurrent().ToTimeSpan().GetMilliSeconds() % 100)); + } } else { diff --git a/trunk/ConsoleDataMigration/sources/ConsoleRestore/Importer.cpp b/trunk/ConsoleDataMigration/sources/ConsoleRestore/Importer.cpp index 91133bf..140cadf 100644 --- a/trunk/ConsoleDataMigration/sources/ConsoleRestore/Importer.cpp +++ b/trunk/ConsoleDataMigration/sources/ConsoleRestore/Importer.cpp @@ -505,9 +505,21 @@ nn::Result ImportMcuRtc(common::HardwareStateManager& manager) bcd[i] = DecimalToBcd(reinterpret_cast (rtc)[i]); } - result = mcu.WriteBySend(nn::drivers::mcu::CTR::MCU_RTC_SEC_ADDR, bcd, RTC_PARAM_SIZE); + const u8 RETRY = 10; + for (u8 i = 0; i < RETRY; i++) + { + result = mcu.WriteBySend(nn::drivers::mcu::CTR::MCU_RTC_SEC_ADDR, bcd, RTC_PARAM_SIZE); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); - COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + if(result.IsSuccess()) + { + break; + } + nn::os::Thread::Sleep( + nn::fnd::TimeSpan::FromMilliSeconds( + nn::os::Tick::GetSystemCurrent().ToTimeSpan().GetMilliSeconds() % 100)); + + } } common::HeapManager::GetHeap()->Free(buf);