diff --git a/trunk/ConsoleDataMigration/ConsoleRestore/Importer.cpp b/trunk/ConsoleDataMigration/ConsoleRestore/Importer.cpp index 6973d3f..3c7c4ca 100644 --- a/trunk/ConsoleDataMigration/ConsoleRestore/Importer.cpp +++ b/trunk/ConsoleDataMigration/ConsoleRestore/Importer.cpp @@ -418,44 +418,46 @@ void ImportMcuRtc() if(handle.IsValid()) { - - size_t bufSize = common::HeapManager::GetHeap()->GetAllocatableSize(); - NN_LOG("AllocatableSize = %d\n", bufSize); - - void* buf = common::HeapManager::GetHeap()->Allocate(bufSize); - if (buf != NULL) + if (common::CheckFileExists(common::MCU_RTC_PATHNAME)) { - common::SdReaderWriter sdReader; + size_t bufSize = common::HeapManager::GetHeap()->GetAllocatableSize(); + NN_LOG("AllocatableSize = %d\n", bufSize); - size_t readSize; - result = sdReader.ReadBuf(common::MCU_RTC_PATHNAME, buf, bufSize, &readSize); - if (result.IsSuccess()) + void* buf = common::HeapManager::GetHeap()->Allocate(bufSize); + if (buf != NULL) { - // mcuを使ってセットする - nn::mcu::CTR::HwCheck mcu(handle); - nn::mcu::CTR::RtcData* rtc = reinterpret_cast(buf); - 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::SdReaderWriter sdReader; - // BCD変換が必要 - - size_t RTC_PARAM_SIZE = sizeof(nn::mcu::CTR::RtcData); - u8 bcd[RTC_PARAM_SIZE]; - for (int i = 0; i < RTC_PARAM_SIZE; i++) + size_t readSize; + result = sdReader.ReadBuf(common::MCU_RTC_PATHNAME, buf, bufSize, &readSize); + if (result.IsSuccess()) { - bcd[i] = DecimalToBcd(reinterpret_cast(rtc)[i]); + // mcuを使ってセットする + nn::mcu::CTR::HwCheck mcu(handle); + nn::mcu::CTR::RtcData* rtc = reinterpret_cast (buf); + 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); + + // BCD変換が必要 + + size_t RTC_PARAM_SIZE = sizeof(nn::mcu::CTR::RtcData); + u8 bcd[RTC_PARAM_SIZE]; + for (int i = 0; i < RTC_PARAM_SIZE; i++) + { + bcd[i] = DecimalToBcd(reinterpret_cast (rtc)[i]); + } + + result = mcu.WriteBySend(nn::drivers::mcu::CTR::MCU_RTC_SEC_ADDR, bcd, RTC_PARAM_SIZE); + + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); } - - 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); - common::HeapManager::GetHeap()->Free(buf); - } - else - { - COMMON_LOGGER("Failed Allocate Heap!!\n"); + common::HeapManager::GetHeap()->Free(buf); + } + else + { + COMMON_LOGGER("Failed Allocate Heap!!\n"); + } } } }