diff --git a/bsp_q7s/core/CoreController.cpp b/bsp_q7s/core/CoreController.cpp index b484c4cb..f92e6d60 100644 --- a/bsp_q7s/core/CoreController.cpp +++ b/bsp_q7s/core/CoreController.cpp @@ -38,10 +38,11 @@ CoreController::CoreController(object_id_t objectId): if(sdcMan == nullptr) { sif::error << "CoreController::CoreController: SD card manager invalid!" << std::endl; } + if(not BLOCKING_SD_INIT) { - sdStateMachine(); sdcMan->setBlocking(false); } + sdStateMachine(); result = initBootCopy(); if(result != HasReturnvaluesIF::RETURN_OK) { @@ -59,7 +60,7 @@ ReturnValue_t CoreController::handleCommandMessage(CommandMessage *message) { } void CoreController::performControlOperation() { - if(not BLOCKING_SD_INIT and not sdInfo.initFinished) { + if(not BLOCKING_SD_INIT) { sdStateMachine(); } performWatchdogControlOperation(); @@ -83,9 +84,8 @@ ReturnValue_t CoreController::initialize() { "count failed" << std::endl; } - if(not BLOCKING_SD_INIT) { - sdStateMachine(); - } + sdStateMachine(); + return ExtendedControllerBase::initialize(); } @@ -146,9 +146,17 @@ ReturnValue_t CoreController::sdStateMachine() { if(sdInfo.state == SdStates::START) { #if Q7S_SD_CARD_CONFIG == Q7S_SD_NONE sif::info << "No SD card initialization will be performed" << std::endl; - sdInfo.state == SdStates::IDLE; + sdInfo.state = SdStates::IDLE; sdInfo.initFinished = true; + return result; #else + // Init will be performed by separate function + if(not BLOCKING_SD_INIT) { + sdInfo.state = SdStates::IDLE; + sdInfo.initFinished = true; + return result; + } +#endif sdInfo.cycleCount = 0; sdInfo.commandExecuted = false; sdInfo.state = SdStates::GET_INFO;