mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
RTCの読み書き時にリトライできるように
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
This commit is contained in:
parent
728ea2da9f
commit
587b6272b2
@ -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
|
||||
{
|
||||
|
||||
@ -505,9 +505,21 @@ nn::Result ImportMcuRtc(common::HardwareStateManager& manager)
|
||||
bcd[i] = DecimalToBcd(reinterpret_cast<u8*> (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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user