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);
|
||||
|
||||
// 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) {
|
||||
throw Exception(
|
||||
"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 {
|
||||
this->targetPowerManagementInterface = debugTool->getTargetPowerManagementInterface();
|
||||
this->avr8DebugInterface = debugTool->getAvr8DebugInterface();
|
||||
this->avrIspInterface = debugTool->getAvrIspInterface();
|
||||
}
|
||||
@@ -122,6 +123,7 @@ namespace Bloom::Targets::Microchip::Avr::Avr8Bit
|
||||
) override;
|
||||
|
||||
protected:
|
||||
DebugToolDrivers::TargetInterfaces::TargetPowerManagementInterface* targetPowerManagementInterface = nullptr;
|
||||
DebugToolDrivers::TargetInterfaces::Microchip::Avr::Avr8::Avr8DebugInterface* avr8DebugInterface = nullptr;
|
||||
DebugToolDrivers::TargetInterfaces::Microchip::Avr::AvrIspInterface* avrIspInterface = nullptr;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user