Added target power cycling post AVR8 DWEN fuse bit update
This commit is contained in:
@@ -153,6 +153,17 @@ namespace Bloom::Targets::Microchip::Avr::Avr8Bit
|
|||||||
);
|
);
|
||||||
this->writeDwenFuseBit(true);
|
this->writeDwenFuseBit(true);
|
||||||
|
|
||||||
|
// If the debug tool provides a TargetPowerManagementInterface, attempt to cycle the target power
|
||||||
|
if (this->targetPowerManagementInterface != nullptr) {
|
||||||
|
Logger::info("Cycling target power");
|
||||||
|
Logger::debug("Disabling target power");
|
||||||
|
this->targetPowerManagementInterface->disableTargetPower();
|
||||||
|
Logger::debug("Holding power off for ~250 ms");
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(250));
|
||||||
|
Logger::debug("Enabling target power");
|
||||||
|
this->targetPowerManagementInterface->enableTargetPower();
|
||||||
|
}
|
||||||
|
|
||||||
} catch (const Exception& exception) {
|
} catch (const Exception& exception) {
|
||||||
throw Exception(
|
throw Exception(
|
||||||
"Failed to access/update DWEN fuse bit via ISP interface - " + exception.getMessage()
|
"Failed to access/update DWEN fuse bit via ISP interface - " + exception.getMessage()
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ namespace Bloom::Targets::Microchip::Avr::Avr8Bit
|
|||||||
}
|
}
|
||||||
|
|
||||||
void setDebugTool(DebugTool* debugTool) override {
|
void setDebugTool(DebugTool* debugTool) override {
|
||||||
|
this->targetPowerManagementInterface = debugTool->getTargetPowerManagementInterface();
|
||||||
this->avr8DebugInterface = debugTool->getAvr8DebugInterface();
|
this->avr8DebugInterface = debugTool->getAvr8DebugInterface();
|
||||||
this->avrIspInterface = debugTool->getAvrIspInterface();
|
this->avrIspInterface = debugTool->getAvrIspInterface();
|
||||||
}
|
}
|
||||||
@@ -122,6 +123,7 @@ namespace Bloom::Targets::Microchip::Avr::Avr8Bit
|
|||||||
) override;
|
) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
DebugToolDrivers::TargetInterfaces::TargetPowerManagementInterface* targetPowerManagementInterface = nullptr;
|
||||||
DebugToolDrivers::TargetInterfaces::Microchip::Avr::Avr8::Avr8DebugInterface* avr8DebugInterface = nullptr;
|
DebugToolDrivers::TargetInterfaces::Microchip::Avr::Avr8::Avr8DebugInterface* avr8DebugInterface = nullptr;
|
||||||
DebugToolDrivers::TargetInterfaces::Microchip::Avr::AvrIspInterface* avrIspInterface = nullptr;
|
DebugToolDrivers::TargetInterfaces::Microchip::Avr::AvrIspInterface* avrIspInterface = nullptr;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user