From ff05181dd39705fd9f1b8fd28268d83f8b3a06a4 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 26 Jul 2023 00:30:09 +0200 Subject: [PATCH] another evil bug found --- bsp_q7s/core/CoreController.cpp | 7 ++++--- bsp_q7s/fs/SdCardManager.cpp | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/bsp_q7s/core/CoreController.cpp b/bsp_q7s/core/CoreController.cpp index 982bfaa3..e4fb07ec 100644 --- a/bsp_q7s/core/CoreController.cpp +++ b/bsp_q7s/core/CoreController.cpp @@ -559,15 +559,16 @@ ReturnValue_t CoreController::sdStateMachine() { auto nonBlockingSdcOpChecking = [&](SdStates newStateOnSuccess, uint16_t maxCycleCount, std::string opPrintout) { SdCardManager::OpStatus status = sdcMan->checkCurrentOp(operation); - if (status == SdCardManager::OpStatus::SUCCESS or sdInfo.cycleCount > 4) { + if (status == SdCardManager::OpStatus::SUCCESS or sdInfo.cycleCount > maxCycleCount) { sdFsmState = newStateOnSuccess; sdInfo.commandPending = false; - sdInfo.cycleCount = 0; - if (sdInfo.cycleCount > 4) { + if (sdInfo.cycleCount > maxCycleCount) { sif::warning << "CoreController::sdStateMachine: " << opPrintout << " takes too long" << std::endl; + sdInfo.cycleCount = 0; return -1; } + sdInfo.cycleCount = 0; return 0; }; return 1; diff --git a/bsp_q7s/fs/SdCardManager.cpp b/bsp_q7s/fs/SdCardManager.cpp index 193e3415..ffbed668 100644 --- a/bsp_q7s/fs/SdCardManager.cpp +++ b/bsp_q7s/fs/SdCardManager.cpp @@ -199,6 +199,7 @@ ReturnValue_t SdCardManager::getSdCardsStatus(SdStatePair& sdStates) { ReturnValue_t SdCardManager::mountSdCard(sd::SdCard sdCard) { using namespace std; if (cmdExecutor.getCurrentState() == CommandExecutor::States::PENDING) { + sif::warning << "SdCardManager::mountSdCard: Command still pending" << std::endl; return CommandExecutor::COMMAND_PENDING; } if (sdCard == sd::SdCard::BOTH) {